Commit graph

287 commits

Author SHA1 Message Date
初心Yearth
d7951ec362
fix(tui): rank skill autocomplete by bare name (#9120) 2026-09-20 00:25:43 +02:00
Armin Ronacher
fa0e1f48ac fix(tui): improve LaTeX compatibility and layouts
closes #8827
2026-09-19 23:28:04 +02:00
xu0o0
bfa6862400
fix(tui): handle CJK punctuation in file autocomplete (#9746) 2026-09-19 21:53:26 +02:00
Armin Ronacher
60e7e76bd7 fix(coding-agent): surface clipboard backend failures
closes #9618
2026-09-16 01:29:52 +02:00
Armin Ronacher
caf6dfe731
feat(tui): Simplify clipboard handling (#9163)
Replace the external clipboard dependency with small macOS, Windows,
and X11 helpers and integrate them into coding-agent.

Run native clipboard operations on worker threads and make command
fallbacks asynchronous. Preserve incremental X11 transfers, legacy text
encodings, native image formats, and existing Wayland and platform tools.

Include native prebuilds with ARM64 page alignment, packaging updates,
and regression coverage.
2026-09-05 23:52:32 +02:00
Alexey Zaytsev
ab9e6f89b4
feat(tui): accelerate Alt-modified wheel scrolling (#9166) 2026-09-05 13:14:11 +02:00
Armin Ronacher
9841914c71 fix(tui): keep list selection unchanged on mouse hover 2026-09-05 00:46:34 +02:00
Armin Ronacher
2d41163332 fix(tui): make fullscreen transcript search scale linearly 2026-09-04 10:22:04 +02:00
Cristina Poncela Cubeiro
457ae8c79c
feat(tui): alt mode scrollbar but prettier (#8801) 2026-09-04 00:05:47 +02:00
Armin Ronacher
79680533c6 feat(tui): add clickable jump-to-end indicator to fullscreen transcript
Adds TuiAltScreenOptions.scrollToEndIndicator, composited onto the last
row of the follow-end primary scroll view while it is scrolled up. A left
press on the label resumes end-following. Minimal rebuild of #9080.
2026-09-03 22:54:59 +02:00
Cristina Poncela Cubeiro
1d9787c11f
feat(tui): prettier Working... spinner (#8799) 2026-09-03 20:34:04 +02:00
Cristina Poncela Cubeiro
7d399e7be8
feat(tui): search improvements (#8800) 2026-09-03 15:09:51 +02:00
Anton Geraschenko
c505f4c198
fix(tui): remove coding-agent config reads from pi-tui
Fixes #8698
2026-09-03 11:59:14 +02:00
xu0o0
f0592205f8
feat(tui): render relational algebra join symbols & fix(coding-agent): type error in test (#9050)
* feat(tui): render relational algebra join symbols

* fix(coding-agent): update interactive mode test fixture
2026-09-03 10:45:02 +02:00
David Brailovsky
487af8e168 Merge remote-tracking branch 'origin/main' into dev 2026-09-01 14:48:57 +00:00
Bartłomiej Kida
605a1b0385
fix(tui): wrap SIGWINCH self-signal so restricted seccomp policies do not crash startup (#8898) 2026-09-01 14:16:21 +02:00
Sviatoslav Abakumov
6492144773
fix(tui): detect Zed terminal capabilities (#8828) 2026-09-01 11:03:34 +02:00
Mario Zechner
d24c99f44d feat(tui): add large transcript render benchmark 2026-09-01 02:17:43 +02:00
Cristina Poncela Cubeiro
758a0ee9b7 Merge branch 'main' into dev
# Conflicts:
#	packages/agent/CHANGELOG.md
#	packages/ai/scripts/generate-models.ts
#	packages/ai/src/providers/cloudflare-ai-gateway.ts
#	packages/ai/test/zai-coding-plan-models.test.ts
#	packages/coding-agent/src/modes/interactive/interactive-mode.ts
#	packages/tui/src/tui-alt-screen.ts
2026-08-28 13:19:43 +02:00
Cristina Poncela Cubeiro
4e49492999
feat(tui): allow disable copy on fullscreen, ctrl + x copies selection (#8731) 2026-08-27 18:07:54 +02:00
Armin Ronacher
e86823096c feat(tui): add terminal capability overrides closes #8665 2026-08-26 17:40:36 +02:00
Cristina Poncela Cubeiro
1ac6128e66
fix(tui): make alt screen not segment on - and / (#8676)
* fix(tui): make alt screen not segment on - and /

* cleanup
2026-08-26 14:33:47 +02:00
Vegard Stikbakke
6c4f360264 fix(tui): chunk large main-screen renders closes #8028 2026-08-26 13:08:48 +02:00
Cristina Poncela Cubeiro
b37ebb7f22
fix(tui): autocomplete orders nested results (#8669) 2026-08-26 12:03:41 +02:00
Mario Zechner
2470ea4404 fix(tui): let drag select text over the editor
The editor consumed left mouse presses to position the cursor, which made
the alternate screen route the whole gesture to it and never start its
screen-level text selection. Handle the synthesized click event instead so
press/drag/release stay available for selection and copy.
2026-08-26 11:59:50 +02:00
David Brailovsky
8798b7996d Merge remote-tracking branch 'origin/main' into dev 2026-08-24 07:50:17 +00:00
Armin Ronacher
27b7a626de fix(coding-agent): use Windows-friendly keybinding defaults
closes #8372
2026-08-23 23:30:16 +02:00
Armin Ronacher
7d4c0e05dd
feat(coding-agent): bundle Node runtime (#8474) 2026-08-22 21:19:38 +02:00
Ramiz Wachtler
8f2ae3fadd
fix(tui): prevent wrapped table link color leaks (#8363) 2026-08-20 15:58:47 +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
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
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