Commit Graph

143 Commits

Author SHA1 Message Date
Mario Zechner 7f9cf543d5 Add [Unreleased] section for next cycle 2026-01-17 00:32:57 +01:00
Mario Zechner 91be338e39 Release v0.48.0 2026-01-17 00:32:07 +01:00
Mario Zechner fe52ff00d2 feat: add editorPaddingX setting for input editor horizontal padding 2026-01-16 23:50:00 +01:00
ferologics 48ea444bc4 fix: align input editor with message content padding
Adds paddingX option to Editor component and hardcodes paddingX: 1 in
coding-agent editors so the cursor/text aligns with chat message content.
2026-01-16 23:15:06 +01:00
Mario Zechner 0c33e0dee5 chore: audit changelog entries for v0.47.0, add cl.md prompt template
- Add missing changelog entries for commits since v0.47.0
- Cross-duplicate ai/tui fixes to coding-agent changelog
- Change PI_NO_HARDWARE_CURSOR to PI_HARDWARE_CURSOR (opt-in)
- Fix typo in PI_CODING_AGENT_DIR changelog entry
- Add .pi/prompts/cl.md for pre-release changelog audits
2026-01-16 21:11:01 +01:00
Sarat Chandra 12ab69fbad fix(tui): decode Kitty CSI-u shifted symbols (#779) 2026-01-16 17:53:15 +01:00
Mario Zechner 4dbf094b65 Add PI_NO_HARDWARE_CURSOR env var for terminals with limited escape sequence support
Fixes cursor visibility issues in JetBrains IDE terminals (IntelliJ, PyCharm) where
the hardware cursor either blinks or becomes invisible depending on settings.

Fixes #771
2026-01-16 12:51:09 +01:00
Mario Zechner 589a2ffcd3 Add [Unreleased] section for next cycle 2026-01-16 04:41:48 +01:00
Mario Zechner 6248d86ff6 Release v0.47.0 2026-01-16 04:41:04 +01:00
Mario Zechner cb369b680b Update changelogs for v0.47.0 release
- Add OpenAI Codex official support entry
- Add pi-internal:// URL scheme
- Add ctx.shutdown() fix (#756)
- Add OpenAI Codex retry logic (#733)
- Add third-party contributions:
  - #702 by @aliou (custom tool HTML export)
  - #728 by @richardgill (frontmatter parsing, SelectList fix)
  - #747 by @kaofelix (tree filter shortcuts)
  - #752 by @richardgill (keymap expansion)
2026-01-16 04:39:48 +01:00
Mario Zechner 07fad1362c feat(tui): hardware cursor positioning for IME support
- Add Focusable interface for components that need hardware cursor positioning
- Add CURSOR_MARKER (APC escape sequence) for marking cursor position in render output
- Editor and Input components implement Focusable and emit marker when focused
- TUI extracts cursor position from rendered output and positions hardware cursor
- Track hardwareCursorRow separately from cursorRow for differential rendering
- visibleWidth() and extractAnsiCode() now handle APC sequences
- Update overlay-test.ts example to demonstrate Focusable usage
- Add documentation for Focusable interface in docs/tui.md

Closes #719, closes #525
2026-01-16 04:30:07 +01:00
Mario Zechner 356a482527 fix(tui): add vertical scrolling to Editor when content exceeds terminal height
The Editor component now accepts TUI as the first constructor parameter,
enabling it to query terminal dimensions. When content exceeds available
height, the editor scrolls vertically keeping the cursor visible.

Features:
- Max editor height is 30% of terminal rows (minimum 5 lines)
- Page Up/Down keys scroll by page size
- Scroll indicators show lines above/below: ─── ↑ 5 more ───

Breaking change: Editor constructor signature changed from
  new Editor(theme)
to
  new Editor(tui, theme)

fixes #732
2026-01-16 04:12:21 +01:00
Mario Zechner e46cc55fe0 Add [Unreleased] section for next cycle 2026-01-15 17:36:40 +01:00
Mario Zechner 0aaa4ef5e4 Release v0.46.0 2026-01-15 17:35:54 +01:00
Mario Zechner a216cc496f chore: update changelogs 2026-01-15 17:34:59 +01:00
Danila Poyarkov 15a9670db5 fix: keyboard shortcuts on non-Latin keyboard layouts (#718) 2026-01-14 10:28:58 +01:00
Mario Zechner 95859725b7 Add [Unreleased] section for next cycle 2026-01-14 00:11:36 +01:00
Mario Zechner d08821cc4a Release v0.45.7 2026-01-14 00:10:52 +01:00
Mario Zechner d83e1745d8 Add [Unreleased] section for next cycle 2026-01-13 22:48:47 +01:00
Mario Zechner f8dc72d24f Release v0.45.6 2026-01-13 22:48:05 +01:00
Mario Zechner 6c1d226210 docs: move PR #667 overlay entries to unreleased section 2026-01-13 22:47:38 +01:00
Mario Zechner 7d45e434de Merge branch 'main' into feat/tui-overlay-options 2026-01-13 22:06:02 +01:00
Mario Zechner 9994ebbedd Add [Unreleased] section for next cycle 2026-01-13 21:47:38 +01:00
Mario Zechner 9a08bb0d1e Release v0.45.5 2026-01-13 21:46:57 +01:00
Mario Zechner 3a1228c0b5 Add [Unreleased] section for next cycle 2026-01-13 21:37:34 +01:00
Mario Zechner bb0ba88b97 Release v0.45.4 2026-01-13 21:36:52 +01:00
Nico Bailon a4ccff382c feat(tui): overlay positioning API with CSS-like values
Add OverlayOptions for configurable positioning (anchor, margins, offsets,
percentages). Add OverlayHandle for programmatic visibility control with
hide/setHidden/isHidden. Add visible callback for responsive overlays.

Extension API: ctx.ui.custom() now accepts overlayOptions and onHandle callback.

Examples: overlay-qa-tests.ts (10 test commands), doom-overlay (DOOM at 35 FPS).
2026-01-12 22:44:58 -08:00
Mario Zechner 75146a2b96 Add [Unreleased] section for next cycle 2026-01-13 04:57:25 +01:00
Mario Zechner 2090599e4b Release v0.45.3 2026-01-13 04:56:41 +01:00
Mario Zechner 6c2167a0fe Add [Unreleased] section for next cycle 2026-01-13 03:28:40 +01:00
Mario Zechner c55082bb66 Release v0.45.2 2026-01-13 03:27:56 +01:00
Mario Zechner 71ee79f31a Add [Unreleased] section for next cycle 2026-01-13 03:07:28 +01:00
Mario Zechner e4a98d8381 Release v0.45.1 2026-01-13 03:06:43 +01:00
Mario Zechner 3efe58a62c Add [Unreleased] section for next cycle 2026-01-13 02:42:20 +01:00
Mario Zechner e22feba494 Release v0.45.0 2026-01-13 02:41:36 +01:00
Mario Zechner 7cad705a15 Add [Unreleased] section for next cycle 2026-01-12 19:05:08 +01:00
Mario Zechner 477c263838 Release v0.44.0 2026-01-12 19:04:28 +01:00
Nico Bailon d29f268f46 feat(tui): add pad parameter to truncateToWidth, overlay QA tests 2026-01-12 10:01:53 -08:00
Nico Bailon 0c0aac6599 feat(tui): add OverlayOptions API and fix width overflow crash
Adds positioning/sizing options for overlays and fixes crash when compositing
lines with complex ANSI sequences exceed terminal width.
2026-01-12 10:01:34 -08:00
Mario Zechner 842a65f06a Add changelog and docs for settings fuzzy search (#643) 2026-01-12 19:00:33 +01:00
Ogulcan Celik a5441706f3 fix(tui): numbered list items showing "1." when code blocks break list continuity 2026-01-12 17:09:51 +01:00
Aliou Diallo 638fbc459b feat(coding-agent): add page-up/down navigation to session selector (#662)
* feat(tui): add pageUp/pageDown key support and selectPageUp/selectPageDown actions

* feat(coding-agent): add page-up/down navigation to session selector
2026-01-12 17:01:46 +01:00
Mario Zechner 6730b4fa59 Add [Unreleased] section for next cycle 2026-01-12 01:00:23 +01:00
Mario Zechner 8ac130c729 Release v0.43.0 2026-01-12 00:59:39 +01:00
Mario Zechner 6d495348c5 fix(tui): reset styles per line 2026-01-11 18:36:48 +01:00
Mario Zechner 9655907624 feat: Add skill slash commands and fuzzy matching for all commands
- Skills registered as /skill:name commands for quick access
- Toggle via /settings or skills.enableSkillCommands in settings.json
- Fuzzy matching for all slash command autocomplete (type /skbra for /skill:brave-search)
- Moved fuzzy module from coding-agent to tui package for reuse

Closes #630 by @Dwsy (reimplemented with fixes)
2026-01-11 17:56:11 +01:00
Jian Zhang b57eafaadb fix(tui): ensure cursor moves to end of content on exit to prevent visual artifacts 2026-01-11 17:25:26 +01:00
Mario Zechner 016a24e9a1 Add [Unreleased] section for next cycle 2026-01-11 04:11:34 +01:00
Mario Zechner 31fe16f2e7 Release v0.42.5 2026-01-11 04:10:49 +01:00
Ogulcan Celik eb15f326c1 fix(tui): skip key release/repeat check for bracketed paste content
Pasted content containing Kitty key release patterns (e.g., :3F in bluetooth
MAC addresses) was incorrectly detected as a key release event and dropped.

The fix checks for bracketed paste markers before running pattern checks.
Also applied to isKeyRepeat() for consistency.

Closes #623
2026-01-11 03:14:59 +01:00