Commit graph

1243 commits

Author SHA1 Message Date
David Brailovsky
01001d7ad5 Merge remote-tracking branch 'origin/main' into dev 2026-08-19 09:51:14 +02:00
Mario Zechner
f0c5d86d20 fix(tui): fit text padding to narrow widths, closes #8252 2026-08-18 16:49:14 +02:00
David Brailovsky
ee6a5d29f2 Merge remote-tracking branch 'origin/main' into dev 2026-08-17 13:20:15 +00:00
Armin Ronacher
374e56e553 fix(tui): avoid duplicate VS Code right-click paste
closes #8186
2026-08-17 11:40:38 +02:00
Mario Zechner
71026970a0 feat(tui): add reusable mouse interaction support 2026-08-14 15:26:27 +02:00
David Brailovsky
0e0021fbbe Add [Unreleased] section for next cycle 2026-08-14 12:00:04 +02:00
David Brailovsky
914cf1472e Release v0.84.2 2026-08-14 12:00:00 +02:00
David Brailovsky
9b4adc823f docs: audit changelogs since v0.84.1 2026-08-14 09:50:22 +00:00
David Brailovsky
d10c974b94 docs: audit changelogs since v0.84.1 2026-08-14 11:47:05 +02:00
Panoplos
4caa3c440b
fix(tui): route selection copy through the host clipboard (#8110)
TuiAltScreen.copySelectionToClipboard() wrote a bare OSC 52 sequence and
flashed "Copied!" unconditionally. Terminals that ignore OSC 52 clipboard
writes (macOS Terminal.app, VTE terminals, tmux without OSC 52 passthrough)
left the system clipboard untouched while the toast reported success.

Add an injectable copySelection option to TuiAltScreenOptions (an async
handler returning whether the copy succeeded) and use it when provided,
falling back to the existing OSC 52 write otherwise. The coding agent now
injects its native clipboard implementation (clipboard addon + pbcopy /
wl-copy / xclip / xsel), so selection copy reaches the real clipboard and
the toast only fires on verified success, with "Copy failed" otherwise.

Closes #7761

Co-authored-by: 富永 誠 <makoto@credify.one>
2026-08-14 11:46:46 +02:00
Mario Zechner
83aed2ba58 fix(tui): handle generic SGR mouse releases
closes #7963
2026-08-14 10:11:15 +02:00
David Brailovsky
2e4d239594 fix(tui): give focused fullscreen overlays wheel and viewport keys
Skip TuiAltScreen viewport consume for wheel and alt-screen scroll
keys when a visible overlay has focus. Transcript search still owns
those events so the transcript can move while the find box is open.

fixes #7894
2026-08-12 10:02:32 +02:00
Armin Ronacher
534bcbffb7 fix(tui): handle LaTeX control spaces across line endings 2026-08-11 23:19:24 +02:00
David Brailovsky
2a95ef70db fix(tui): apply PI_TUI_ESC_TIMEOUT only to lone ESC
Split StdinBuffer's incomplete-sequence wait from the lone-ESC wait so SSH and PI_TUI_ESC_TIMEOUT can reassemble split Alt+Enter without delaying Escape or mouse/CSI buffering.
2026-08-11 12:53:06 +02:00
Vegard Stikbakke
452923b54a fix(tui): parse multiline LaTeX arguments
Closes #7760
2026-08-11 12:37:45 +02:00
David Brailovsky
9c53c47f80 fix indent 2026-08-11 09:49:08 +00:00
Michael Renner
4a879dd759
fix(tui): avoid repainting idle fullscreen sessions on focus loss (#7892)
* fix(tui): avoid idle focus-loss repaint

* fix(tui): skip zero-width focus-loss repaint

* fix(tui): clarify focus-loss selection check
2026-08-11 11:13:37 +02:00
Arthur
06ed871679
fix(tui): prevent split Alt+Enter from interrupting (#7899)
* fix(tui): prevent split Alt+Enter from interrupting

Increase the escape-sequence timeout over SSH and allow high-latency terminals to override it with PI_TUI_ESC_TIMEOUT.

Fixes #7876

* docs(coding-agent): shorten escape timeout description

---------

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-08-11 11:12:01 +02:00
Gators King
1279952de4
feat(tui): add unbound single-line transcript scrolling actions (#7903)
Add tui.altScreen.lineUp and tui.altScreen.lineDown keybinding actions
for one-line viewport scrolling in fullscreen TUI. Both are unbound by
default and can be configured via user keybindings.

closes #7830

Co-authored-by: midas <midas@traderdifferent.com>
Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-08-11 11:06:55 +02:00
Armin Ronacher
00121ed999
feat(tui): add fullscreen transcript search (#7913)
Search rendered primary scroll-view content with configurable navigation and theme-aware highlighting. Preserve manual scrolling and buffer fragmented mouse input during search.
2026-08-11 10:59:28 +02:00
Mario Zechner
18dee5f0a8 fix(tui): stop recompositing full-width rows in the alt-screen painter
paintBox ran every visible text row through compositeTuiLine on every
frame, rebuilding each row string via ANSI/grapheme segmentation even
when nothing changed. Full-width boxes painting onto untouched rows now
assign the source line reference directly; padding is unnecessary since
rows are written with erase-line and the final width clamp still
truncates over-wide lines.

Cuts alt-screen per-frame allocation churn 9-18x (test/render-churn-bench.ts)
and removes the fullscreen RSS penalty over regular mode on short
sessions (previously +11-29 MiB loaded, +26-36 MiB peak).
2026-08-08 12:06:58 +02:00
Armin Ronacher
310411ba46 Add [Unreleased] section for next cycle 2026-08-07 07:48:13 +02:00
Armin Ronacher
53fa77ccd8 Release v0.84.1 2026-08-07 07:48:13 +02:00
Armin Ronacher
6ba4d23e7c docs: audit changelogs since v0.84.0 2026-08-07 07:47:42 +02:00
Thomas Mustier
79f72fccec
docs(tui): Clarify TUI test runner and remove stale Vitest config (#7732)
* docs[tui]: clarify Node test runner guidance

* docs[tui]: preserve test guidance wording

* docs[tui]: keep runner guidance focused
2026-08-07 07:23:06 +02:00
Armin Ronacher
c96bfaccd0 fix(coding-agent): support Windows fullscreen right-click paste 2026-08-06 22:39:40 +02:00
Armin Ronacher
a3e93ec85e feat(tui): add half-page transcript scrolling
closes #7735
2026-08-06 22:30:13 +02:00
Volkan Sagcan
171c6b520b
fix(tui): correct multi-click text selection (#7733) 2026-08-06 22:25:00 +02:00
Armin Ronacher
58fc0431a7 feat(tui): select words and lines with multi-click (closes #7725) 2026-08-06 18:49:42 +02:00
Armin Ronacher
fc3554e16d fix(tui): reduce mouse tracking in terminal multiplexers 2026-08-06 18:21:35 +02:00
Armin Ronacher
aa601d7ba0 fix(tui): correct LaTeX whitespace and matrix layouts 2026-08-06 13:23:38 +02:00
Armin Ronacher
38e8f28113 Add [Unreleased] section for next cycle 2026-08-06 12:33:01 +02:00
Armin Ronacher
a5f43bf8af Release v0.84.0 2026-08-06 12:32:57 +02:00
Armin Ronacher
db48124e9d docs: audit unreleased changelogs 2026-08-05 23:11:21 +02:00
Armin Ronacher
5446cd7545 feat(coding-agent): rename UI mode to TUI mode 2026-08-05 22:56:58 +02:00
Armin Ronacher
05e89b4188 feat(tui): render LaTeX math in Markdown 2026-08-05 21:42:11 +02:00
Armin Ronacher
16ad96ae89 feat(tui): add configurable prompt history actions 2026-08-05 21:34:21 +02:00
Kurt Himebauch
229afb825c
fix(tui): skip OSC 8 scan for plain prefixes (#7665) 2026-08-05 21:28:59 +02:00
Armin Ronacher
4254e0d93a fix(tui): include Windows native rebuild sources 2026-08-05 20:55:08 +02:00
Armin Ronacher
29d9f087cc fix(tui): avoid throttling keyboard input 2026-08-05 20:42:06 +02:00
Kurt Himebauch
b780d20aa1
fix(tui): close truncated OSC 8 links (#7657)
When truncateToWidth() cut through an OSC 8 hyperlink label, the retained prefix could leave the hyperlink open. Close an active hyperlink before the existing reset and ellipsis, preserving its BEL or ST terminator.
Added a focused regression test for the reported BEL-terminated case.
2026-08-05 13:50:37 +02:00
Ramiz Wachtler
2c233a5c04
fix(tui): add iterm payload size for xterm.js image addon (#7612)
- include decoded byte count in iterm2 osc 1337 sequences
- satisfy @xterm/addon-image@0.9.0 image validation
- fixes #7465
2026-08-05 09:50:58 +02:00
Armin Ronacher
464804e156 fix(tui): merge upstream main 2026-08-05 09:12:18 +02:00
Armin Ronacher
73dd066ee5 fix(tui): detect Windows Shift+Enter 2026-08-05 09:05:20 +02:00
Armin Ronacher
cc4aa1a2e0 fix(tui): include Darwin native rebuild sources 2026-08-04 23:25:26 +02:00
Armin Ronacher
7830975233 feat(tui): add Darwin native build recipe 2026-08-04 22:25:47 +02:00
Armin Ronacher
b0d382e25a fix(tui): add editor viewport key aliases (closes #7574) 2026-08-04 21:25:39 +02:00
Mario Zechner
f24ab6e14c fix(tui): honor nested stack minimum sizes 2026-08-04 12:44:59 +02:00
Vegard Stikbakke
e8a17822de
fix(tui): correct terminal progress clear sequence (#7581)
Co-authored-by: Felix Rath <felixm.rath@gmail.com>
2026-08-04 08:44:00 +02:00
Armin Ronacher
fa07e7bd92 fix(tui): detect truecolor for Windows consoles 2026-08-03 21:57:44 +02:00