- turnPartiallyCommitted now requires both timestamps and committedAt >=
turn_started_at, shared with turnAlreadyCommitted via committedDuringTurn():
on an older runtime the tail may be the previous turn's answer, and
splicing over it drops a real history row.
- The fold carries rowId with reactions through carryRowIdentity(), the same
helper the overlay and withAuthoritativeTurnState now use, so a reaction
toggle on the folded row still reaches the persisted row.
- Drop the always-true committedPartialAt >= 0 / && committedPartial guards.