Skip to content

feat(ui): ctrl-o expands the live streaming card to full tail (#335, #337)#359

Merged
esengine merged 1 commit intomainfrom
feat-ctrl-o-expand-streaming
May 7, 2026
Merged

feat(ui): ctrl-o expands the live streaming card to full tail (#335, #337)#359
esengine merged 1 commit intomainfrom
feat-ctrl-o-expand-streaming

Conversation

@esengine
Copy link
Copy Markdown
Owner

@esengine esengine commented May 7, 2026

Closes #335
Closes #337

Summary

@dacec354 raised two related asks:

Single keystroke covers both: ctrl-o toggles "expanded" mode on the live streaming card.

  • Expanded shows up to 60 visual lines (capped so it can't swallow the viewport) plus a ⋯ N earlier lines above hint when it overflows.
  • Collapses back to the 4-line preview.
  • Auto-resets to collapsed at the end of every turn so each new reply starts compact.
  • A expanded ⌃o / preview ⌃o pill in the card header advertises the keybind.

The fold-toggle half of #337 is solved by the same mechanism (you can fold long content back to 4 lines while it's still live). Settled cards live in Ink's <Static> which already wrote the bytes to terminal scrollback — no take-backs there. The pre-existing space pause for the undo banner (PR #356) was the first half of #337; together they close it.

The first half of #337 (space pauses 5s undo) shipped in PR #356. This PR closes both #335 and #337 by addressing the remaining ask.

Test plan

  • npx tsc --noEmit clean
  • npx vitest run — 165/165 test files, 2425 tests pass
  • Manual: long reply, press ctrl-o, confirm tail expands and pill flips; press again to collapse

…337)

Pain point @dacec354 raised twice: while the model writes a long plan
or todo list, the streaming card only shows the last 4 lines, so the
content scrolls past before you can read it. And once a long reply
settles, you may want to fold it back down — but `<Static>` already
flushed the bytes to scrollback so that half can't be unwound.

This collapses both requests into one keystroke: `ctrl-o` toggles
"expanded" mode on the live streaming card. Expanded shows the last
60 visual lines (capped so the card can't swallow the whole viewport)
plus a `⋯ N earlier lines above` hint when content overflows.
Collapses back to the 4-line preview. Auto-resets to collapsed at the
end of every turn so each new reply starts compact.

The same `(LIVE)` constraint covers #337's fold-toggle ask: only
not-yet-committed cards are addressable. Settled cards live in Ink's
`<Static>` which writes terminal scrollback once, no take-backs.

The `expanded ⌃o` / `preview ⌃o` pill in the card header advertises
the keybind so users discover it without reading docs.
@esengine esengine merged commit a29a0ac into main May 7, 2026
3 checks passed
@esengine esengine deleted the feat-ctrl-o-expand-streaming branch May 7, 2026 05:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

For the 5 second undo. let space can pause it Add side bar and shortcuts to show message when ai is writing

1 participant