Skip to content

feat(tui_v3): bring v2 parity to scrollback-first TUI - #462

Merged
lsdefine merged 1 commit into
lsdefine:mainfrom
nianyucatfish:feat/tui-v3-improvements
May 23, 2026
Merged

feat(tui_v3): bring v2 parity to scrollback-first TUI#462
lsdefine merged 1 commit into
lsdefine:mainfrom
nianyucatfish:feat/tui-v3-improvements

Conversation

@nianyucatfish

Copy link
Copy Markdown
Collaborator

Summary

  • migrate more v2 parity into tui_v3: real /export clipboard/file flows, per-turn tool folding with incremental collapse, ask_user focus-cycle +
    multi-select polish, and a v2-style plan card
  • inline the zh/en i18n layer into frontends/tui_v3.py so the frontend ships as a single module
  • add explicit ui extra deps for the new TUI runtime (prompt_toolkit, rich) and clipboard-image support (pillow)

User-facing upgrade note

If you want to use the updated tui_v3, please make sure these packages are installed:

pip install prompt_toolkit rich pillow

Or install the UI extra:

pip install ".[ui]"

What they are for:
- prompt_toolkit: new hard dependency for tui_v3 input handling / keybindings / cross-platform terminal behavior
- rich: markdown + text rendering; in v2 this was often present transitively via Textual, but v3 now depends on it directly
- pillow: clipboard image/file grabbing (PIL.ImageGrab.grabclipboard()), especially important for Windows image paste support

…line i18n

scrollback-first tui_v3 rounds out v2 parity across this session:

- /export: v2-aligned subcommands (clip/file/all/legacy); clip writes to the
  real OS clipboard via existing copy() (pbcopy/clip.exe/wl-copy/xclip/xsel);
  picker→file prefills an editable filename
- tool-call folding: per-turn fold ported from v2 fold_turns; Ctrl+O toggles;
  incremental repaint folds turn N the moment turn N+1 marker streams in
- ask_user: focus-cycle model (↑↓ moves between candidates and the input box,
  caret hidden on candidate focus); multi-select is checkbox-only with no
  input box; [x]/[ ] ASCII checkboxes instead of Unicode ballot glyphs
- plan card: v2 _refresh_planbar port — 5-row budget, current-step line,
  complete/placeholder states with grace periods, mtime-cached reads
- attachments: bracketed-paste, image/file placeholders, multi-line paste
  aligned to v2 behaviour
- i18n: zh/en layer merged inline (was a separate tui_v3_i18n.py) so the
  frontend ships as one drop-in module

pyproject: add prompt_toolkit + pillow to the `ui` extra.
@lsdefine
lsdefine merged commit a28eb9f into lsdefine:main May 23, 2026
lsdefine added a commit that referenced this pull request Jul 23, 2026
feat(tui_v3): bring v2 parity to scrollback-first TUI
Imzl-zl pushed a commit to Imzl-zl/GenericAgent that referenced this pull request Aug 5, 2026
…ements

feat(tui_v3): bring v2 parity to scrollback-first TUI
Imzl-zl pushed a commit to Imzl-zl/GenericAgent that referenced this pull request Aug 5, 2026
…ements

feat(tui_v3): bring v2 parity to scrollback-first TUI
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.

2 participants