Skip to content

Commit 431e1d9

Browse files
author
秦奇
committed
docs(design): daemon side-channel coordination v4 (third review round)
- Correct the demux insertion point: generic sessionUpdate→session_update forwarding is in bridgeClient.ts:397 (BridgeClient.sessionUpdate), not bridge.ts:352 (prompt echo). Add a third demux rule: a promotion blocked by an in-flight roundtrip is dropped, not published as generic session_update (avoids double-signal alongside the bridge's named event). - Mark A2 a hard prerequisite on PR #4510 (approvalModeQueue does not exist yet); document the unbounded-window divergence it mitigates. - Correct A2 asymmetry in §1.1/§9: the HTTP approval-mode path bypasses Session.setMode and emits no agent notification — the bridge is sole emitter, nothing to suppress (suppression is model-path only). - Step 2 demux covers current_model_update only; defer current_mode_update promotion to step 3 (needs previousModeId) to avoid a shape regression. - A5: capture the snapshot at emission time (after replay_complete), not at subscribe time, fixing the stale-overwrite of a delta delivered during replay; define first-attach ordering (replay_complete{0} then snapshot). - Drop the "additive everywhere" claim: current_mode_update promotion is a lockstep change; name vscode-ide-companion qwenSessionUpdateHandler as an affected consumer. - Specify previousModeId capture (Session.setMode reads getApprovalMode pre-mutation); detail helper generalization; correct persist-scope (getPersistScopeForModelSelection → workspace or user); complete the security enumeration (resolveTrustedClientId); fix anchors + expand tests.
1 parent ee5d112 commit 431e1d9

1 file changed

Lines changed: 98 additions & 110 deletions

File tree

  • docs/design/daemon-sidechannel-coordination

0 commit comments

Comments
 (0)