Delta review findings:
- Medium: a confirmed deep edit during a live turn was silently
dropped, because the stale check compared the transcript array by
identity and streaming replaces it on every delta. The edit now
re-plans against the current transcript (revalidateEditPlan). It
proceeds when the edited turn keeps its address and the re-planned
index is applied. If the turn moved, it stops with an "Edit failed"
notice instead of returning silently. Applies to the primary chat
and tiles.
- Low: a live carrier with no row id of its own never counted its own
user turn, so a two-turn cut could pass without 4033. It now counts
(fail closed).