v0.6.0 — Claude Code parity: interaction, trust & ecosystem
v0.6.0 — Claude Code parity: interaction, trust & ecosystem
Interaction, trust, and ecosystem surface on top of the v0.5.0 render/permission base.
Added
- Visible, draggable scrollbar in the chat viewport (ratatui
Scrollbar; click/drag-to-jump) - Mouse hover system across all surfaces (stage headers, messages, status bar, tab bar, modals, help, fleet) + click flash + double-click word select
- Scroll-wheel routing on every page with auto-follow pause
- Kill ring + yank:
Ctrl+Yyanks the most recent kill,Alt+Ycycles (yank-pop);Ctrl+W/U/Kdelete into the ring - Input undo/redo:
Ctrl+Z/Ctrl+_undo,Ctrl+Yyank; every edit snapshot-able - Multi-line composer: input area grows to ~1/3 of the screen (
render_input_box_multilinenow live) - Protected paths & destructive-command enforcement (
.git,.ssh,/etc,rm -rf,sudo,curl,git pushalways prompt) - Shared skills portability: reads
~/.agents/skills/(override viaknowledge.skills_dir) - Kitty keyboard protocol (I4): enable/disable around the session + CSI-u decoding for Shift+Enter disambiguation
- Expanded slash-command set:
/status,/permissions,/plan,/version,/rename,/fork,/branch,/usage,/effort,/mcp,/skills,/copy,/export-md,/btw,/code-review,/security-review,/add-dir,/loop,/voice
Ecosystem (launch baseline)
- ACP server (
niki acp): JSON-RPC 2.0 over stdio —initialize,prompt/send,session/status,session/cancel, with livestage.start/stage.token/stage.done/stage.failed/task.completednotifications. Drives Zed, Claude Code, and any ACP client. - Voice input (
niki voice): records viaffmpegand transcribes through your provider’s STT endpoint (LlmProvider::transcribe, OpenAI-compatible). - MCP trust gate: servers must be explicitly allowed (fingerprinted, persisted to
.niki/mcp_trust.json) before connecting — behavior-preserving default. - Headless TUI harness (
tests/headless_tui.py, tuiwright): drives the real binary under a real PTY with mouse scroll/click/drag.
Changed
- Chat render virtualizes to the visible window and renders a live scrollbar
- Permission modal detail panel (Ctrl+D) + scope selector (Tab) wired to the live flow
Verification
cargo test --all-targets: 417 lib + 5 ACP integration, 0 failedcargo clippy --all-targets: warning-freecargo build --release: cleanpytest -c pytest_headless.ini: 11 passed, 2 documented skips (Shift+Enter and bulk-message scrollbar need a live terminal/LLM)
Binary artifacts (macOS/Windows/Linux tarballs + installers) are produced by the cargo dist release workflow in CI.