mirror of
https://github.com/mark3labs/kit.git
synced 2026-06-14 03:30:26 +00:00
a2ece01ecf
Previously, when streaming text grew taller than the allocated view height, the top (older) lines were silently discarded by viewContent(). This meant users could not scroll up to see them. Now, overflow lines are emitted directly via tea.Println so they land in the terminal's real scrollback buffer — matching the diagram where completed text lives in the red scrollback region and the green viewable area always shows the most recent streaming lines + input/footer. Key changes: - StreamComponent: add scrollbackFlushedLines counter and ConsumeOverflow() method that returns newly overflowed lines and advances the pointer - StreamComponent.Reset(): zero the counter between steps - StreamComponent.GetRenderedContent(): skip already-flushed lines so the end-of-step flush doesn't re-emit content already in scrollback - AppModel.Update(): call ConsumeOverflow() each cycle and emit overflow directly via tea.Println (not appendScrollback, to avoid triggering drainScrollback's auto-flush guard while streaming is active) - streamComponentIface: add ConsumeOverflow() to interface - model_test.go: add stub ConsumeOverflow() to test double - children_test.go: add 7 unit tests covering ConsumeOverflow and the updated GetRenderedContent skip-flushed-lines behaviour