cf258b6ae7
Phase 2 review found two sibling sites with the same bug class: - truncate_before_user_ordinal in prompt.submit counted display_kind timeline rows as user turns, shifting the truncation target - rollback.restore used the old pop-loop pattern that would pop a display_kind marker instead of the last real exchange Both now use the same predicate (role==user and not display_kind) matching list_recent_user_messages, /undo, /retry, and CLI resume. Added tests for both paths.