mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-16 17:01:02 +00:00
153 lines
6.6 KiB
Markdown
153 lines
6.6 KiB
Markdown
# Changelog
|
|
|
|
## [Unreleased]
|
|
|
|
## [0.40.0] - 2026-01-08
|
|
|
|
## [0.39.1] - 2026-01-08
|
|
|
|
## [0.39.0] - 2026-01-08
|
|
|
|
### Added
|
|
|
|
- **Experimental:** Overlay compositing for `ctx.ui.custom()` with `{ overlay: true }` option ([#558](https://github.com/badlogic/pi-mono/pull/558) by [@nicobailon](https://github.com/nicobailon))
|
|
|
|
## [0.38.0] - 2026-01-08
|
|
|
|
### Added
|
|
|
|
- `EditorComponent` interface for custom editor implementations
|
|
- `StdinBuffer` class to split batched stdin into individual sequences (adapted from [OpenTUI](https://github.com/anomalyco/opentui), MIT license)
|
|
|
|
### Fixed
|
|
|
|
- Key presses no longer dropped when batched with other events over SSH ([#538](https://github.com/badlogic/pi-mono/pull/538))
|
|
|
|
## [0.37.8] - 2026-01-07
|
|
|
|
### Added
|
|
|
|
- `Component.wantsKeyRelease` property to opt-in to key release events (default false)
|
|
|
|
### Fixed
|
|
|
|
- TUI now filters out key release events by default, preventing double-processing of keys in editors and other components
|
|
|
|
## [0.37.7] - 2026-01-07
|
|
|
|
### Fixed
|
|
|
|
- `matchesKey()` now correctly matches Kitty protocol sequences for unmodified letter keys (needed for key release events)
|
|
|
|
## [0.37.6] - 2026-01-06
|
|
|
|
### Added
|
|
|
|
- Kitty keyboard protocol flag 2 support for key release events. New exports: `isKeyRelease(data)`, `isKeyRepeat(data)`, `KeyEventType` type. Terminals supporting Kitty protocol (Kitty, Ghostty, WezTerm) now send proper key-up events.
|
|
|
|
## [0.37.5] - 2026-01-06
|
|
|
|
## [0.37.4] - 2026-01-06
|
|
|
|
## [0.37.3] - 2026-01-06
|
|
|
|
## [0.37.2] - 2026-01-05
|
|
|
|
## [0.37.1] - 2026-01-05
|
|
|
|
## [0.37.0] - 2026-01-05
|
|
|
|
### Fixed
|
|
|
|
- Crash when pasting text with trailing whitespace exceeding terminal width through Markdown rendering ([#457](https://github.com/badlogic/pi-mono/pull/457) by [@robinwander](https://github.com/robinwander))
|
|
|
|
## [0.36.0] - 2026-01-05
|
|
|
|
## [0.35.0] - 2026-01-05
|
|
|
|
## [0.34.2] - 2026-01-04
|
|
|
|
## [0.34.1] - 2026-01-04
|
|
|
|
### Added
|
|
|
|
- Symbol key support in keybinding system: `SymbolKey` type with 32 symbol keys, `Key` constants (e.g., `Key.backtick`, `Key.comma`), updated `matchesKey()` and `parseKey()` to handle symbol input ([#450](https://github.com/badlogic/pi-mono/pull/450) by [@kaofelix](https://github.com/kaofelix))
|
|
|
|
## [0.34.0] - 2026-01-04
|
|
|
|
### Added
|
|
|
|
- `Editor.getExpandedText()` method that returns text with paste markers expanded to their actual content ([#444](https://github.com/badlogic/pi-mono/pull/444) by [@aliou](https://github.com/aliou))
|
|
|
|
## [0.33.0] - 2026-01-04
|
|
|
|
### Breaking Changes
|
|
|
|
- **Key detection functions removed**: All `isXxx()` key detection functions (`isEnter()`, `isEscape()`, `isCtrlC()`, etc.) have been removed. Use `matchesKey(data, keyId)` instead (e.g., `matchesKey(data, "enter")`, `matchesKey(data, "ctrl+c")`). This affects hooks and custom tools that use `ctx.ui.custom()` with keyboard input handling. ([#405](https://github.com/badlogic/pi-mono/pull/405))
|
|
|
|
### Added
|
|
|
|
- `Editor.insertTextAtCursor(text)` method for programmatic text insertion ([#419](https://github.com/badlogic/pi-mono/issues/419))
|
|
- `EditorKeybindingsManager` for configurable editor keybindings. Components now use `matchesKey()` and keybindings manager instead of individual `isXxx()` functions. ([#405](https://github.com/badlogic/pi-mono/pull/405) by [@hjanuschka](https://github.com/hjanuschka))
|
|
|
|
### Changed
|
|
|
|
- Key detection refactored: consolidated `is*()` functions into generic `matchesKey(data, keyId)` function that accepts key identifiers like `"ctrl+c"`, `"shift+enter"`, `"alt+left"`, etc.
|
|
|
|
## [0.32.3] - 2026-01-03
|
|
|
|
## [0.32.2] - 2026-01-03
|
|
|
|
### Fixed
|
|
|
|
- Slash command autocomplete now triggers for commands starting with `.`, `-`, or `_` (e.g., `/.land`, `/-foo`) ([#422](https://github.com/badlogic/pi-mono/issues/422))
|
|
|
|
## [0.32.1] - 2026-01-03
|
|
|
|
## [0.32.0] - 2026-01-03
|
|
|
|
### Changed
|
|
|
|
- Editor component now uses word wrapping instead of character-level wrapping for better readability ([#382](https://github.com/badlogic/pi-mono/pull/382) by [@nickseelert](https://github.com/nickseelert))
|
|
|
|
### Fixed
|
|
|
|
- Shift+Space, Shift+Backspace, and Shift+Delete now work correctly in Kitty-protocol terminals (Kitty, WezTerm, etc.) instead of being silently ignored ([#411](https://github.com/badlogic/pi-mono/pull/411) by [@nathyong](https://github.com/nathyong))
|
|
|
|
## [0.31.1] - 2026-01-02
|
|
|
|
### Fixed
|
|
|
|
- `visibleWidth()` now strips OSC 8 hyperlink sequences, fixing text wrapping for clickable links ([#396](https://github.com/badlogic/pi-mono/pull/396) by [@Cursivez](https://github.com/Cursivez))
|
|
|
|
## [0.31.0] - 2026-01-02
|
|
|
|
### Added
|
|
|
|
- `isShiftCtrlO()` key detection function for Shift+Ctrl+O (Kitty protocol)
|
|
- `isShiftCtrlD()` key detection function for Shift+Ctrl+D (Kitty protocol)
|
|
- `TUI.onDebug` callback for global debug key handling (Shift+Ctrl+D)
|
|
- `wrapTextWithAnsi()` utility now exported (wraps text to width, preserving ANSI codes)
|
|
|
|
### Changed
|
|
|
|
- README.md completely rewritten with accurate component documentation, theme interfaces, and examples
|
|
- `visibleWidth()` reimplemented with grapheme-based width calculation, 10x faster on Bun and ~15% faster on Node ([#369](https://github.com/badlogic/pi-mono/pull/369) by [@nathyong](https://github.com/nathyong))
|
|
|
|
### Fixed
|
|
|
|
- Markdown component now renders HTML tags as plain text instead of silently dropping them ([#359](https://github.com/badlogic/pi-mono/issues/359))
|
|
- Crash in `visibleWidth()` and grapheme iteration when encountering undefined code points ([#372](https://github.com/badlogic/pi-mono/pull/372) by [@HACKE-RC](https://github.com/HACKE-RC))
|
|
- ZWJ emoji sequences (rainbow flag, family, etc.) now render with correct width instead of being split into multiple characters ([#369](https://github.com/badlogic/pi-mono/pull/369) by [@nathyong](https://github.com/nathyong))
|
|
|
|
## [0.29.0] - 2025-12-25
|
|
|
|
### Added
|
|
|
|
- **Auto-space before pasted file paths**: When pasting a file path (starting with `/`, `~`, or `.`) and the cursor is after a word character, a space is automatically prepended for better readability. Useful when dragging screenshots from macOS. ([#307](https://github.com/badlogic/pi-mono/pull/307) by [@mitsuhiko](https://github.com/mitsuhiko))
|
|
- **Word navigation for Input component**: Added Ctrl+Left/Right and Alt+Left/Right support for word-by-word cursor movement. ([#306](https://github.com/badlogic/pi-mono/pull/306) by [@kim0](https://github.com/kim0))
|
|
- **Full Unicode input**: Input component now accepts Unicode characters beyond ASCII. ([#306](https://github.com/badlogic/pi-mono/pull/306) by [@kim0](https://github.com/kim0))
|
|
|
|
### Fixed
|
|
|
|
- **Readline-style Ctrl+W**: Now skips trailing whitespace before deleting the preceding word, matching standard readline behavior. ([#306](https://github.com/badlogic/pi-mono/pull/306) by [@kim0](https://github.com/kim0))
|