Changelog
What's new in Kai
Release notes. Newest first.
Close the fixable KNOWN_LIMITATIONS items
- Close the fixable KNOWN_LIMITATIONS items: live PTY kill tests (
close_pty/close_allverified against the OS process table), symlink-dependent tests now report explicit skips with a reason, freshness detection also compares ctime and re-hashes racily-clean files so same-size edits with restored timestamps are caught, opt-inkai mcp --watch/KAI_MCP_WATCH=1background graph refresh for pure-MCP clients, and release/CI targets for Linux.rpm, Windows ARM64 (NSIS) and macOS Intel. - More terminal shortcuts:
Ctrl+Shift+Aselect all,Ctrl+Shift+Kclear,Ctrl+Shift+Home/Endscroll to top/bottom,Ctrl+=/Ctrl+-/Ctrl+0zoom the font (this session), andCtrl+1–9jump to a tab (Cmdon macOS). Copy/paste (Ctrl+Shift+C/V) is unchanged and plainCtrl+Cstill interrupts. The fixed shortcuts are listed read-only in Settings → Shortcuts. kai runcan now launch Windows.ps1scripts directly: they run viapowershell.exe -NoProfile -File(no shell, execution policy respected) instead of failing withspawn ENOENT.- Show a notice when a pane split is refused (8-pane cap or the minimum pane size) instead of silently doing nothing.
- Fix Changes review dialog sizing: remove the minimize button, resize from any edge/corner like a normal terminal window, and make fullscreen work after a manual resize (the manual size no longer sticks around to override fullscreen). The footer branch badge is now display-only — the git Changes menu is removed.
- Close the fixable KNOWN_LIMITATIONS items: live PTY kill tests (
New
kai mcpcommand family for the local MCP server and agent wiringkai mcp <agent|all>wires an agent (with--print,--dry-run,--force),kai mcp listshows server info and connection state,kai mcp remove <agent>unwires. Connected agents run the stdio MCP server automatically.kai list -m/kai list --mcpreports MCP server state and tool connections;kai remove -m <agent>/kai remove --mcp <agent>disconnects a tool.- CLI help regrouped (Outside / Run / Manage / Check) to match the rewritten command reference.
- Website: command reference grouped by topic (Open and close, Run tool, Setup & MCP, Project graph with init/update/status, Check), dedicated MCP page, floating Topics index with scroll-spy, and an inline GitHub link in the manual hero.
Code Mode Task Planning (
kai_plan_task)- Code Mode Task Planning (
kai_plan_task): Structured task planning engine (planCodeTask) with selected-file prioritization, dependency/caller/test expansion, freshness-gated context retrieval, and strict token budget enforcement. - Automated Graph Freshness & Lifecycle Sync: Guaranteed graph synchronization (
runCodeTaskWithAutoSync,kai_sync_graph) on task completion, failure, or cancellation, featuring boundary verification, drift fallback, and concurrent rebuild deduplication with PID locks and generation guards. - External Agent Runner (
kai run): Process execution wrapper for external coding agents (kai run -- <cmd>), preserving child exit codes, handling timeout (124) and cancellation (130), enforcing clean process tree termination (SIGTERM -> 2s -> SIGKILL,taskkill /PID /T /Fon Windows), and triggering automated post-run graph synchronization. - Crash Consistency & Dual-Copy Verification: Atomic persistence with sequential write drift detection (
checkPersistenceConsistency), synchronized status transitions acrossmeta.jsonandindex.json(markProjectGraphStatus), and automatic rebuild recovery. - MCP Freshness Contract & Auto-Refresh: Graph-dependent reads (
kai_search_code,kai_find_symbol,kai_get_dependencies,kai_get_context) automatically gate freshness and execute bounded auto-refreshes when stale. - GPU WebGL Terminal Renderer: Integrated hardware-accelerated WebGL terminal renderer (
@xterm/addon-webgl) for visible terminal panes, running at 60fps with automatic fallback to DOM rendering on context loss or failure, pluslocalStorage.kai_renderer="dom"opt-out. - High-Throughput PTY Buffering: Implemented FIFO
TerminalOutputBufferreplacing O(n²) string concatenations, providing ~1800× higher throughput during large output floods (~10 MB) without freezing the UI. Increased PTY chunk reads to 32 KB. - Auto-Strip AI Co-Authors: Entering Code Mode (
kai code .) installs a self-contained, POSIX-compliantcommit-msggit hook into the target repository to automatically stripCo-authored-by:trailers on all future commits while safely preserving pre-existing hooks.
- Code Mode Task Planning (
Windows Agent Detection & PATHEXT Resolution
- Windows Agent Detection & PATHEXT Resolution: Probes PATH using
PATHEXTto locate.cmd/.batbinaries, executing version probes cleanly throughcmd /cwithout flashing console windows; GUI-based agents safely skip version checks. - Status Bar & Code Mode Synchronization: Real-time git status refresh button in footer; immediate Code Mode status sync upon terminal command execution; compact path display with copy button; footer jump button when Code Mode is active in another directory.
- Desktop First-Launch CLI Integration: Desktop installers automatically configure and add the user-level
kailauncher to user PATH on first startup. - CSP & Update Fixes: Added
connect-src(https://api.github.com,ipc:,http://ipc.localhost) andimg-src data:to Content Security Policy intauri.conf.json; release links open in external OS browser. - Default Theme & Tab Color Polish: Resolved tab accent glow obscuring custom tab colors; synchronized Kali theme as default across frontend and backend; added
kai doctorto audit Linux.desktoplauncher entries.
- Windows Agent Detection & PATHEXT Resolution: Probes PATH using
Reorder footer status bar items to display active path first, followed by code mode, then git status and actions.
- Automatic agent registration:
kai agent setup <agent>now installs kai MCP wiring directly into the agent's own config file (JSON merge with.kai.bakbackup, idempotent re-runs,--dry-run/--force/--printflags) instead of only printing a snippet. Newkai agent setup allwires every system-installed agent at once,kai agent registeraliases setup, andkai agent listreports per-agent kai wiring state. The desktop AI providers panel shows wiring status with one-click Auto-wire backed by newsetup_agent_mcp_cmd/get_kai_cli_launch_cmdIPC commands. Aider and opencode use verified config shapes (mcpServersin~/.config/aider/mcp.json,mcplocal entry in~/.config/opencode/opencode.json). - Slim toolbar and footer: removed the toolbar New Session button (use TabBar + / Ctrl+Shift+T), the Recent dropdown, the top git badges, the top Code Mode pill, and the Clear button — git branch, project directory, and Code Mode (now an explicit exit toggle button) live only in the bottom status bar. AI providers panel: dropped per-provider Auto-wire buttons (kai wiring is auto-detected read-only), redesigned provider cards with proper spacing, added a Re-detect button. Detection fix: desktop probing now also covers well-known install locations (
~/.local/bin,~/.opencode/bin,~/.cargo/bin, nvm node bins,/usr/local/bin, …) so GUI launches with a minimal PATH still find user-installed CLIs, added theagyCLI to the catalog plus extra binary aliases (claude-code,cursor-agent,opencode2,github-copilot). - Refine split terminals: remove per-split pane headers, display active terminal directory as selectable text in footer status bar, sync Code Mode and Git status on pane click, and replace borders with a subtle 1px hairline separator.
- Automatic agent registration:
Expand AI coding agent ecosystem and harden MCP stream and retrieval staleness
- Expand AI coding agent ecosystem and harden MCP stream and retrieval staleness:
- Add verified agent setup generators for Gemini CLI, GitHub Copilot (VS Code), Windsurf, and Cline alongside Claude Code, Cursor, and Codex (
kai agent setup <agent>). - Expand Rust desktop AI CLI auto-detection catalog to 6 tools (
codex,claude,gemini,opencode,copilot,aider) with non-intrusive local auth checks. - Add stream-level
BoundedLineTransformto MCP stdio server to reject oversized requests (>10MB) before buffer accumulation. - Add real-time file staleness detection in context retrieval comparing live disk SHA-256 with index metadata.
- Track inode change timestamps (ctimeMs) alongside mtime and size in indexer.
- Support orphaned project index cleanup by 16-hex hash ID when meta.json is missing or corrupted.
- Enforce strict allowlist for
kai config getkeys, bound task classifier inputs to 4,000 characters, and validate LSP command names.
Native Rust Portable-PTY Core
- Native Rust Portable-PTY Core:
- Native pseudoterminal integration via
portable-ptycrate. - ConPTY subsystem support on Windows 10/11 with sub-millisecond ANSI throughput.
- POSIX pty streaming on macOS and Linux with isolated per-tab process trees.
- GPU Canvas Terminal Rendering:
- Tauri 2 desktop shell with GPU-accelerated
@xterm/xtermcanvas renderer running at 60fps. - ~30MB idle RAM footprint (10× lighter than Electron-based terminals).
- Split pane layouts (up to 4 panes per tab) with independent cwd and pty channels.