Commit graph

1035 commits

Author SHA1 Message Date
Armin Ronacher
583f153d50 fix(tui): normalize source filenames 2026-08-01 14:38:13 +02:00
Armin Ronacher
af187eee4b fix(tui): clip Kitty images to layout boundaries 2026-07-31 17:49:05 +02:00
Armin Ronacher
6129a353b1 feat(tui): add configurable fullscreen scrollbars 2026-07-31 17:17:02 +02:00
Armin Ronacher
bf4a90d819 fix(tui): preserve spaces in settings searches 2026-07-31 16:34:27 +02:00
Armin Ronacher
3c717842e8 feat(tui): add fullscreen transcript navigation 2026-07-31 16:23:58 +02:00
Armin Ronacher
696a828a4d fix(tui): prevent phantom alt-screen selections 2026-07-31 15:13:53 +02:00
Armin Ronacher
8ac92f831c feat(tui): add draggable transient scrollbars 2026-07-31 15:02:52 +02:00
Armin Ronacher
17090d4b99
feat(tui): add stacked alt-screen flashes (#7361) 2026-07-31 10:13:31 +02:00
David Brailovsky
3c5a1b2393 fix(tui): reduce default mouse wheel scroll speed 2026-07-31 09:53:33 +02:00
Mario Zechner
ea1e77e2db feat(tui): add alternate-screen viewport layouts 2026-07-31 09:22:10 +02:00
Alexey Zaytsev
714978bf51
Markdown api (#7231)
* feat(tui): export bundled Marked parser

* feat(coding-agent): add width-aware Markdown transformers

---------

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-07-30 22:39:04 +02:00
Petr Houška
dfe47d3fbd
fix(tui): align grapheme widths with terminal cells (#6987)
Intl.Segmenter can group Indic conjuncts and spacing marks into one grapheme even when wcwidth-style terminals allocate multiple cells. Count visible consonants after marks and Unicode spacing marks separately while preserving zero-width exceptions.

This is a compatibility heuristic. Unicode Spacing_Mark indicates positive advance, not a full terminal cell; Kitty keeps many Indic continuations in the initial cell, while xterm-style terminals advance for them, so Pi overcounts some clusters in Kitty.

Overcounting causes horizontal drift, but undercounting can trigger terminal autowrap, so this change favors overcounting.

Clusters can contain repeated marks and mark-consonant continuations, so this implementation leaves their widths uncapped. Collapsing them would undercount terminals that advance for every visible continuation.

Mode 2027 does not report cluster widths, so Pi still needs local width calculations. This change does not implement OSC 66, which would be preferable where supported.

Fixes #6124

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-07-30 22:25:46 +02:00
Mario Zechner
c13ffe1877 feat(tui): add alternate-screen renderer
Closes #7304
2026-07-30 12:59:48 +02:00
Armin Ronacher
71efc6f0c1 Add [Unreleased] section for next cycle
Some checks are pending
CI / build-check-test (push) Waiting to run
2026-07-30 00:24:23 +02:00
Armin Ronacher
845d6ff1f6 Release v0.83.0 2026-07-30 00:24:19 +02:00
Armin Ronacher
44b26c9b44 fix(tui): format image fallback changes 2026-07-30 00:20:32 +02:00
Armin Ronacher
f0499a63ff docs: audit changelogs since v0.82.1 2026-07-30 00:00:54 +02:00
Mario Zechner
fb4ecd633e
fix(tui): shorten image fallback paths and clamp width (#7262)
Image.render() previously emitted the imageFallback line without
truncateToWidth. Long absolute paths (common when callers pass a
filename) exceeded the terminal width and crashed the TUI.

- imageFallback: home-shorten paths to ~/...; OSC 8 file:// link when
  hyperlinks are available and the path is absolute
- Image.render: truncate fallback lines to the render width
- tests for shorten, hyperlink, basename, and width clamp

Co-authored-by: Moritz Hofmann <Moritz.Hofmann@aimentum.de>
2026-07-29 10:27:12 +02:00
Armin Ronacher
5bc1c2c0a6 Add [Unreleased] section for next cycle
Some checks failed
CI / build-check-test (push) Has been cancelled
2026-07-25 14:37:15 +02:00
Armin Ronacher
b4f293684b Release v0.82.1 2026-07-25 14:37:11 +02:00
Armin Ronacher
7df73a00c6 Add [Unreleased] section for next cycle 2026-07-24 08:00:35 +02:00
Armin Ronacher
083e616212 Release v0.82.0 2026-07-24 08:00:31 +02:00
Armin Ronacher
ee0dca45b4 docs: audit unreleased changelog entries 2026-07-24 07:33:09 +02:00
Christian Klotz
37bedb7f0b
fix(tui): truncate narrow editor scroll indicators (#7015)
Fixes #6962
2026-07-23 20:47:11 +02:00
David Brailovsky
fe42ba5b38
write tui debug/crash logs into the configured pi agent dir (#6958)
fixes #6652
2026-07-22 15:48:25 +02:00
Mario Zechner
dd6bea41ef Add [Unreleased] section for next cycle 2026-07-21 18:40:11 +02:00
Mario Zechner
20be4b18d4 Release v0.81.1 2026-07-21 18:40:08 +02:00
Mario Zechner
3dcb411e89 Add [Unreleased] section for next cycle 2026-07-21 15:28:05 +02:00
Mario Zechner
9c480b6ad2 Release v0.81.0 2026-07-21 15:28:05 +02:00
Mario Zechner
c901d9a877 docs: audit unreleased changelogs 2026-07-21 14:47:00 +02:00
Mario Zechner
3595e080cb fix(tui): keep paste registry in sync when deleting paste markers
Undo snapshots now restore paste content and counters alongside editor text. Paste marker renumbering shifts registry entries in ascending ID order before rewriting markers, preventing literal or incorrect paste content on submit.\n\nCloses #6844
2026-07-20 14:04:21 +02:00
Damjan 9000
5f2f7d0679
fix(tui): clear inverted cursor on exit to avoid dual cursor appearance (#6790)
When pi exits, the reverse-video cursor character remains visible on
the editor prompt line. Combined with the terminal's own cursor below,
this creates the appearance of two cursors, which is confusing.

Overwrite the inverted cursor with a normal space before exiting.
2026-07-20 09:09:56 +02:00
Xiangzhe
00b032676f
fix(tui): handle CRLF and CR line endings (#6764) 2026-07-17 09:01:10 +02:00
Armin Ronacher
216e672e7c Add [Unreleased] section for next cycle 2026-07-16 23:59:44 +02:00
Armin Ronacher
8dc78834cd Release v0.80.10 2026-07-16 23:59:41 +02:00
Armin Ronacher
f7e0603745 Add [Unreleased] section for next cycle 2026-07-16 19:18:00 +02:00
Armin Ronacher
2d16f92973 Release v0.80.9 2026-07-16 19:17:57 +02:00
David Brailovsky
e022eec37d Add [Unreleased] section for next cycle 2026-07-16 16:35:19 +02:00
David Brailovsky
fae7176cb9 Release v0.80.8 2026-07-16 16:35:16 +02:00
Armin Ronacher
eb793510ad docs: audit unreleased changelogs
Some checks are pending
CI / build-check-test (push) Waiting to run
2026-07-16 13:58:56 +02:00
Xiangzhe
1c799cecd0
fix(tui): normalize tabs for terminal output (#6697) 2026-07-16 09:17:05 +02:00
Armin Ronacher
9d09075c53 Add [Unreleased] section for next cycle 2026-07-14 18:36:49 +02:00
Armin Ronacher
818d67457c Release v0.80.7 2026-07-14 18:36:46 +02:00
Armin Ronacher
53a087fe82 docs: audit unreleased changelogs 2026-07-14 18:18:05 +02:00
Rafał Krzyważnia
8479bd8474
fix(tui): parse legacy alt-prefixed symbols (#6523)
Some checks are pending
CI / build-check-test (push) Waiting to run
2026-07-11 15:20:08 +02:00
Armin Ronacher
34582ef34b Add [Unreleased] section for next cycle 2026-07-10 01:16:58 +02:00
Armin Ronacher
2b3fda9921 Release v0.80.6 2026-07-10 01:16:55 +02:00
Armin Ronacher
e3513193bf Add [Unreleased] section for next cycle 2026-07-09 21:04:09 +02:00
Armin Ronacher
cc62baa442 Release v0.80.5 2026-07-09 21:04:06 +02:00
Armin Ronacher
ef793a983b Add [Unreleased] section for next cycle 2026-07-09 20:53:01 +02:00