Releases: Sma1lboy/rove
Release list
v0.8.118
Patch Changes
- 96279b9: Scratch temp shell tasks (issue #33 step 2): a PROPOSED
ctrl+a topens a bare shell as a scratch directory task, shown in a new Scratch section at the very top of the sidebar. Zero-ceremony lifecycle — the shell exiting removes the row. A scratch row earns a home by being renamed, or automatically: when a coding harness is confirmed live in the shell and its cwd settles inside a git repo, the row migrates into that repo's project group (selection follows, no dialogs, no focus steal). Unfamiliar repos get a non-modal save-as-project hint.
v0.8.117
Patch Changes
- cf5f671: Rove skill v25: composing
--commandnow treats the model as a conscious either/or — omit any model flag by default (the user's engine default is fresher than the agent's training-data model list), pin one only when the user named it this turn, passing their string verbatim. Also repairs a truncated sentence in the parallel-round rules.
v0.8.116
Patch Changes
- e413a37: Remove the sidebar ⚡ engine badge introduced with the live shell-tab identity: the row label already tracks the live OSC title, so the badge was a second parallel channel for the same information — and it lit redundantly on engine tabs running their own vendor. The data layer stays:
liveVendorstill feeds get-task/tab-snapshot from the live foreground walk, and a shell tab with a confirmed engine still renders through the same row path as an engine tab.
v0.8.115
Patch Changes
- 975d35f: Shell tabs now carry a live engine identity (issue #33 step 1): the sidebar probes every hosted session's process tree — not just tabs mounted in this TUI — so a hand-typed
claude/codexin any shell tab lights an engine badge on its row, and dims when the engine exits (debounced against mid-restart flicker).rove api get-task's per-tabliveVendornow reflects a fresh foreground walk for live tabs instead of the last TUI-recorded value.
v0.8.114
Patch Changes
-
42ecc09: Kimi sessions started from the TUI and the web dashboard now receive their first message (issue #25 follow-up).
rove api send/add --promptalready pasted kimi's first message post-spawn (kimi's positional argv slot is a subcommand, so an argv prompt exits the engineUnknown command), but the TUI's own spawn path still pinned argv — a quick-fork, issue-chat, or cross-engine-handoff prompt on a kimi tab still killed the session — and the web engine-spec path silently dropped a repo's init-prompt. The tab spawn now surfaces the message asfirstMessageinstead of appending it to the launch line, the hosted PTY bracketed-pastes it once the engine process is up (fresh spawns only — a reattach never redelivers), and the web PTY sidecar does the same for spec-carried messages.
v0.8.113
Patch Changes
-
4de2d31: Verify session identity before recording a dispatcher (issue #24)
$ROVE_TASK_ID/$ROVE_TAB_IDare ordinary environment variables, so any
detached descendant of an engine tab — a Claude Code background process, for
instance — keeps exporting that tab's ids indefinitely. Every task such a
process created recorded a dispatcher pointing at a stranger's session, which
is where finished workers sent their reports.add,send, and the new-task coda now cross-check the env against the pty
host before believing it: the named tab must be alive AND its shell must be an
ancestor of the calling process. Unverified means no dispatcher, no
[KOBE PEER]provenance, and no spawner address in the worker's own
instructions — with anidentityWarningon the verb's JSON result so the
degrade is visible rather than silent.
v0.8.112
Patch Changes
-
680dbb8: Record per-turn agent telemetry. Every completed engine turn now leaves an attributed record — task, tab, engine, model, start/end time, and token usage — read back with
rove api agent-turns(filter by task or repo; the response carries a totals roll-up alongside the page).The turn data is engine-owned: each adapter lifts it from its own transcript, so nothing outside the engine layer parses a vendor's files. Claude Code ships the first reader; other engines contribute nothing until theirs lands.
v0.8.111
Patch Changes
-
998ca4e:
rove apipicks engines by COMMAND, not by a vendor enum.addandsend --tab newnow take--command— an engine id from the new
engine-listverb, or a full command line Rove runs verbatim
(--command "codex --search"). The protocol Rove speaks to it (transcript
reader, workspace-trust pre-answer, first-message delivery) is derived from
the command'sargv[0]rather than declared beside it, falling back to a
generic protocol that still launches and delivers. Nothing validates an
engine's flags: probe an unfamiliar CLI with<cmd> --helpfirst.engine-list(new, offline): every engine Rove can launch with the
RAW command it runs, its display name, and its resolved protocol. Copy an
entry into--commandverbatim, or edit a flag first.fan-outis removed — parallel attempts live onadd --count N(and
--agents claude:2,codex:1), samegroupId/#i/N/ partial-failure
contract as before.set-vendoris removed, replaced byset-command.- Both removed verbs return
UNKNOWN_VERBwith the replacement in
nextCommandArgs— no silent aliases. - Custom engines are now named PRESETS: Settings → Engines → + Add engine
also asks for the protocol (engineProtocol.<id>), so a wrapper around a
built-in keeps history, trust, and delivery instead of degrading to generic.
Bundled agent skill bumped to v24 for the new vocabulary.
v0.8.110
Patch Changes
- 93e6347: Fix shell env inconsistency (#26):
pane-open --command, plugin panes, and the automation precheck now spawn through the sameresolveLoginShell()+-ilcintegration path engine tabs already use, instead of a baresh -lc/ non-interactive-lcthat skips.zshrc/.bashrc. Panes and prechecks see the same PATH/exports as the engine they accompany. - a278546: Fix the
perf:goldenpark-heap-reclaimprobe's machine-load flake (bimodal 2% vs 52%). The sweep's quiet gate (PARK_QUIET_MS) refused to park the just-filled tabs, so nothing ever parked and the old %-of-total-heap formula was really measuring GC laziness — ambient, load-dependent. The probe now fast-forwards the sweep clock so parking actually happens, counts typed-array backing stores (extraMemorySize, where xterm cells live) in the heap reading, and reports a self-normalizing ratio — heap freed as a share of the growth the 10 tabs themselves caused — from the median of three settled GC samples. - 2f6d7d3: Fix a pty-host blip resurrecting an already-corrected idle tab as a phantom
runningdot. Once observation disproves a stale hookrunning(ESC interrupt, dead engine), the hook slot is now retired instead of left to win the next ungated arbitration — and its lapse watchdog no longer keeps re-arming that claim for the length of a host outage.