Overview
Rinne v0.1.9 ships the Harness Stage: real coding-agent product UIs open in your system Terminal, with a multi-pane Stage board in the interactive TUI so you can watch and steer sessions while the loop verifies deliverables.
This release also hardens the code graph (same-name symbol ambiguity), makes conductor planning cheaper, and closes a pile of Stage lifecycle / config edge cases.
🚀 Key Features
1. Harness Stage — real product UI in Terminal
Workers can now run interactive harness sessions in a real terminal (default: Terminal.app on macOS) instead of only headless subprocesses.
- Supported harnesses: Claude Code, Codex, Cursor agent, Grok Build, OpenCode, Aider, Antigravity
- Sessions open in the system terminal with the harness's own full UI (fullscreen / TUI as appropriate)
- Concurrent visible sessions are capped so you don't spawn a wall of windows
- Harnesses are reaped when Rinne dies (clean exit, panic, or kill) so orphans don't linger
- Result-file orchestration: interactive sessions must produce a deliverable or they fail closed
2. Stage board in the interactive TUI
- Multi-pane Harness Stage session board (
/stage) - Live harness output highlighting and stable pane focus
- Tab no longer steals completion from the Stage board
- Session lifecycle events wired through the TUI event loop and learn-translate path
3. Stage config & approvals
New / wired knobs:
[harness_stage].approvals— map Rinne approval policy onto each harness CLI- Claude Code:
--permission-mode auto - Codex:
--ask-for-approval never - Grok:
--always-approve(already) - Aider: keeps interactive prompts
- Claude Code:
RINNE_EXTERNAL_TERMINAL— select the host terminal (Terminal.appby default; setitermto opt into iTerm)- Keychain opt-out:
NO_KEYCHAIN_RINNEis honored on both read and write paths
4. Cheaper, smarter planning
- Headless conductor planning on the cheapest ladder rung (escalate only on failure) — no more opening a Terminal and burning frontier tokens just to emit a plan JSON object
- Generic harness fallthrough when auth / plan fails
- Planner Stage visibility + auth fail-fast so bad credentials don't hang the Stage
5. Follow-up prompts against the previous run
- Plan follow-up prompts with context from the previous run, so multi-turn steering reuses what already landed
6. Code graph correctness
- Same-name symbol ambiguity fixed: retrieval no longer returns one arbitrary definition for names like
execute/new/build - Multi-result neighborhood + container/scope column so definitions are distinguishable
- Auto-rebuild index when schema / extractor version bumps
🐛 Fixes
- Stop attaching test evaluators to prose-only nodes (and inject an AI review evaluator for high-tier prose plans so routing validation doesn't fail)
- Steering can release a before-node checkpoint again
- No more "terminate running processes?" prompt on every Stage session close
- Interactive sessions that produce no deliverable fail instead of succeeding empty
- Drop o3 from the Codex default model ladder
- Signal harness leaves first so the launcher can clean up windows cleanly
- Config loading works inside Stage sessions (env suffixes / isolation)
- Linux/Windows build: define missing
which()PATH probe used by external-terminal selection (was macOS-only compile path; broke release matrix)
👥 Contributors
Thanks to everyone who shipped this release:
| Contributor | Role in v0.1.9 |
|---|---|
| @SiddharthManjul | Harness Stage core — external Terminal transport, interactive harness adapters (Claude Code, Codex, Cursor, Grok Build, OpenCode, Aider, Antigravity), Stage multi-pane board, session gate, MCP provision helpers |
| @symaticvisuals (Deepanshu Goel) | Stage v2 polish & release — headless cheap-rung planning, approvals wiring, Terminal.app defaults, harness reaping, graph same-name fix, follow-up prompts, release |
Commit authors (v0.1.8…v0.1.9): SiddharthManjul (42), symaticvisuals / Deepanshu Goel (26).
Note: GitHub’s auto-generated “What’s Changed” section attributes merged PRs to the PR author. Most Stage work landed as commits under those PRs from @SiddharthManjul.
📦 Install / upgrade
curl -fsSL https://raw.githubusercontent.com/GIKSN-RESEARCH/Rinne/main/install.sh | sh
# or pin:
RINNE_VERSION=v0.1.9 sh -c "$(curl -fsSL https://raw.githubusercontent.com/GIKSN-RESEARCH/Rinne/main/install.sh)"Binaries for macOS (arm64 + x86_64), Linux (x86_64), and Windows (x86_64) are attached below with .sha256 checksums.
Full Changelog: v0.1.8...v0.1.9
What's Changed
🚀 Features
- feat(harness-stage): v2 improvements for performance, approvals, and UX by @symaticvisuals in #26
🐛 Bug Fixes
- fix(graph): resolve same-name symbol ambiguity in code graph retrieval by @symaticvisuals in #25
Full Changelog: v0.1.8...v0.1.9
What's Changed
🚀 Features
- feat(harness-stage): v2 improvements for performance, approvals, and UX by @symaticvisuals in #26
🐛 Bug Fixes
- fix(graph): resolve same-name symbol ambiguity in code graph retrieval by @symaticvisuals in #25
- fix(conductor): validate node capabilities against the worker pool at plan time by @symaticvisuals in #27
Full Changelog: v0.1.8...v0.1.9