qwen-code/docs
ytahdn 0493b4a2e6
fix(daemon): reduce subagent live replay journal (#9057)
* fix(daemon): reduce subagent live replay journal

* fix(acp-bridge): let summary loads share an in-flight full restore

The restore-coalesce fence compared liveReplayMode strictly, so a WebUI
summary load racing any full-mode load of the same session (keepalive
revive, acp-http clients, older WebUI tabs) threw restore_in_progress
instead of coalescing. The summary journal is a strict subset of the
full journal, so a summary waiter can safely share an in-flight full
restore and project the superset down. Only the reverse — a full
request joining a summary restore — would return a missing-detail
projection, so that direction stays fenced.

* test(acp-bridge): add regression fences for live-replay review findings (#9057)

* fix(acp-bridge): guard coalesced waiter recompute against channel death (#9057)

Review feedback addressed:

- Critical R3-7: the coalesced waiter's replay-field recompute awaited
  refreshedReplayFieldsFor after registerClient/recordAttachRef with no
  post-await re-assert or rollback. refreshedReplayFieldsFor swallows
  every fetch error into the in-memory fallback, so a channel death
  during the transcript-page await attached the waiter to a session the
  daemon had already torn down. Move the recompute ahead of
  registration — the existing-entry attach path's shape — and re-assert
  after the await, rolling back the pre-folded coalesce reservation on
  rejection. Add a regression test that parks the waiter on the
  transcript fetch, crashes the channel, and expects
  SessionNotFoundError (flip-checked: without the fix the waiter
  resolves attached:true).
- R3-2: drop the false "summary journal is a strict subset of the full
  journal" rationale from the coalesce fence comment, the
  summary-onto-full coalesce test comment, and the design doc. Under
  cap pressure the two journals evict independently and can diverge, so
  coalescing is safe solely because the waiter recomputes its own mode's
  replay fields from the registered entry.

---------

Co-authored-by: 钉萁 <dingqi.jww@alibaba-inc.com>
Co-authored-by: qwen-code-autofix[bot] <qwen-code-autofix[bot]@users.noreply.github.com>
2026-08-14 02:13:15 +00:00
..
assets feat: support workspace display names (#7179) 2026-07-20 15:16:44 +00:00
design fix(daemon): reduce subagent live replay journal (#9057) 2026-08-14 02:13:15 +00:00
developers feat(cli): correlate daemon logs with OpenTelemetry spans (#9084) 2026-08-13 16:33:12 +00:00
e2e-tests feat(worktree): Phase D — startup --worktree flag + symlinkDirectories + PR refs (#4381) 2026-05-27 17:04:51 +08:00
images fix(web-shell): render built-in tag icons (#7024) 2026-07-17 15:33:34 +00:00
plans docs(design): Define selective session restore (#8743) 2026-08-13 03:11:44 +00:00
superpowers feat(cli): reference prior sessions via @ and add completion tabs (#7302) 2026-07-24 06:11:48 +00:00
users feat(cli): Add review settings for attribution, default effort, and default comment (#8994) 2026-08-13 13:27:39 +00:00
verification/abort-controller-refactor fix(core): stop AbortSignal listener leak in long sessions (MaxListenersExceededWarning) (#4366) 2026-05-26 14:21:49 +08:00
_meta.ts feat: refactor docs 2025-12-05 10:51:57 +08:00
index.md fix: lint issues 2025-12-19 15:52:11 +08:00