Skip to content

Stream complete session history on resume - #505

Closed
fazxes wants to merge 12 commits into
mainfrom
fazxes/stream-session-transcript
Closed

fazxes wants to merge 12 commits into
mainfrom
fazxes/stream-session-transcript

Conversation

@fazxes

@fazxes fazxes commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Stream complete saved history into native terminal scrollback before restoring interactive state.
  • Restore executable session state and retained UI details from one binary snapshot without replaying the event log.
  • Re-layout complete session-owned history at the current terminal width on startup and resize.
  • Hard-clear direct Ghostty and Apple Terminal scrollback before repainting while preserving tmux pane-history handling.
  • Backfill missing or incomplete transcript records once and fail closed on corrupt committed data.
  • Preserve Ctrl-O tool and diff details, the composer, and continued interaction after resume.

@fazxes fazxes added the type: bug Fixes incorrect behavior label Aug 28, 2026
@fazxes
fazxes force-pushed the fazxes/stream-session-transcript branch from eab2fd0 to 759aae4 Compare August 29, 2026 00:56
fazxes added 8 commits August 28, 2026 22:56
Persist finalized transcript bytes independently of viewport scrolling and stream exact records before semantic hydration.

Fall back through one semantic rebuild for missing or incomplete records, fail closed on corrupt committed data, and preserve native history across resize.
Stream the persisted transcript through the existing reset frame and keep semantic state out of the historical body.

Reanchor retained state after publication so continuations and later resizes preserve exact scrollback.
Keep runtime tests below production source for the direct-write audit and align slash-menu geometry with the resumed-session notice.
Wait for the stable text-first resume anchor before sending Ctrl-O in the brutal flow.
Normalize the transient queue status independently of its current footer suffix.
Keep interactive resume failures closed after teardown, preserve startup diagnostics as structured state, and only replay a complete caught-up transcript on resize. Cover terminal mode restoration, legacy wire backfill, active-tail resize, and complete large-session output.
Append startup postlude entries through the existing transcript contracts and protect the renderer's idle footer reservation during direct resume streaming. This keeps the complete historical tail intact before the first normal frame.
Commit the streamed historical anchor before adding startup notices, preserve the renderer's footer-gap contract, and extend the physical guard only when structured retention caps a large session.
@fazxes
fazxes force-pushed the fazxes/stream-session-transcript branch from 759aae4 to 6064019 Compare August 29, 2026 02:58
Assert the slash picker displaces transcript content relative to its resumed baseline while preserving the existing exact marker-copy and blank-gap checks across platform-specific path wrapping.
@fazxes
fazxes marked this pull request as ready for review August 29, 2026 04:15
fazxes added 2 commits August 31, 2026 10:48
Position the resume stream at the existing terminal cursor without reserving welcome rows. Keep restored scrollback contiguous when fx starts near the bottom of a terminal.
Persist executable and complete semantic presentation state in one resume snapshot. Stream saved terminal history first, then install retained interaction state without rebuilding the event log.

Reflow session-owned history through the existing reset frame at each terminal width, and use hard resets where direct terminals do not clear native scrollback.
@fazxes fazxes changed the title Restore complete session scrollback Stream complete session history on resume Sep 2, 2026
@fazxes fazxes closed this Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: bug Fixes incorrect behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant