Mario Zechner
9330f5a10a
Add [Unreleased] section for next cycle
2026-01-07 00:43:25 +01:00
Mario Zechner
befbeb30e4
Release v0.37.6
2026-01-07 00:42:45 +01:00
Mario Zechner
a2f032a426
feat(tui): add Kitty keyboard protocol flag 2 support for key release events
...
- Enable flag 2 in Kitty protocol for event type reporting
- Add isKeyRelease() and isKeyRepeat() functions
- Parse event type suffix (:1/:2/:3) in Kitty sequences
- Export KeyEventType type
2026-01-07 00:41:44 +01:00
Mario Zechner
a00322175f
Add [Unreleased] section for next cycle
2026-01-06 23:25:53 +01:00
Mario Zechner
fe95983dcf
Release v0.37.5
2026-01-06 23:25:12 +01:00
Mario Zechner
f87fb0a38a
Add [Unreleased] section for next cycle
2026-01-06 21:29:03 +01:00
Mario Zechner
b08a6b22ce
Release v0.37.4
2026-01-06 21:28:24 +01:00
Mario Zechner
a236e62025
Add [Unreleased] section for next cycle
2026-01-06 13:44:28 +01:00
Mario Zechner
86fea6379c
Release v0.37.3
2026-01-06 13:43:47 +01:00
Mario Zechner
9063a71fe6
Add [Unreleased] section for next cycle
2026-01-06 00:54:00 +01:00
Mario Zechner
6f4d16d76f
Release v0.37.2
2026-01-06 00:53:18 +01:00
Mario Zechner
2da853e9d6
Add [Unreleased] section for next cycle
2026-01-06 00:32:56 +01:00
Mario Zechner
a20112f45f
Release v0.37.1
2026-01-06 00:32:09 +01:00
Mario Zechner
0c712659b3
Add [Unreleased] section for next cycle
2026-01-06 00:07:57 +01:00
Mario Zechner
d3d53392e8
Release v0.37.0
2026-01-06 00:07:15 +01:00
Mario Zechner
4d87196801
fix(tui): remove alt+enter from newLine default keybinding
...
alt+enter is used by coding-agent for follow-up messages.
Having it also mapped to newLine caused a conflict.
2026-01-05 23:17:34 +01:00
Mario Zechner
c5d54a8413
feat(tui): query Kitty keyboard protocol support before enabling
...
- Query terminal with CSI ? u before enabling Kitty protocol
- Only enable protocol if terminal responds (100ms timeout)
- Mode-aware key parsing: when Kitty active, interpret legacy
sequences as custom terminal mappings (e.g. \x1b\r = shift+enter)
- Add Terminal Setup section to README with Ghostty/wezterm config
fixes #439
2026-01-05 22:52:13 +01:00
Mario Zechner
9b12719ab1
Improve OAuth login UI with consistent dialog component
...
- Add LoginDialogComponent with proper borders (top/bottom DynamicBorder)
- Refactor all OAuth providers to use racing approach (browser callback vs manual paste)
- Add onEscape handler to Input component for cancellation
- Add abortable sleep for GitHub Copilot polling (instant cancel on Escape)
- Show OS-specific click hint (Cmd+click on macOS, Ctrl+click elsewhere)
- Clear content between login phases (fixes GitHub Copilot two-phase flow)
- Use InteractiveMode's showStatus/showError for result messages
- Reorder providers: Anthropic, ChatGPT, GitHub Copilot, Gemini CLI, Antigravity
2026-01-05 19:58:44 +01:00
Mario Zechner
817221b79f
fix(tui): trim trailing whitespace in wrapped lines to prevent width overflow
...
fixes #457
2026-01-05 18:16:54 +01:00
Mario Zechner
60ec863354
Merge branch 'pr-457-wrap-whitespace'
2026-01-05 18:16:39 +01:00
Mario Zechner
74d5f5523e
Add [Unreleased] section for next cycle
2026-01-05 06:17:05 +01:00
Mario Zechner
435cd5d61f
Release v0.36.0
2026-01-05 06:16:25 +01:00
robinwander
786a326a71
fix(tui): trim trailing whitespace in wrapped lines to prevent width overflow
2026-01-04 22:15:25 -06:00
Mario Zechner
32f032b6d1
Add [Unreleased] section for next cycle
2026-01-05 03:42:07 +01:00
Mario Zechner
78d0b88f7d
Release v0.35.0
2026-01-05 03:41:24 +01:00
Mario Zechner
12805f61bd
Add [Unreleased] section for next cycle
2026-01-04 21:06:48 +01:00
Mario Zechner
71c978e2f9
Release v0.34.2
2026-01-04 21:06:08 +01:00
Mario Zechner
2a47b1114d
Add [Unreleased] section for next cycle
2026-01-04 20:57:34 +01:00
Mario Zechner
de92eeda1f
Release v0.34.1
2026-01-04 20:56:51 +01:00
Mario Zechner
2a332f7064
docs: add changelog entries for symbol key support ( #450 )
2026-01-04 20:38:27 +01:00
Kao Félix
b836a9d2ee
feat(tui): add symbol key support to keybinding system ( #450 )
...
- Added SymbolKey type with 32 symbol keys
- Added symbol key constants to Key helper (Key.backtick, Key.comma, Key.period, etc.)
- Updated matchesKey() and parseKey() to handle symbol key input
- Added documentation in coding-agent README with examples
2026-01-04 20:37:08 +01:00
Mario Zechner
61cadc226c
Add [Unreleased] section for next cycle
2026-01-04 20:30:34 +01:00
Mario Zechner
dc2f5d43cc
Release v0.34.0
2026-01-04 20:29:50 +01:00
Helmut Januschka
e3c2616713
fix(tui): add legacy terminal support for shift+letter shortcuts
...
In legacy terminals, Shift+P produces uppercase 'P' instead of
Kitty protocol sequences. Add fallback to check uppercase letters
for shift+letter combinations.
2026-01-04 18:13:29 +01:00
Aliou Diallo
0d477d39f9
fix(tui): expand paste markers when opening external editor ( #444 )
...
* fix(tui): expand paste markers when opening external editor
Add getExpandedText() method to Editor that substitutes paste markers
with actual content. Use it in Ctrl-G external editor flow so users
see full pasted content instead of [paste #N ...] placeholders.
* docs: add changelog entries for #444
2026-01-04 18:11:42 +01:00
Mario Zechner
7e2a99b485
Add [Unreleased] section for next cycle
2026-01-04 01:08:11 +01:00
Mario Zechner
faa10b9a7e
Release v0.33.0
2026-01-04 01:07:24 +01:00
Mario Zechner
5c5084481b
feat(coding-agent): clipboard image paste support via Ctrl+V ( fixes #419 )
2026-01-04 01:05:22 +01:00
Mario Zechner
6af7c97154
Update tui README.md: replace isXxx() with matchesKey() and Key helper
2026-01-03 23:11:11 +01:00
Mario Zechner
f2b89d5ec5
Merge branch 'feat/ctrl-n-external-editor' - configurable keybindings ( #405 )
2026-01-03 22:51:12 +01:00
Mario Zechner
b8814372af
Add changelog and README docs for keybindings feature ( #405 )
2026-01-03 22:49:58 +01:00
Mario Zechner
7aba5883f2
Add [Unreleased] section for next cycle
2026-01-03 17:09:58 +01:00
Mario Zechner
db829e73f9
Release v0.32.3
2026-01-03 17:09:22 +01:00
Mario Zechner
aea2ced2b8
Add [Unreleased] section for next cycle
2026-01-03 16:08:48 +01:00
Mario Zechner
113713d380
Release v0.32.2
2026-01-03 16:08:14 +01:00
Helmut Januschka
38b7f21e01
feat: add type-safe KeyId for matchesKey function
...
- Add KeyId union type covering all valid key combinations
- Add Key helper object for autocomplete (Key.ctrl('c'), Key.escape, etc.)
- Update matchesKey signature to use KeyId instead of string
- Catches typos like 'esacpe' at compile time
2026-01-03 16:03:35 +01:00
Mario Zechner
69a8ecd5b3
fix: slash command autocomplete triggers for . - _ prefixes
...
fixes #422
2026-01-03 15:44:36 +01:00
Helmut Januschka
2bd7b79a9b
fix: selectCancel should include both escape and ctrl+c
2026-01-03 08:23:56 +01:00
Helmut Januschka
7574fed2f2
feat: use keybindings in all selectors and lists
...
Update all selector/list components to use EditorKeybindingsManager:
- model-selector, session-selector, oauth-selector, user-message-selector
- hook-selector, hook-input, hook-editor, tree-selector
- select-list, settings-list, cancellable-loader
This allows users to configure selectUp, selectDown, selectConfirm,
selectCancel actions in keybindings.json
2026-01-03 08:23:56 +01:00
Helmut Januschka
8f2682578b
feat: configurable keybindings for all editor and app actions
...
All keybindings configurable via ~/.pi/agent/keybindings.json
Editor actions:
- cursorUp, cursorDown, cursorLeft, cursorRight
- cursorWordLeft, cursorWordRight, cursorLineStart, cursorLineEnd
- deleteCharBackward, deleteCharForward, deleteWordBackward
- deleteToLineStart, deleteToLineEnd
- newLine, submit, tab
- selectUp, selectDown, selectConfirm, selectCancel
App actions:
- interrupt, clear, exit, suspend
- cycleThinkingLevel, cycleModelForward, cycleModelBackward
- selectModel, expandTools, toggleThinking, externalEditor
Also adds support for numpad Enter key (Kitty protocol codepoint 57414
and SS3 M sequence)
Example emacs-style keybindings.json:
{
"cursorUp": ["up", "ctrl+p"],
"cursorDown": ["down", "ctrl+n"],
"cursorLeft": ["left", "ctrl+b"],
"cursorRight": ["right", "ctrl+f"],
"deleteCharForward": ["delete", "ctrl+d"],
"cycleModelForward": "ctrl+o"
}
2026-01-03 08:23:56 +01:00