Mario Zechner
c95b132fcc
Add [Unreleased] section for next cycle
2026-01-10 13:56:55 +01:00
Mario Zechner
345de59833
Release v0.42.4
2026-01-10 13:56:11 +01:00
Mario Zechner
3743ebc03d
Add [Unreleased] section for next cycle
2026-01-10 13:28:10 +01:00
Mario Zechner
2a04b0fb28
Release v0.42.3
2026-01-10 13:27:28 +01:00
Mario Zechner
11dd2f476b
Add [Unreleased] section for next cycle
2026-01-10 01:43:32 +01:00
Mario Zechner
0c02f5c053
Release v0.42.2
2026-01-10 01:42:46 +01:00
Mario Zechner
60f5a03576
Add [Unreleased] section for next cycle
2026-01-09 20:24:50 +01:00
Mario Zechner
d856bb097c
Release v0.42.1
2026-01-09 20:24:10 +01:00
Mario Zechner
5eb53cdb9e
Add [Unreleased] section for next cycle
2026-01-09 07:00:09 +01:00
Mario Zechner
0752995424
Release v0.42.0
2026-01-09 06:59:26 +01:00
Mario Zechner
98b25baf4d
Add [Unreleased] section for next cycle
2026-01-09 06:07:35 +01:00
Mario Zechner
ec9def84ef
Release v0.41.0
2026-01-09 06:06:54 +01:00
Mario Zechner
439385afbc
Add [Unreleased] section for next cycle
2026-01-09 05:12:52 +01:00
Mario Zechner
ebd661fe13
Release v0.40.1
2026-01-09 05:11:49 +01:00
Mario Zechner
0cf4e1dbf9
Add [Unreleased] section for next cycle
2026-01-09 00:44:14 +01:00
Mario Zechner
070ef9c771
Release v0.40.0
2026-01-09 00:43:32 +01:00
Mario Zechner
36fbce85c2
Add [Unreleased] section for next cycle
2026-01-09 00:34:20 +01:00
Mario Zechner
39bfbb125c
Release v0.39.1
2026-01-09 00:33:39 +01:00
Mario Zechner
307f9b4169
Add [Unreleased] section for next cycle
2026-01-09 00:10:41 +01:00
Mario Zechner
c25f1eab64
Release v0.39.0
2026-01-09 00:10:00 +01:00
Mario Zechner
ec1ee7ddc6
docs: add overlay documentation, mark as experimental
2026-01-08 22:44:12 +01:00
Mario Zechner
f9064c2f69
feat(tui): add overlay compositing for ctx.ui.custom() ( #558 )
...
Adds overlay rendering capability to the TUI, enabling floating modal
components that render on top of existing content without clearing the screen.
- Add showOverlay(), hideOverlay(), hasOverlay() methods to TUI
- Implement ANSI-aware line compositing via extractSegments()
- Support overlay stack (multiple overlays, later on top)
- Add { overlay: true } option to ctx.ui.custom()
- Add overlay-test.ts example extension
Also fixes pre-existing bug where bash tool output cached visual lines
at fixed terminal width, causing crashes on terminal resize.
Co-authored-by: Nico Bailon <nico.bailon@gmail.com>
2026-01-08 22:40:42 +01:00
Mario Zechner
cfa63c255d
Add [Unreleased] section for next cycle
2026-01-08 04:53:51 +01:00
Mario Zechner
4b084d0f9d
Release v0.38.0
2026-01-08 04:52:55 +01:00
Mario Zechner
f3b7b0b179
fix(tui): handle batched input over SSH with StdinBuffer
...
Adds StdinBuffer class (adapted from OpenTUI, MIT license) to split
batched stdin into individual sequences before they reach components.
This fixes key presses being dropped when batched with release events,
which commonly occurs over SSH due to network buffering.
- Each handleInput() call now receives a single event
- matchesKey() and isKeyRelease() work correctly without batching awareness
- Properly buffers incomplete escape sequences across chunks
- Handles bracketed paste mode
Addresses #538
2026-01-07 17:50:06 +01:00
Mario Zechner
09471ebc7d
feat(coding-agent): add ctx.ui.setEditorComponent() extension API
...
- Add setEditorComponent() to ctx.ui for custom editor components
- Add CustomEditor base class for extensions (handles app keybindings)
- Add keybindings parameter to ctx.ui.custom() factory (breaking change)
- Add modal-editor.ts example (vim-like modes)
- Add rainbow-editor.ts example (animated text highlighting)
- Update docs: extensions.md, tui.md Pattern 7
- Clean up terminal on TUI render errors
2026-01-07 16:11:49 +01:00
Mario Zechner
fcb3b4aa72
Add [Unreleased] section for next cycle
2026-01-07 01:33:34 +01:00
Mario Zechner
5514d4ffdb
Release v0.37.8
2026-01-07 01:32:53 +01:00
Mario Zechner
41fe329cdd
fix(tui): filter key release events by default
...
Components must set wantsKeyRelease=true to receive release events.
Fixes double-processing of keys in editors when Kitty protocol flag 2 is enabled.
2026-01-07 01:31:24 +01:00
Mario Zechner
7508a51599
Add [Unreleased] section for next cycle
2026-01-07 01:02:34 +01:00
Mario Zechner
a4f2bb5c27
Release v0.37.7
2026-01-07 01:01:55 +01:00
Mario Zechner
62919fc1d4
docs(tui): add changelog entry for matchesKey fix
2026-01-07 00:57:28 +01:00
Mario Zechner
7a44cf0db0
fix(tui): matchesKey now matches Kitty sequences for unmodified letter keys
...
Needed for key release events which come as CSI sequences even for plain letters.
2026-01-07 00:57:10 +01:00
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