Commit Graph

205 Commits

Author SHA1 Message Date
Mario Zechner ff9a3f0660 Add [Unreleased] section for next cycle 2026-02-03 02:19:00 +01:00
Mario Zechner 4cbc865215 Release v0.51.2 2026-02-03 02:18:12 +01:00
Mario Zechner c6ab9a64ce chore(changelog): audit unreleased entries 2026-02-03 02:17:01 +01:00
Mario Zechner 8c38de0495 fix(tui): drain stdin on exit to avoid Kitty release leak
Drain stdin for up to 1s after disabling Kitty protocol so in-flight key
release events are consumed before the shell regains control.

Fixes #1204
2026-02-03 00:07:35 +01:00
Mario Zechner 9a4d043b28 fix(tui): drain Kitty key release events before exit to prevent SSH leak
Adds Terminal.prepareForExit() to disable Kitty protocol and wait for
in-flight release events before fully stopping. This prevents escape
sequences from leaking to the parent shell over slow SSH connections.

Fixes #1204
2026-02-03 00:01:39 +01:00
Mario Zechner 0aa0b5fdba Add [Unreleased] section for next cycle 2026-02-02 19:36:52 +01:00
Mario Zechner e02bdf8ef1 Release v0.51.1 2026-02-02 19:36:08 +01:00
Mario Zechner 59acb17354 docs: audit and update changelog entries for v0.51.0..HEAD 2026-02-02 19:35:17 +01:00
Mario Zechner f431f62609 fix(tui): pause stdin before restoring raw mode to prevent SSH session close
Fixes #1185
2026-02-02 19:24:55 +01:00
Mario Zechner 0925fafe3b fix(tui): reduce unnecessary full redraws for better performance
- Remove height change detection (only width changes trigger full redraw)
- Change clearOnShrink default to false (use PI_CLEAR_ON_SHRINK=1 to enable)
- Fix viewport check to use previousLines.length instead of maxLinesRendered
  (prevents false positive redraws when appending lines after content shrunk)
- Add clearOnShrink setting to /settings in coding-agent
- Remove line truncation in custom message component (always show full content)
2026-02-02 08:10:08 +01:00
Mario Zechner 419c07fb19 Add [Unreleased] section for next cycle 2026-02-02 00:51:29 +01:00
Mario Zechner 580c02c74d Release v0.51.0 2026-02-02 00:50:46 +01:00
Mario Zechner 43be54c237 Add [Unreleased] section for next cycle 2026-02-01 09:36:24 +01:00
Mario Zechner 7678b075fb Release v0.50.9 2026-02-01 09:35:42 +01:00
Mario Zechner aa83170e0f Add [Unreleased] section for next cycle 2026-02-01 02:34:06 +01:00
Mario Zechner 4baa42cb6d Release v0.50.8 2026-02-01 02:33:23 +01:00
Mario Zechner 6b6030d549 chore: audit changelog entries 2026-02-01 02:20:35 +01:00
Mario Zechner c27168840c test(tui): cover non-qwerty kitty base layout fallback 2026-02-01 01:33:28 +01:00
Mario Zechner f0eda2dfda Add [Unreleased] section for next cycle 2026-01-31 01:09:12 +01:00
Mario Zechner c50a0b8b6d Release v0.50.7 2026-01-31 01:08:29 +01:00
Mario Zechner 022b20f364 Add [Unreleased] section for next cycle 2026-01-30 22:03:55 +01:00
Mario Zechner f8d43ce02c Release v0.50.6 2026-01-30 22:03:14 +01:00
Mario Zechner d91cdc5f0c docs: add missing changelog entries for v0.50.5..HEAD
- tui: add #1095 content shrink fix (by @marckrenn)
- tui: add isImageLine perf optimization
- coding-agent: cross-package duplication for #1095, #1099
2026-01-30 22:02:17 +01:00
Mario Zechner 836e852af1 Fixes #1099 2026-01-30 18:19:16 +01:00
Mario Zechner 0091857f8b Add [Unreleased] section for next cycle 2026-01-30 11:48:16 +01:00
Mario Zechner 01d521c625 Release v0.50.5 2026-01-30 11:47:35 +01:00
Dave dV 9337d1c39d test(tui): add bug regression test for isImageLine crash fix
Added comprehensive bug regression test that demonstrates:
1. The bug scenario (old implementation using startsWith() fails)
2. The fix works (new implementation using includes() passes)

Test covers:
- Terminal without image support scenario (bug trigger)
- Both Kitty and iTerm2 image protocols
- Very long lines (300KB+) matching crash scenario
- Integration with tool execution scenarios
- Negative cases (no false positives)

All 347 tests pass including 12 new bug regression tests.
2026-01-30 11:46:13 +01:00
Dave dV 2339d7b5ac fix(tui): isImageLine should detect image escape sequences anywhere in line
Changed isImageLine() from using startsWith() to includes() to detect
Kitty and iTerm2 image escape sequences anywhere in a line, not just
at the start. This prevents TUI width checks from failing on lines
containing image data, which could cause crashes when rendering tool
results with images (e.g., when reading image files).

Also added comprehensive test coverage for isImageLine() including:
- Both iTerm2 and Kitty protocols
- Regression tests for long lines and terminals without image support
- Negative cases to ensure no false positives

Fixes crash: 'Rendered line exceeds terminal width' when image
escape sequences appear in output.
2026-01-30 10:07:22 +00:00
Mario Zechner 2cee7e17de Add [Unreleased] section for next cycle 2026-01-30 03:27:09 +01:00
Mario Zechner 3f5fe42d37 Release v0.50.4 2026-01-30 03:26:23 +01:00
Mario Zechner 355bc5adc3 docs: add missing changelog entries for commits since v0.50.3
- ai: Vercel AI Gateway routing support (#1051)
- tui: Ctrl+B/Ctrl+F keybindings (#1053), character jump navigation (#1074),
  line boundary navigation (#1050), performance optimizations (#1084)
- coding-agent: set_session_name RPC (#1075), config selector folder names (#1064)
- Cross-package duplication of tui/ai changes to coding-agent
- Add New Features section to coding-agent changelog
2026-01-30 03:25:00 +01:00
Mario Zechner c6557b93be docs(tui): note quoted autocomplete fix 2026-01-30 00:29:33 +01:00
Mario Zechner dc8539a001 fix(tui): support quoted paths with spaces in autocomplete
Fixes #1077
2026-01-30 00:11:12 +01:00
Mario Zechner df667b510a Release v0.50.3 2026-01-29 04:19:02 +01:00
Mario Zechner ded2d6399e Add [Unreleased] section for next cycle 2026-01-29 03:24:32 +01:00
Mario Zechner 9bb627a524 Release v0.50.2 2026-01-29 03:23:41 +01:00
Mario Zechner 58aa7096dd docs: add missing changelog entries for v0.50.1..HEAD commits 2026-01-29 03:22:00 +01:00
Colin Mason b212314f45 feat: add autocompleteMaxVisible setting for configurable dropdown height 2026-01-29 03:16:52 +01:00
Mario Zechner 81be81328c feat(tui,coding-agent): add shell-style keybindings alt+b, alt+f, ctrl+d
- Add alt+b/alt+f as alternative bindings for cursorWordLeft/cursorWordRight
- Add ctrl+d as alternative binding for deleteCharForward
- Fix ctrl+d in custom editor to perform delete when text is present
  (previously it was always consumed, even with non-empty input)

Closes #1043

Co-authored-by: Jason Ish <ish@unx.ca>
2026-01-29 00:21:39 +01:00
Mario Zechner 2cc2544809 Add [Unreleased] section for next cycle 2026-01-27 00:15:42 +01:00
Mario Zechner 29c59d79ba Release v0.50.1 2026-01-27 00:14:58 +01:00
Mario Zechner 2bbc1a7659 Add [Unreleased] section for next cycle 2026-01-26 16:55:24 +01:00
Mario Zechner 453e104d3a Release v0.50.0 2026-01-26 16:54:37 +01:00
Mario Zechner a6f9c3cf0d fix(tui): fix scrollback overwrite when appending lines past viewport
Appended lines were not committed to terminal scrollback because the
renderer used cursor movement (CSI B) and carriage return without
linefeed. This caused earlier content to be overwritten when the
viewport filled up.

Changes:
- For appended lines, emit \r\n to create real scrollback lines
- When target row is below viewport, scroll with \r\n before positioning
- Add PI_TUI_WRITE_LOG env var for debugging raw ANSI output
- Add fullRedraws readonly property to TUI class
- Add viewport-overwrite-repro.ts test script

fixes #954
2026-01-26 16:51:28 +01:00
Mario Zechner fa8b26a184 docs: update changelog guidance and links 2026-01-26 15:45:51 +01:00
Nico Bailon c565fa9af8 fix(tui): keep overlays centered across resizes (#950) 2026-01-26 09:43:16 +01:00
Mario Zechner f42deae13e fix(tui): gate slash menu to empty input 2026-01-22 23:12:33 +01:00
Mario Zechner df8b3544c3 Add [Unreleased] section for next cycle 2026-01-22 01:43:26 +01:00
Mario Zechner 34d28a47b5 Release v0.49.3 2026-01-22 01:42:43 +01:00
Mario Zechner b7cef51f3f fix(tui): don't add space after directory completion for @ file attachments 2026-01-21 23:48:41 +01:00