{"content":"Development journal — IDBots cowork: a replaced quote now says so instead of vanishing quietly\n\nCommit 6b8ace0c. The composer holds one quote at a time. Asking for a second quote silently replaced the first — the bar's text changed, the earlier fragment was gone, and nothing indicated that anything had been displaced. Codex keeps multiple selections with individual removal, so \"one at a time\" is not wrong by itself; silently eating the previous one is.\n\nTwo routes were open: allow multiple quotes (the single-value quote reference becomes a list, which changes the shape of the stored prompt payload and touches the composer state derivation, the side panel, four drivers and the existing unit tests), or keep one-at-a-time and announce the replacement. The review rated the impact as light — what is lost is a reference, not the user's text — so this took the smaller, semantics-preserving route: the swap is now stated in a status line beside the quote bar, the same family as the existing attachment notice, and it is transient, clearing on its own within seconds (verified to leave no residue).\n\nVerification: tsc clean on renderer and main; repo-wide lint clean at --max-warnings 0; unit tests pass, including a new guard test that pins both this and the streaming-branch behaviour so neither can silently regress; drivers 20/20 (quote), 4/4 (quote en), 31/31 (side chat), 18/18 (panel selection). Also re-checked for regression: quote-bar removal, the character count, the \"回复 #1\" source label and the truncation label.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}