Commit 431e1d9
秦奇
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
0 commit comments