fix(chat): keep a steered message from hiding history, or itself
Two ways the mid-turn message could end up in the wrong place. The persisted copy was matched on content across the whole loaded window, so a steer that repeats an earlier prompt's words — "continue", "stop", the short things people steer with — suppressed that older turn too, and kept it hidden for as long as the turn ran. The agent writes the copy DURING the running turn, so the round's own prompt is the scope: only persisted user turns after it are candidates, and with no anchor in the window nothing is suppressed at all. The narrower scan also stops the content key (full text, full image data) from being recomputed for every prompt in history on every streaming batch. A snapshot hydrate — a mid-turn re-attach, i.e. any WS reconnect in server mode — replaces the live message with the backend's, which has no steering block, but left the adoption ids in place; the message was then gone from the transcript with its strip still suppressed, showing nowhere at all. The ids are dropped with the live message that carried them, so the notes list shows those messages as strips again.
X
xintaofei committed
f9323bbdd03182771de476d0dd5d835ee8b7840e
Parent: 5cc79a8