Files
orca/src
Brennan Benson 50fec5630e fix(native-chat): keep structured rows put and stop raw opcode rows
Three seams behind "the compaction and notification rows moved above the
message I'd already sent".

- The reducer pinned `sequence` across revisions but let `observedAt` advance,
  and clients sort the timeline by that timestamp. Codex echoing a send revises
  the submission row, so the user's own bubble jumped below every row that
  landed while the turn was in flight. Pin `observedAt` with `sequence`: a
  revision refreshes content, never position.
- `item:contextCompaction` reached the timeline as a raw `codex · item:<type>`
  row because the frame catalog is keyed by notification METHOD and never
  matches item-form kinds. Codex item types now get their own dispositions;
  compaction is chrome, matching the `thread/compacted` notification it
  duplicates. Undispositioned item types still fall through visibly.
- The generic fallback row named the opcode and nothing else, so a real warning
  read as `codex · notification:warning`. It now leads with the provider's own
  sentence when the payload carries one, with the raw frame still behind the
  row's disclosure.
2026-08-16 22:14:59 -07:00
..