-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
12 dependencies are outdated. The most significant update is @opentui/core and @opentui/react jumping 18 patch releases (0.1.61 → 0.1.79), which includes critical bug fixes (memory leaks, streaming jitter, scroll behavior), performance improvements, and new features.
Dependency Update Table
Runtime Dependencies
| Package | Current | Target | Bump |
|---|---|---|---|
@opentui/core |
0.1.61 | 0.1.79 | patch (×18) |
@opentui/react |
0.1.61 | 0.1.79 | patch (×18) |
react |
19.1.1 | 19.2.4 | minor |
zod |
4.2.1 | 4.3.6 | minor |
clipboardy |
5.0.2 | 5.3.0 | minor |
commander |
14.0.2 | 14.0.3 | patch |
diff |
8.0.2 | 8.0.3 | patch |
Dev Dependencies
| Package | Current | Target | Bump |
|---|---|---|---|
@babel/core |
7.28.5 | 7.29.0 | minor |
@biomejs/biome |
2.3.11 | 2.3.15 | patch (pinned) |
@types/bun |
1.2.20 | 1.3.9 | minor |
promptfoo |
0.120.8 | 0.120.24 | patch |
Peer Dependencies
| Package | Current | Target | Bump |
|---|---|---|---|
typescript |
5.9.2 | 5.9.3 | patch |
@OpenTui Changelog (0.1.62 → 0.1.79)
This is the critical update. The packages are pre-1.0 (alpha-stage) and have been shipping rapidly — 18 releases between Dec 16, 2025 and Feb 11, 2026.
Bug Fixes Relevant to Us
These fix issues in APIs and behaviors we actively use:
- Memory leaks in Zig unicode encoding and grapheme pool (v0.1.63, #431) — fixes resource leaks in the core rendering engine
- CodeRenderable streaming jitter with
drawUnstyledText=false(v0.1.67, #459) — directly affects our streaming markdown/code rendering - Stale diff lineInfo (v0.1.66, #457) — we display diffs in tool output
- Stale hit grid after scroll/translate (v0.1.70, #480) — affects click targets after scrolling
- Double escape handling (v0.1.78, #648) — we use Escape in multiple keyboard shortcut handlers
- INPUT event for all mutating edit actions (v0.1.79, #664) — we rely on
TextareaRenderableinput events - Fallback scroll events to focused renderable (v0.1.79, #663)
- Cursor stuck at virtual extmark (v0.1.76, #557)
- Keyboard selection anchor stability across scroll (v0.1.75, #542)
- Scrollbox sticky scroll reset (v0.1.75, #531) — we use scrollbox components with sticky scroll
- Multiline paste viewport/scroll margin (v0.1.75, #582)
- Unicode char widths (v0.1.62, #425)
- Kitty keyboard protocol flags (v0.1.63, #426)
- Kitty numpad key code mappings (v0.1.78, #632)
- Editor-view stale glyphs when text shrinks (v0.1.78, #634)
- Guard MarkdownRenderable.getStyle against undefined syntaxStyle (v0.1.76, #606)
- Transparent background alpha channel (v0.1.70, #478)
- Mouse event parsing (v0.1.79, #669)
- DEC private modes restored on focus-in for Windows Terminal mouse tracking (v0.1.78, #655)
- flushSync rename in react-reconciler 0.32.0 (v0.1.68, #454) — React compatibility fix
- UTF8 WrapBreak offsets widened to u32 for lines > 64KB (v0.1.68, #464)
Performance Improvements
- Word wrap perf via byte_offset tracking (v0.1.69, #473)
- Cache
measureForDimensionsresults (v0.1.69, #475) - Optimized UTF8 wrap breaks (v0.1.73, #507)
- ASCII wrapping fast path via strict printable-only invariant (v0.1.73, #506)
- Opaque fast-path in
setCellWithAlphaBlending(v0.1.73, #500) - Debounced hover recheck after hit-grid changes (v0.1.73, #502)
- Avoid stdout write overlaps when threaded (v0.1.73, #516)
New Features (Available After Update)
- MarkdownRenderable with automatic table alignment (v0.1.75, #433)
focusableoption on Box (v0.1.76, #585)- Auto-focus on click — browser-like behavior (v0.1.76, #584)
- OSC 52 clipboard support for SSH/remote sessions (v0.1.76, #546)
marginX/marginYandpaddingX/paddingYstyle shorthand attributes (v0.1.78, #619)- Dark/light theme detection via Mode 2031 (v0.1.78, #657)
- OSC 8 hyperlink metadata in markdown links (v0.1.76, #607)
autoFocusrenderer option (v0.1.77, #616)- Key event
stopPropagation(v0.1.70, #501) - Text truncation + CJK word wrap fix (v0.1.73, #529)
- Custom inline highlighting callback (v0.1.75, #568)
- Select all in textarea (v0.1.76, #558)
captureSpansandgetSpanLinesfor styled terminal output capture (v0.1.75, #574)- SIGPIPE, SIGBUS, SIGFPE added to default exit signals (v0.1.75, #547)
- OSC 66 compatibility for older terminals (v0.1.76, #605)
- Input migrated to extend Textarea (v0.1.75, #539) — see compatibility note below
Compatibility Concerns
InputRenderable type — Input→Textarea migration (v0.1.75)
In v0.1.75, the Input component was migrated to extend Textarea (#539). We import InputRenderable from @opentui/core in src/tui/components/session-picker.tsx and use it to type a ref for the rename input field. We call .focus() on this ref.
Action required: Verify InputRenderable type still exists and that .focus() still works. This is likely fine since Input now extends Textarea (additive change), but needs confirmation.
Our @OpenTui API surface
For reference, here are all the APIs we consume from these packages:
From @opentui/core:
createCliRenderer— app startup (1 file)RGBA— color values via.fromHex()and.fromInts()(4 files)SyntaxStyle— syntax highlighting via.fromStyles()(2 files)TextareaRenderable— textarea ref type (3 files)InputRenderable— input ref type (1 file)ScrollAcceleration— scroll config type (1 file)addDefaultParsers/getTreeSitterClient— tree-sitter setup (1 file)
From @opentui/react:
createRoot— React entry point (1 file)useKeyboard— keyboard event handling (8 files)useRenderer— renderer access (1 file)useTerminalDimensions— terminal size (2 files)
Validation Checklist
- Update all versions in
package.json -
bun install— clean install with updated lockfile -
bun check:types— no type errors -
bun lint— no new lint issues -
bun build— binary compiles successfully - Smoke test: textarea input and editing
- Smoke test: scrolling behavior (message list, code blocks)
- Smoke test: keyboard shortcuts (Escape, Ctrl+P, Tab, etc.)
- Smoke test: markdown/code rendering in streaming responses
- Smoke test: session picker rename input (
InputRenderablecompat) - Smoke test: diff display in tool output
Release Notes
Full release history: https://github.com/anomalyco/opentui/releases