v0.2.2
stablePublished May 26, 2026
NEW5PERF4BREAKING1FIX1
Changelog
0.2.2
Features
- Enhanced terminal TUI with VTE-compatible color profiles: Replaced hardcoded ANSI escape sequences with dynamic terminal capability detection via terminfo, enabling true-color support and adaptive palette switching for VTE-based emulators (GNOME Terminal, Kitty, Alacritty).
- Isolated git worktree per session context: Each Grok Build session now creates a dedicated git worktree linked to the parent repository, preventing cross-session branch contamination and enabling safe parallel agent operations without stashing or merge conflicts.
- Subagent coordination via IPC message bus: Introduced a lightweight POSIX message queue (mqueue) for inter-subagent communication, allowing task delegation, result aggregation, and cancellation signals without shared memory or file-based locks.
- Local database persistence with SQLite WAL mode: Switched from ephemeral in-memory state to a persistent SQLite database using Write-Ahead Logging (WAL) for crash-safe storage of conversation history, agent checkpoints, and configuration overrides across restarts.
- Customizable keyboard shortcuts with termios raw mode: Implemented a keybinding engine that intercepts raw terminal input via termios, supporting user-defined chord sequences (e.g., Ctrl+Shift+P for command palette) and conflict resolution with existing shell shortcuts.
- PTY multiplexing for concurrent subprocess I/O: Replaced single PTY allocation with a multiplexed PTY pool (up to 8 concurrent pseudo-terminals), enabling simultaneous execution of build commands, linting, and agent subprocesses with proper SIGWINCH forwarding and output buffering.
Bug Fixes
- Memory leak in PTY read buffer: Fixed unbounded growth of the PTY output buffer when subprocesses produced high-frequency output without consumer reads; now uses a ring buffer with configurable high-water mark and automatic backpressure.
- Race condition in git worktree cleanup on session abort: Resolved a race where abrupt session termination (SIGKILL) left orphaned worktree references in .git/worktrees, causing subsequent git worktree prune failures; added signal handler to atomically remove worktree metadata before exit.
- Incorrect terminal dimensions after window resize: Corrected a bug where TIOCGWINSZ ioctl returned stale dimensions during rapid resize events, leading to misaligned TUI panels; now debounces resize signals with a 50ms throttle and re-queries the terminal.
- Subagent deadlock on IPC queue exhaustion: Fixed a deadlock when the message queue reached its system limit (/proc/sys/fs/mqueue/msg_max); implemented non-blocking send with exponential backoff and fallback to shared memory for high-priority control messages.
- SQLite journal file corruption on power loss: Addressed potential database corruption by enabling full synchronous mode (PRAGMA synchronous=FULL) and using PRAGMA journal_mode=WAL with automatic checkpointing every 1000 transactions.