Files
qwen-code/docs
a64d8decc1 fix(web-shell): preserve reference tags across reloads (#12404)
* fix(web-shell): preserve reference tags across reloads

* fix(acp): validate daemon input annotations at record, replay, and render

Address review findings on the user-message tag replay PR:

- Skip non-object annotation elements when recording (new
  readDaemonInputAnnotations reader), replaying (per-element filter),
  and rendering (null guard in splitComposerTagContentByAnnotations),
  so one malformed element can no longer poison a persisted session on
  every reload.
- Cap caller-supplied annotations at MAX_DAEMON_INPUT_ANNOTATIONS = 256,
  matching the sibling attachment-references bound.
- Export DAEMON_INPUT_ANNOTATIONS_META_KEY from bridgeTypes and route
  the recorder, replay, and live-echo read sites through it so the
  wire/persist key cannot drift silently.
- Restore the deferred /advisor branch's no-payload test pin and split
  its annotation assertions into a dedicated case.
- Document the annotations payload trigger in hooks.md and the
  intentional queued-strip/composer styling scope in both design docs.

* test(cli): make post-index-change hook cases deterministic across filesystem ticks (#12404)

The ungated-status control assumed `git status` always rewrites the
index on a dirty tree, firing the tree-shipped post-index-change hook.
The rewrite only happens when an entry is racily clean, which held only
because beforeEach's add and commit usually land in one filesystem tick;
a loaded runner straddles the tick, status writes nothing, and the
control fails. Force raciness by re-adding README.md with a future-dated
mtime (resetting the canary the re-add's own index write fires), and
share the fixture with the guarded case so its negative assertion is
exercised against a hook that would genuinely fire ungated.

---------

Co-authored-by: 钉萁 <[email protected]>
Co-authored-by: qwen-code-dev-bot <[email protected]>
2026-09-22 06:05:57 +00:00
..
2025-12-05 10:51:57 +08:00
2025-12-19 15:52:11 +08:00