qwen-code/docs/developers/daemon
ytahdn 554c5e44ba
feat(web-shell): support mutable default mid-turn messages (#8229)
* feat(web-shell): support mutable default mid-turn messages

* fix(serve): register mid-turn removal telemetry route

* test(serve): update telemetry route totals

* fix(test): add session_mid_turn_message_mutation to expected features list

* fix(webui): forward clientId on cross-session mid-turn removal (#8229)

- Forward the session clientId in the cross-session removeMidTurnMessage
  branch so the bridge's exact-originator match can succeed; without it the
  removal resolved to an undefined originator and could never remove the
  message stamped at enqueue.
- Strip a misaligned/malformed messageIds from mid_turn_message_injected in
  asKnownDaemonEvent instead of rejecting the whole event, mirroring the
  sidechannel parser so a buggy daemon can't silently lose the injection
  signal.
- Log a mid-turn removal miss in the bridge like the enqueue/pending-removal
  siblings, to make removal races diagnosable from daemon logs.

* fix(web-shell): exclude annotations from mid-turn path and harden idle cleanup (#8229)

* fix(web-shell): add container-type to .queuedPrompts so @container query applies (#8229)

* fix(web-shell): harden mid-turn dedupe and capability gate per review (#8229)

- removeInjectedFromQueue now matches by id first (position-independent)
  and falls back to text only when no id match exists, so two same-text
  sends can't remove the wrong row and double-deliver.
- Thread canMutateMidTurn into useQueuedPrompts and gate the mid-turn
  delete/edit mutation on it, so the keyboard path can't hit a DELETE
  route the daemon doesn't advertise.
- asMidTurnMessageInjectedData omits a malformed messageIds key instead
  of leaving a present undefined, matching the sidechannel parser.
- Narrow MidTurnQueueItem.midTurnState, document the load-bearing effect
  order, and make clearQueuedPrompts return false on a no-op clear.

* fix: harden mid-turn removal per review (log escape, cross-session client id) (#8229)

- Escape the caller-controlled messageId (and sessionId) in the mid-turn
  removal-miss stderr line to prevent log injection (CWE-117).
- Forward the target session's persisted client id on cross-session mid-turn
  removal so the bridge's exact-originator match no longer rejects valid
  removals after a session switch with per-session client ids.
- Strengthen tests: distinct-id independence for two queued messages, deferred
  removal proving the composer waits for daemon removal, and the active-turn
  delete failed-action flag.

---------

Co-authored-by: 钉萁 <dingqi.jww@alibaba-inc.com>
Co-authored-by: Shaojin Wen <shaojin.wensj@alibaba-inc.com>
Co-authored-by: Qwen Code Autofix <qwen-code-autofix@users.noreply.github.com>
Co-authored-by: Qwen Code Bot <qwen-code-bot@users.noreply.github.com>
2026-08-01 10:41:29 +00:00
..
00-index.md docs(serve): Close multi-workspace hardening gaps (#7019) 2026-07-16 17:33:53 +00:00
01-architecture.md feat(cli): Enable multi-workspace session routing (#6511) 2026-07-08 10:06:31 +00:00
02-serve-runtime.md feat(serve): make ACP initialize handshake timeout configurable (#7246) 2026-07-20 23:07:51 +00:00
03-acp-bridge.md feat(daemon): raise default max sessions from 20 to 32 (#8235) 2026-07-31 17:47:51 +00:00
04-permission-mediation.md docs(daemon): refresh daemon docs for recent PRs (wave 2) (#5954) 2026-06-28 08:36:30 +00:00
05-mcp-transport-pool.md docs(serve): Close multi-workspace hardening gaps (#7019) 2026-07-16 17:33:53 +00:00
06-mcp-budget-guardrails.md docs(serve): Close multi-workspace hardening gaps (#7019) 2026-07-16 17:33:53 +00:00
07-workspace-filesystem.md feat(serve): page large text files by byte cursor (#8002) 2026-07-30 12:07:05 +00:00
08-session-lifecycle.md feat(daemon): raise default max sessions from 20 to 32 (#8235) 2026-07-31 17:47:51 +00:00
09-event-schema.md fix: Make chat recording failures durable and visible (#6743) 2026-07-12 10:52:26 +00:00
10-event-bus.md fix: Make chat recording failures durable and visible (#6743) 2026-07-12 10:52:26 +00:00
11-capabilities-versioning.md feat(web-shell): support mutable default mid-turn messages (#8229) 2026-08-01 10:41:29 +00:00
12-auth-security.md feat(serve): support multi-workspace rewind and shell (#6826) 2026-07-13 15:32:44 +00:00
13-sdk-daemon-client.md feat: support workspace display names (#7179) 2026-07-20 15:16:44 +00:00
14-cli-tui-adapter.md fix: Make chat recording failures durable and visible (#6743) 2026-07-12 10:52:26 +00:00
15-channel-adapters.md feat(channels): add GitLab polling channel adapter (#7862) 2026-07-29 14:28:31 +00:00
16-vscode-ide-adapter.md feat(cli): Enable multi-workspace session routing (#6511) 2026-07-08 10:06:31 +00:00
17-configuration.md feat(daemon): raise default max sessions from 20 to 32 (#8235) 2026-07-31 17:47:51 +00:00
18-error-taxonomy.md fix(serve): allow bounded reads of large text files (#7947) 2026-07-29 07:49:51 +00:00
19-observability.md feat(cli): Add bounded daemon log rotation (#6969) 2026-07-18 16:18:58 +00:00
20-quickstart-operations.md feat(daemon): raise default max sessions from 20 to 32 (#8235) 2026-07-31 17:47:51 +00:00
_meta.ts docs(daemon): Refresh daemon docs in English (#5144) 2026-06-15 22:38:01 +08:00