lotus(#2): address review — ack contract, rate, param precedence
CI / Build embedded bundle (push) Successful in 1m18s
CI / Publish to Gitea npm registry (push) Has been skipped

- Document that io.lotus.call_state is request/response and the host must
  ack it (cinny listenAction replies {}) to avoid 10s-timeout churn (H1).
- Throttle 150ms -> 250ms to reduce widget traffic (M1).
- lotusParam: hash fragment wins over query, matching EC's ParamParser (L1).
- Fix the misleading "opaque" id comment; id is userId:deviceId (L2).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Lotus CI
2026-06-29 23:14:42 -04:00
co-authored by Claude Opus 4.8
parent 9d7784b9bc
commit 0f90600a59
3 changed files with 15 additions and 5 deletions
+7 -1
View File
@@ -11,7 +11,13 @@ Please see LICENSE in the repository root for full details.
* a circular dependency.
*/
export enum LotusWidgetActions {
/** fromWidget: in-call per-participant speaking / mute state. */
/**
* fromWidget: in-call per-participant speaking / mute state.
* NOTE: matrix-widget-api `transport.send` is request/response — the host
* MUST reply/ack each one (cinny's `listenAction` does, replying `{}`),
* otherwise every send sits pending for the 10s transport timeout and then
* rejects, producing continuous churn + log noise for the whole call.
*/
CallState = "io.lotus.call_state",
/** toWidget: pin/spotlight (or clear, with userId=null) a participant. */
FocusParticipant = "io.lotus.focus_participant",