SIGN IN SIGN UP

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