DocsReference
Changelog
Generated from conventional-commit subjects (feat, fix, perf, docs,
plus chore/refactor/test/style/ci/build/revert folded into
Chores) by scripts/generate-changelog.sh. Never hand-edit this file --
regenerate a section instead:
scripts/generate-changelog.sh --section --from <prev-tag> --to <new-tag>.github/workflows/cd.yaml runs that command for every release and commits
the new top section here. A commit subject that does not match
type(scope)!: summary (most of the history before this file existed) is
listed under "Other" rather than dropped or guessed at. A ! right after
the type/scope is the only breaking-change signal this script reads -- a
BREAKING CHANGE: footer in the commit body is not parsed. Full-rebuild
command: scripts/generate-changelog.sh --full.
v4.0.2 (2026-09-16)#
Fixes#
- launch a native successor from a wrap seat instead of parking (#632) (#662)
v4.0.1 (2026-09-16)#
Fixes#
- send the prompt once and recover an overflow with no settled boundary (#649, #647) (#661)
v4.0.0 (2026-09-16)#
Other#
- Release preparation: native harness coming soon (#469) (#493)
v3.48.0 (2026-09-15)#
Features#
- expose scoped read-only MCP tools for wrapped hosts
Fixes#
- patch Rustls advisory and synchronize nudge test readiness
v3.47.0 (2026-09-11)#
Features#
- health-aware routing slice 2 -- degraded phase, shared-endpoint aliases, single half-open trial, partial-stream handoff reconciliation (#455)
v3.46.1 (2026-09-10)#
Fixes#
- clear Approval mid-turn and price the seat + native subagents in session spend (#456, #457)
v3.46.0 (2026-09-10)#
Features#
- park the displaced harness and resume its own conversation on the return
Fixes#
- resume the harness's own conversation after a failed rollover (#462)
Chores#
- 3.46.0 (parked-harness return is a feature, not a patch)
v3.45.0 (2026-09-10)#
Fixes#
- tolerate missing Linux sandbox dependencies and report chat launch failures (#461)
v3.44.0 (2026-09-10)#
Other#
- 3.44.0: delegation receipts + persisted worker reports (#452, #454), health-aware routing slice 1 (#455), zirv works from $HOME (#459)
v3.43.0 (2026-09-10)#
Other#
- 3.43.0: migrate durable vault facts into .zirv/memory and remove the Obsidian vault (#451)
v3.42.0 (2026-09-10)#
Other#
- 3.42.0: bundled [[output.filter]] defaults and compact_search on by default (#449)
v3.41.0 (2026-09-09)#
Other#
- 3.41.0: operator [[output.filter]] compaction rules (#417) + claude/codex endpoint overrides (#395) (#448)
v3.40.0 (2026-09-09)#
Chores#
- push the Homebrew formula with a tap deploy key instead of a PAT (#446)
Other#
- 3.40.0: zirv ctx ask (#310) + native pre/post tool hook seams for copilot, droid and gemini (#418) (#447)
v3.39.0 (2026-09-09)#
Documentation#
- exhaustive grouped Features section derived from the command surface (#407) (#444)
Other#
- 3.39.0: README supported harnesses and models section; gpt-6-astra as an OpenAI ladder rung (#445)
v3.38.1 (2026-09-09)#
Chores#
- require a version bump only when shipped code changed (3.38.1) (#443)
v3.38.0 (2026-09-09)#
Other#
- 3.38.0: rollover terminal row + source resume (#440), dash kill ownership (#435), safety tokenizer + |& (#421), codex resume_target (#303), zirv ctx learn (#425) (#442)
v3.37.0 (2026-09-09)#
Other#
- 3.37.0: discover pass (#423), hook audit + status (#424), hook integrity (#420), compaction-ratio + test-presence + security-scan CI (#426 #428 #429), gh/glab template strip (#416), opt-in search compaction (#414), reuse probe fix (#435) (#441)
v3.36.0 (2026-09-08)#
Other#
- 3.36.0: rtk-derived compaction release -- never-worse guard, grouping, dedup, JSON, diff scope, test extractors, savings ledger, updatedInput seam (#437)
v3.35.0 (2026-09-08)#
Other#
- 3.35.0: overcomplication guard (#406), kill contract (#403), read-only advisory notice (#399), compacting attention (#379) (#436)
v3.34.1 (2026-09-08)#
Fixes#
- banner roster omits harnesses whose binary is confirmed absent
v3.34.0 (2026-09-08)#
Features#
- audit a worker's claimed deliverables against git and give a failed contract its own exit code
Fixes#
- review round 1 -- fail-closed envelope roots, audited recovery reports, configured crash-witness retention, untracked-directory deliverables
- read-only codex panes can deliver mail; settled panes that sent none get a transcript-derived report (#402)
- let a fable seat roll over, admit stale weekly readings, force a blocked reactive rollover after a grace (#401)
- keep crash witnesses through session listing, terminate headless children as a process group, permit liveness by pid and start time
- refuse operator and harness homes as workdirs, resolve symlinks in envelope containment, peel time/caffeinate/busybox
Chores#
- bump version to 3.34.0
v3.33.0 (2026-09-08)#
Fixes#
- envelope scope kinds must match, empty hook cwd falls back to the process directory
- command -v/-V are resolution queries, exec skips fd redirections
- collision-resistant repository slug with one-shot state migration
- peel xargs/command/builtin/exec, ask on project secret files, enforce the delegation envelope consistently
- atomic config writes, confined restore destinations, typed objective steps, README completeness checks
- prune archives ignored content; verify reads git paths NUL-delimited
- mask secrets in every runner-generated line
Chores#
- tolerate a one-second clock tick in the codex rollout readout
- bump version to 3.33.0
- modern actions, release provenance attestation, advisory job, anyhow 1.0.104
v3.32.0 (2026-09-08)#
Features#
- Qwen Code adapter (#389)
- Factory Droid adapter (#388)
- GitHub Copilot CLI adapter (#387)
- OpenCode adapter (#385)
- Gemini CLI adapter (#384)
- Pi coding-agent adapter (#386)
Fixes#
- review fixes for the wave 1-2 adapters
Documentation#
- vault pages for the wave 1-2 harness adapters
Chores#
- bump version to 3.32.0
v3.31.0 (2026-09-07)#
Features#
- resolve the billed provider per launch from the pinned model (#383)
- model catalogue module (#381)
- shadow transcript source for snapshot and SQLite harnesses (#382)
Fixes#
- derive the shadow cursor from the shadow itself, not a sidecar file
- drop the invented codex window, add per-vendor as_of
- sqlite shadow sync reads WAL live instead of via immutable=1
Documentation#
- wave-1 foundation pages; catalogue dead-code note names its real callers
Chores#
- bump version to 3.31.0
v3.30.0 (2026-09-07)#
Fixes#
- a zero drain share takes nothing; loop the reap-hold test on the hold, not the text
- fair drain shares, hold the reap for queued output, throttle the inline facts
- an agent step skipped for this platform never lowers the process priority
- apply the worker posture at dispatch, never inside a supervisor
- swap facts snapshots every tick and move the pool read off it
- stub the version-resource embedder on non-Windows hosts
- embed VERSIONINFO, publish checksums, verify zirv update
- give the operator's seat scheduling priority over its own workers
- keep the tick off the disk so typing stays responsive
Documentation#
- state the host-gated cross-compile behaviour of the version resource honestly
- record the 3.30.0 dashboard tick, scheduling posture and release hardening
v3.29.1 (2026-09-07)#
Documentation#
- add community standards files (license, code of conduct, contributing, security policy, issue and PR templates); bump to 3.29.1
v3.29.0 (2026-09-07)#
Features#
- add
zirv update [--version x.y.z]self-update from GitHub releases; bump to 3.29.0
v3.28.0 (2026-09-07)#
Features#
- prompt-gated
zirv ctx config show|set|addfor ~/.zirv/ctx.toml; remedies name the command (#373)
Fixes#
- sent_since matches a worker's full-uuid sender by short id and ignores zirv system notices (#369 review)
- early pane death mails exit tail and ledgers failed; reminder honours a worker's own report mail; exit evidence carries the output tail; reap releases the writer permit (#368, #369)
- warn that codex read-only seats cannot build; test/verify auto-spawns are writing seats (#371)
Documentation#
- mirror the ctx config verb in the skill template, its fixtures and the enforced verb list (#373)
Chores#
- point repository references at the renamed Glubiz/zirv-cli
- bump to 3.28.0
v3.27.1 (2026-09-07)#
Fixes#
- publish releases draft-first so assets land before immutability; skip an already published version; bump to 3.27.1
v3.27.0 (2026-09-07)#
Fixes#
- read-only codex workers carry exactly one --sandbox flag; surface a pane that exits right after launch
- keep the mail sender tracked until confirmation or child exit; persist the settled-report latch (#363)
- confirm pane mail submission, hook mail marker, read-only status, settled-pane report-back (#363)
- stop rendering the interactive pacing prompt as a pane header error; truthful codex usage hint
- name a linked worktree's own gitdir as a codex writable root, warn on Windows (#364)
- track serial libtest verdicts across interleaved output, compact repeated git warnings (#361)
Chores#
- bump version to 3.27.0
Other#
- Create FUNDING.yml
v3.26.0 (2026-09-06)#
Features#
- compact tool output with reversible retrieval and PostToolUse rewrite
Fixes#
- round-2 review -- nested pipe wrappers, git global flags, summary splice, --bytes end
- failure-first summaries, reader-safe compaction scope, byte-exact reads
- expand and narrow-rule the compact-run wrapper, never replace it
- restore full-bank key precedence for memory retrieval; clamp the workflow-context marker
- protect verification and bound protected-list counts in the handoff carry-over
- resolve the read-only pane floor against the real CLI surface, not req.interactive
- orchestrator-side token trims plus three audited memory/inbox/search caps
- bound every unbounded capped-layer surface in track B
- zirv ctx run --compact is a transparent launcher
- interactive read-only panes must not carry exec-only ignore flags
- never retry a dead endpoint probe (3.25.0 startup freeze)
Documentation#
- sync status-default wording and the handoff/contract review-round fixes
- 3.26.0 token efficiency release -- active work, journal, decisions, known issues
- zirv ctx status is brief+diff by default, --full for the whole report
- list the new output and run ctx verbs (ZCHK-DOC-VERBS)
Chores#
- bump version to 3.26.0
v3.25.0 (2026-09-06)#
Fixes#
- floor a pane handover's rollout pin before the successor spawns
- never redirect an operator's explicit --transcript
- builtin checks key applicability on the repo, not on a file
- a dry run does not check a step this OS never runs
- a dry run resolves what an earlier step captures
- a handover drops the previous child's codex rollout pin
- price a pane off its own cwd, not the dashboard's repo
- re-resolve a transcript that does not exist while the child runs
- taskset and chrt no longer swallow the command they launch
- joined destination flags no longer bypass the operator ~/.zirv deny
- pace.collector_max_age_secs is repo-forbidden, not narrow-only
- release the provider reservation on the two pre-launch refusals
- pin that every ZIRV_CTX_PACE* name the crate uses exists in ENV_MAP
- a stale-but-available usage reading ranks on its real headroom
- a repo layer may not choose the pacing gate's own fallback reading
- gate the rot restart on the restart chain
- deliver the interactive handoff off argv
- bound the distiller's stdout capture
- write the nudge and stall markers atomically
- sweep a dead session's published socket path
- never clobber a restart-chain record this build cannot parse
- write a permit slot's child pid atomically
- bound the orchestrator-block read on the hook hot path
- retain 30 days of safety-decision buckets and read them once
- lock the attention ledger's read-modify-write
- word a cadence finding from the sign of its z-score
- size stripped thinking blocks from the reported thinking tokens
- read subagent spend from the subagents directory
- dedupe the usage-window folds by API response too
- count claude transcript usage once per API response
- teach both deletion classifiers PowerShell's ri alias
- docker and aws teardown verbs ask like their prune siblings
- see through ordinary launcher prefixes to the program they run
- deny direct writes and deletes under the operator's ~/.zirv
- find cmd.exe's inline-command switch after its leading switches
- unwrap every PowerShell -Command abbreviation, not just the full spelling
- add
zirv init --yesand refuse a non-TTY init before writing - reject an unknown key under a step's options
- --dry-run rejects an unresolved placeholder too
- clamp a repo-only harness reserve to the global floor
- refuse a drive-relative shortcut target
- a concurrent block substitutes like a single command
- refuse a tag containing a comma
- screen the committed shared bank as hard as machine-local mail
- journal and restore every body an overwrite removed
- refuse a key with an embedded newline on every tier
- forget reports the keys a stray file still claims
- split the codex state-dir seam by cfg so no return is needed
- a pane delegation writes its own ledger row
- resolve the rollout codex actually minted, and pin it
- the dashboard footer's session spend counts only this session
- price gpt-6-astra at the sol tier
- a builtin self-check that does not apply here is not a failure
- stage a restore's copy before removing the destination
- never prune the backup run a restore is reading
- an armed dash prefix followed by a modified key is not a chord
- Ctrl+Alt+<x> keeps its control bit through the dash Alt fast-path
- the durable objective spend is monotone, never overwritten by a restart
- a zero token ceiling refuses admission instead of running unbounded
Documentation#
- audit round 2 -- active work, journal rotation, decision log, known issues residuals, state layout
- interactive handoff delivery off argv, and wrap's restart chain
- usage dedup by API response, the subagents directory, thinking fallback
- record the 2026-09-06 safety audit fixes A1..A6
- audit round A-2 -- runner, shortcuts, init and harness reserve
- forget outcome, shared-bank screen parity, journal before_bodies
- pane delegations write their own ledger row, codex rollout pinning, footer spend filter
- not-applicable builtin outcome and setup restore safety
- zero ceilings refuse admission, objective spend is monotone, chords are unmodified
Chores#
- rustfmt the split credential fixtures
- drop the repo argument at the unix-only budget-enforcement call sites
- cargo fmt over the review-round fixes
- give the socket-path sweep test a process-unique endpoint name
- bump version to 3.25.0
v3.24.0 (2026-09-06)#
Features#
- remove headless as a spawn topology -- pane, or inline, never invisible
- spawn requests carry supervision ceilings; file drops cannot widen
Fixes#
- review round 1 -- pane deadline safety, snapshot scan floor, requester identity, pane-fulfilled reviewer seat
- T4 supervisors -- transcript growth is progress, the stall nudge is delivered, live capacity text survives, handover acks are not stale, the crash witness outlives a failed resume, loop mail is edge-triggered
- unix-only budget test follows the throttled enforce_pane_token_budgets signature
- #354 review -- throttle budget sweeps, scope error acks, stabilise the cursor, and stop clean exits pinning the warning
- automatic rollover and work balancing actually distribute work
- T7 review round -- terminal-status resurrection, baseline-blind gates, frontend scope, cache-hit denominator, review recurrence, degraded deploy tier, cmd-shim argv, doc/version-bump scoping
- memory/task/search/status/context untrusted-content and race fixes
- rot token gate reads real context, not cumulative spend
- fix substitution ordering, fallback context, cd parsing, and 6 more script-runner findings
- close five escape-classifier gaps and deny model-driven permissions compile writes
Performance#
- #354 A1-4 -- the delegation ledger is re-priced only when it changed
Documentation#
- review round 1 -- spawn-request system prompt and timeout clamp, pane deadline fixes, capacity snapshot throttle and requester matching, --force limitation
- agent spawns are never headless -- dispatch rule, spawn-request ceilings and file-drop strip, review-run argv, decision log; fix the dangling Supersedes link
- inline supervision vs pane attachment; headless is a launch mode
- audit release -- script runner, safety, scheduling/rollover, supervisors, memory, rot/adapters, workflow, dash contract changes; decision log, known issues, active work, journal
Chores#
- the drive-relative join escape test is Windows-only
- bump version to 3.24.0
- rustfmt the unix-only budget test
- #354 A2-3 -- the dashboard inspector asserts its subject short id as well as its kind
v3.23.0 (2026-09-05)#
Features#
- #354 phase 5 -- attention notices, error acknowledgement with counts, dashboard inspector
- #354 phase 4 -- one action table, ^A p palette, help as read-only palette, uniform Esc/Enter, first-run tip
- #354 phase 3 -- shared scrollable dialogs, overlay hits, context menu, inspector, real restore
- #354 phase 2 -- attention glyphs from cached status, done-unread acknowledgement, retained ended rows, shared group fold
- #354 phase 1 -- 44-column sidebar contract, group tree, disclosure, pure hit-testing and clickable rows
Fixes#
- #354 unix-only tests follow the ErrorLog and kept-request signatures
- #354 final review -- stale-snapshot overlay hits never synthesize keys, the tip-dismissing Esc is consumed
Documentation#
- #354 Active Work, Work Journal, five Decision Log entries, module map; bump to 3.23.0
- #354 UX audit, real captures, and the approved 200x50 dashboard design
v3.22.0 (2026-09-05)#
Features#
- wire the source-aware action matrix and cadence into real callers
- [screen] config table for the repetition-dominated thresholds
- #311 zirv ctx loop self-paces its cadence when nothing changes
- memory write-cadence signal (issue #272 design item 4)
- #311 add supervise.loop_backoff_ceiling_secs, narrow-only downward
- wire screen_prefix into score.rs's fallback tail screening
- screen.rs round 2 -- truncation finding, role-marker/invisible-unicode/opaque-run/repetition markers, source-aware action matrix
- #294 add zirv ctx measure verb
- #294 add ToolCallRead/ToolCallEdit events for zirv ctx measure
- add a built-in self-check registry (ZCHK-*) run by zirv verify
- journaled reversible writes, promote/rollback, --if-unchanged, session tier
Fixes#
- #295 review round 2 -- per-bank lock on every writer, state-dir lock files, legacy session-dir cleanup
- #272 review round 2 -- apply [screen] thresholds to handoff screening
- #272 review round 1 -- apply [screen] thresholds on every screening surface
- #295 review round 1 -- session gate fallback, if-unchanged lock, rollback conflict check, journal-error propagation, single-record rollback, session-id collision, refresh cleanup
Documentation#
- #295 round-3 review residuals -- legacy session-dir per-key forget and dedupe, timing-based lock test
- batch 7 -- consolidate Active Work, rotate Work Journal, record residuals in Known Issues
- screen.rs round 2 -- markers, action matrix, memory cadence, [screen] config
- #311 zirv ctx loop self-pacing cadence
- #294 measure verb, new events, decision + work journal
- document the built-in self-check registry and its verb anchors
- issue #295 -- memory journal, session tier, rollback/promote, round-trip guard
Chores#
- ignore the shared-memory --if-unchanged lock file under .zirv/memory/
- integrate #311 -- allow-list supervise.loop_backoff_ceiling_secs as narrow-only in ZCHK-FORBIDDEN-WIDENING
- integrate #294 + #295 -- classify memory promote/rollback as mutating, list measure in the doc verb anchor
- run zirv verify --builtin from the branch binary
- bump to 3.22.0 for harness batch 7
v3.21.0 (2026-09-05)#
Features#
- supervise.orchestrator_writes posture (allow/advise/deny, default advise) replaces the unconditional orchestrator write deny
- usage headroom ranks harnesses but never refuses or delays a spawn; initial launches skip the pacing wait
- #358 T6a -- harness pool view in status (text + --json) and the dashboard aggregate row
- #358 T5 -- automatic fenced meta-orchestrator rollover through the handover seams, exhaustion parking, pool decision events
- #358 T4 -- logical orchestrator seat with fencing generation, rollover decision policy, --pin-harness
- #358 T3 -- durable per-provider token reservation ledger wired into delegation admission, settlement and reroute
- #358 T2 -- pure capacity allocator, frozen capacity snapshot, adaptive delegation routing
- #358 T1 -- fallback scheduling config keys (adaptive_delegation, auto_orchestrator_rollover, rollover headroom/cooldown, per-harness limits)
Fixes#
- #358 review round 1 -- fence successors across swaps, close open rollovers before manual handover, move reservations across providers, atomic reserve_within, degraded config denies orchestrator writes, reactive rollover waits for idle
Documentation#
- #358 allocator, reservations, seat + rollover, pool view, write posture, never-refuse spawns; bump to 3.21.0
v3.20.0 (2026-09-04)#
Features#
- wire quota, workflow-gate/verification-failure and dashboard quiescence into the attention model (#349)
- composed session attention model, explain-status and wait verbs (#349)
- completion judge for objective-driven loops -- gates first, cheap-model verdict second, blocked/wait outcomes (#314)
- release-matched operator skill (
zirv --skill) and generated command schema (zirv commands --json) (#355) - durable task cards with claim/heartbeat/TTL, dependency gating, swarm helper and
agent --task(#317) - proof-required worktree prune, untracked archive, dead-owner GC,
zirv ctx worktreeverbs (#319)
Fixes#
- hold the task lock across read-decide-append, refuse impossible card moves, classify
zirv reportas mutating
Documentation#
- batch 6 -- #319 worktree prune, #317 task cards, #314 completion judge, #349 attention model, #355 operator skill + command schema
Chores#
- integrate batch 6 -- classify the new ctx verbs in the command schema and skill; bump to 3.20.0
v3.19.0 (2026-09-04)#
Fixes#
- address release integration review findings
- exempt Claude harness home from repo write guard (#346)
- show the codex usage reading, log observed_at on reroutes, document --force as the reroute opt-out, pick the worker-default substitute model (#335)
- classify only path-bearing output redirections as seat writes and exempt native subagents (#345, #346)
- confirm usage-limit text against the provider's structured reading before any park or reroute (#340)
- make per-tree exclusivity the only default writer gate; max_writers 0 lifts the machine-wide cap (#338)
Chores#
- finalize 3.18.0 release integration
v3.18.0 (2026-09-04)#
Features#
- zirv ctx search, zero-model recall over transcripts, handoffs, work artifacts and mail (#315)
- window attribution, status --breakdown, reclaim-gated compact advisory (#312)
- render the stall banner and restart-chain counts (#310)
- delegation envelopes that may only narrow, enforced in the safety hook (#262)
- progress-based liveness, stalled banner, restart-chain breaker, failure classes (#310)
- zirv ctx snapshot and zirv report bug --snapshot, redacted capped state summary (#320)
Fixes#
- compact_advisory keys are narrow-only, a repo may only quieten the advisory (#312)
Documentation#
- batch 5 -- #310 stall/chain, #315 search, #312 breakdown + advisory, #320 snapshot, #262 envelopes
- trust-boundary row for search.max_output_bytes (#315)
- trust-boundary rows for the #262 worker keys
- trust-boundary rows for the #310 supervise keys
Chores#
- rustfmt score.rs (#312)
- bump version to 3.17.0 for harness batch 5
v3.17.0 (2026-09-04)#
Features#
- add the operator-owned global memory scope (#336)
- deny orchestrator shell writes to the repo; refuse same-harness zirv agent (#328, #334)
- deny repository Edit/Write from an orchestrator seat (#334)
- the orchestrator seat never implements; same-harness delegation is native (#328, #334)
- seat-role env marker, orchestrator block log and status line (#328, #334)
Fixes#
- find git's real subcommand behind global options; exempt only diff-producing pipe upstreams (review round 2)
- refresh codex usage before routing and never hard-block a credits-covered window (#337)
- close the git apply/patch and sibling-checkout gaps; never reroute onto the seat's own harness (review round 1)
- judge an orchestrator write by the target's own repository (review round 1)
v3.16.0 (2026-09-04)#
Features#
- zirv agent --result-schema/--result-kind (issue #318)
- post-edit diagnostics channel for the Stop hook (#308 stage 1)
- two additive loop breakers for the PreToolUse hook (#313)
- state the same-harness routing rule in the claude orchestrator layer and hint when zirv agent targets the running harness (#328)
Fixes#
- anchor the denial breaker's log window on today and yesterday, not the newest files (#313, codex review round 1)
- lock the baseline only when one exists, so untouched repositories gain no lock file (#302)
- the Stop hook's cargo check uses its own target dir under the state dir (#308)
- the identical-command guard reads only the transcript tail (#313)
- hold one per-repo lock across baseline streak updates and prune (#302); point the narrow escape-safe doc comment at the #222 acceptor (#331)
Documentation#
- release 3.16.0 harness batch 4 -- #328 routing rule, #302 baseline lock, #308 diagnostics, #318 result schema
Other#
- release: bump version to 3.16.0
v3.15.1 (2026-09-04)#
Fixes#
- strip the Windows verbatim prefix from worktree and sibling grants
Chores#
- run the grant_path test on every platform so the helper is not dead in Linux test builds
v3.15.0 (2026-09-03)#
Features#
- /add-dir hint for an outside --workdir; zirv test/verify --dry-run are escape-safe (#307)
- session/repo-scoped audit with Read/Edit prompt families from the permission record (#321 #307 #320)
- verify-on-stop nudge names the stale gate command (#309)
Fixes#
- attribute nested subagent transcripts to their project; resolve a relative --repo against the cwd (codex review round 1)
- harden push --mirror/--prune and checkout -f/-B; allow mixed confined-write + read-only escape retries (#327 #321)
- a markdown heading inside a body no longer truncates the stored payload (#326)
Documentation#
- 3.14.0 harness batch 3 -- mail parser, push/checkout hardening, verify-on-stop, scoped permission audit, --dry-run escape and /add-dir hint
Other#
- release: bump version to 3.15.0 (3.14.0 shipped from #330)
- release: bump version to 3.14.0
v3.14.0 (2026-09-03)#
Features#
- sibling checkouts are writable; the subprocess env scrub is operator opt-in (#329)
Fixes#
- harden #329 sibling discovery and forge delete classifier (review round 1)
- permissions propose follows the running harness too (#329)
- fewer permission prompts for cross-repo work (#329)
Documentation#
- #329 prompt-free posture -- sibling grants, scrub opt-in, glab parity, agent default, review-round hardening
v3.13.0 (2026-09-03)#
Fixes#
- prompt-free posture round 2 - only truly harmful commands ask (#306 #316 #321 #307)
v3.12.0 (2026-09-03)#
Fixes#
- worktree ownership travels on the spawn request; guard leaves an unconfirmed dashboard spawn alone
- dot-only and parent-relative clean operands are not concrete paths
- tree claim follows the child pid; reclaim --worktree on every exit path
- concrete-path git clean, worktree reclamation, atomic tree claim, strict --since
- coordinator panes never take the tree writer permit (#267, #264)
Chores#
- plan execution ledger for 3.12.0
- bump version to 3.12.0; workflow artifacts for the second harness batch
Other#
- merge: vault pages for 3.12.0
- merge: track B -- cost ledger, zirv ctx spend, dashboard aggregate row (#264)
- merge: track F -- narrow the built-in VCS classifier to agent-scoped local git work (#306)
- merge: track C -- per-turn latency and TTFT speed signals (#293)
- merge: track E -- prompt-prefix stability harness (#299)
- merge: track A -- writer permits and one writer per tree (#267)
- merge: track D -- zirv context lint (#275)
v3.11.0 (2026-09-02)#
Features#
- durable objective layer with soft token budget and graceful wrap-up (#285)
- iterative v3 distillation with constraints, decisions, blocked and read-vs-modified (#280)
- host-verified working-set manifest and crash-interruption witness (#281)
- reserve a per-child token allocation at admission (#301)
- skip re-verifying an unchanged worktree after a failed attempt (#287)
Fixes#
- loop rolls cycle spend into the objective; resume dry run keeps the crash witness
Documentation#
- add pace.run_budget_tokens to the trust-boundary table (#285)
Chores#
- workflow review state for release 3.11.0
- workflow artifacts for release 3.11.0
- bump version to 3.11.0
Other#
- docs+fix: vault pages for 3.11.0; idempotent in-flight stamp; symlink test setup
v3.10.0 (2026-09-02)#
Features#
- proportionality-first wrapper -- engineering standard v3, meta-harness v15 (3.9.0) (#261)
v3.9.0 (2026-09-02)#
Other#
- release: 3.9.0 - close #268 #282 #283 #286 #298 (top-5 batch) (#304)
v3.8.0 (2026-09-01)#
Other#
- release: 3.8.0 - close #251 #252 #253 #255 (bug batch, two tracks) (#259)
v3.7.0 (2026-09-01)#
Features#
- prompt-free default posture (#222) - v3.6.0 (#258)
v3.6.0 (2026-09-01)#
Features#
- steering-grade parent mail (#249) + --workdir dispatch surfacing (#250) - v3.6.0 (#256)
v3.5.0 (2026-09-01)#
Other#
- release: 3.5.0 - close #222 #230 #235 #236 #241 #242 #243 #244 #245 (two-track issue batch) (#254)
v3.4.0 (2026-09-01)#
Features#
- waiver-aware review evidence (#238) + zirv ctx status --diff (#246) - v3.4.0 (#248)
v3.3.0 (2026-09-01)#
Features#
- steady-state token reductions + Ruflo evaluation (closes #225, #240) - v3.3.0 (#247)
v3.2.0 (2026-08-31)#
Other#
- release: 3.2.0 - workflow adoption detect/nudge/enforce (#223) + steady-state token usage reductions (#225) (#239)
v3.1.0 (2026-08-31)#
Other#
- release: 3.1.0 - bug batch #227 #228 #229 #232 #233 + common.md budget fix (#237)
v3.0.1 (2026-08-31)#
Fixes#
- bug batch - directed mail delivery (#226), safe auto-allow for zirv built-ins (#224) (#234)
v3.0.0 (2026-08-31)#
Other#
- release: 3.0.0 — fix #220 #219 #206 #214 and move scripts to .zirv/commands/ (#212) (#231)
v2.39.2 (2026-08-31)#
Fixes#
- bug batch - codex argv overflow (#213), workflow gate baseline (#215), budget exit-code clobber (#203), adopt-test flake (#218) (#221)
v2.39.1 (2026-08-30)#
Features#
- unify install docs and fix the Linux install story (#210) (#217)
v2.39.0 (2026-08-30)#
Features#
- dash TUI v3 — mock parity, restored rot/usage, workflow-step footer (#209) (#216)
v2.38.1 (2026-08-30)#
Documentation#
- refresh README to the v2.38 feature set (#198 part 2) (#211)
v2.38.0 (2026-08-30)#
Other#
- release: TUI design system and redesign, orchestrator design/lifecycle gates (v2.38.0) (#207)
v2.37.0 (2026-08-30)#
Other#
- release: AI-native SDLC lifecycle (#187) (#200)
v2.36.0 (2026-08-29)#
Features#
- surface fallback policy and headroom in status
- hand over blocked sessions across harnesses
- prevent fallback ping-pong across exhausted harnesses
- steer new delegations across harnesses
- register cross-harness fallback module
- add cross-harness routing selector
- map equivalent model tiers across harnesses
- expose pacing headroom for harness routing
- add trusted cross-harness fallback policy
Fixes#
- correct fallback headroom helper clock
- refuse unverified cross-harness quality guesses
- preserve fallback budget enforceability
Documentation#
- journal cross-harness fallback implementation
- record cross-harness fallback decision
- add cross-harness fallback subsystem overview
- record fallback config trust boundary
- document cross-harness supervisor continuation
- document cross-harness supervisor continuation
- document cross-harness pacing headroom
Chores#
- apply final rustfmt fallback layout
- format collapsed fallback route
- use fallback route request
- satisfy clippy for fallback routing
- simplify fallback routing API for clippy
- apply rustfmt to fallback implementation
- apply rustfmt to fallback implementation
- apply rustfmt to fallback implementation
- apply rustfmt to fallback implementation
- apply rustfmt to fallback implementation
- apply rustfmt to fallback implementation
- apply rustfmt to fallback implementation
- pin blocked-session cross-harness continuation
- isolate legacy limit-park regression from fallback
- cover equivalent cross-harness model tiers
- cover trusted fallback configuration
- sync lockfile version to 2.36.0
- bump version to 2.36.0
v2.35.0 (2026-08-28)#
Features#
- approved-prompt review and safe-list proposals (#178)
- complete reliable delivery envelopes (#177)
- file GitHub issues from the CLI (#176)
Fixes#
- gate glab api like gh api (#178)
- no re-commenting unchanged proposals, add exclusion guidance (#178)
- close three review findings on delivery envelopes (#177)
- keep shipped common context within budget (#176)
Documentation#
- tick final closeout item
- release 2.35.0 documentation pass
- close out 2.35.0 ledger and regenerate managed context
- establish release 2.35.0 progress ledger
Chores#
- repair WIP checkpoint tree
Other#
- wip(mail): checkpoint reliable delivery work (#177)
v2.34.0 (2026-08-28)#
Features#
- per-workflow ReviewRun breakdown and defect-rate in workflow stats
Fixes#
- re-stamp start_time on pid repoint, widen tolerance
- restore panes on the same launch-mode terms they had at spawn (issue #160 review round)
- disambiguate a recycled pid by process start time
- pin restored dashboard panes to the interactive launch mode (issue #160 finding 1)
Documentation#
- state the epoch-boundary caveat concretely (review finding)
- measure real pre/post-epoch token cost from machine logs
Chores#
- run CI only as a PR merge gate; trigger CD directly on the merge push
- bump version to 2.33.2
- bump version to 2.33.1
- regression test for opaque commit messages with path-like text (issue #160 finding 3)
- record the relative-path find-scan ruling (issue #160 finding 2)
v2.33.0 (2026-08-28)#
Features#
- size delegation - native subagents by default, sub-orchestrators for scoped areas (#175)
- bind sub-orchestrators to their work group by lineage (#170)
- persist the role a pane/session was spawned with (#169)
- give codex seats an orchestrator-conventions layer (#167)
- add kill verb, stale-session reaping, dead status (#166)
Fixes#
- stop role gate tests from probing for installed agent binaries
- wait for the fixture to consume its mode before nudging in the park-mail test
- wait for the outgoing child's turn before nudging in the budget-accumulation test
- fix Windows-target clippy dead-code and compile error
- never signal a pid the OS recycled away from a session
- keep a restored pane's role and work group
- never leave a minted work group behind a refused delegation
- export the work-group binding to a headless delegation's child
- claim and close a dash-spawned coordinator's work group
- read a requester's recorded role out of the session registry
- derive a spawn request's requester from its intake channel
- route codex orchestrator layer through native subagents first (#167)
- accumulate worker budget spend across restarts (#169)
Documentation#
- document intake trust boundary and a bounded discard race
Chores#
- bump version to 2.33.0
v2.32.0 (2026-08-28)#
Features#
- surface a self-healed attestation in explain text and hook reason
- allow-list zirv's own state dirs for sandboxed writes, not just mail
- allow compounds whose writes are confined to the session scratchpad
- classify a leading cd <known-root> prefix by the command after it
- self-heal an invalid attestation snapshot instead of ask/deny-everything
- always allow zirv ctx on the sandbox retry path
- allow read-only gh/glab/git/curl/wget/kubectl on sandbox retry
- add --allow-sensitive escape hatch to zirv memory remember --shared
- add --repo to zirv ctx forget, targeting the shared memory bank
- merge the local and repo memory banks in zirv ctx recall, labeling provenance
- refuse credential-shaped shared memory writes unless --allow-sensitive
- add --repo to zirv ctx remember, writing/verifying in the shared bank
- gate new delegated work on quota pressure, never rotation
- spawn-request lineage, delegation depth cap, and worker budgets
- render the work-group tree with per-child token spend in status
- scale rotation thresholds to the model's real context window
- budget heavy OPERATIONS with permits instead of counting idle sessions
- budget heavy OPERATIONS with permits instead of counting idle sessions
- add PromptRole::SubOrchestrator with a trimmed coordination layer
- let an adapter report its model's context window as a capability
- make an active workflow review gate the single review source of truth
- WorkGroup state and zirv ctx group create|status|close
Fixes#
- scan bundled POSIX short options in is_curl_or_wget_get_only
- reject a .. traversal component in target_is_confined
- kubectl get/describe reject secrets, config view/get/describe reject --raw
- confine attached/glued curl output forms, disqualify -K/--config
- require a separator boundary in target_is_confined
- narrow is_zirv_ctx_escape_safe to an explicit non-subprocess verb allow-list
- run the credential guard before truncation on the harvest path too
- cap oversized shared memory bodies like the private bank
- widen the shared memory credential guard to key/tags/paths
- gate the exactly-one-admission spawn test to windows like its shim siblings
- widen the nudge-cap test's second wait past taskkill's real cost
- harden permit slot claims against sweep/crash races
- roll back work-group admission on a post-admit spawn failure
- enforce work-group child_limit and thread work_group_id into completion logs
- resolve the live model into rot's token-gate capabilities
- refuse --max-tool-calls for the codex adapter instead of silently ignoring it
- catch an over-budget final transcript on a clean child exit
- never let a file-dropped spawn request force the hard pace refusal
- refuse a coordinator spawn from unverified request lineage
- track the spawned heavy child's own pid on its permit
- fall back to default permit policy on a config load error
- warn loudly when a heavy command proceeds without a permit
- make heavy-operation permit acquisition atomic across processes
- repo layer may only add heavy_command_patterns, never replace
- drop stale max_heavy_workers reference from merged depth-cap test
Documentation#
- document issue #168's retry-path carve-outs, cd classification, and self-heal
- add issue #168 permission-noise reduction implementation plan
- vault-keeper pass for repo-portable memories (issue #172)
- the truncation-can't-dodge-the-guard claim now holds for harvest too
- document the widened credential guard, --allow-sensitive on zirv memory, and shared-body truncation (issue #172 cross-review)
- scope RememberArgs::repo's gating doc comment to the store path
- document repo-portable memories and its secrets guard (issue #172)
- add repo-portable memories implementation plan (issue #172)
- vault-keeper pass for PR #171 (epic #155 phases 4-6 + review round)
- define the token-cost measurement procedure and record what data exists
Chores#
- scope the sandboxed allowWrite list back to mail-only
- add the issue #168 regression corpus across both modes and both sandbox flags
- regression-lock that read-only find/locate/rg never hard-deny
- extract evaluate_candidate_outcome from evaluate_candidates' fold
- e2e-cover the harvest skip-and-log path with a credential line
- centralize scope-of-bool mapping and scoped-json-entry struct
- cargo fmt the heavy_command_patterns lift
- set release version to 2.32.0
v2.31.0 (2026-08-27)#
Features#
- add zirv ctx usage --sessions with per-session raw token classes
- stamp the canonical-content hash into generated harness files
- record what every delegated worker actually cost
- end the review loop when a round yields no new findings
- record cache classes, sidechain spend and session lineage on telemetry
- record the four raw token classes instead of pre-summing them
- report a truncated canonical context layer instead of losing it silently
Fixes#
- add missing CompileArgs.escape field in merged test
- dedupe proof is byte-exact against a fresh render, not a header claim
- normalize find paths to close root-wide-scan spelling bypasses
- close find root-wide-scan escape bypass via leading flags and substitution
- correct cache-hit ratio formula, include cache-creation in delegation detail
- pin agent_bin in the forged-spawn regression test
- sandbox-escape allowlist and interactive-mode pinning end Claude approval hell (#147)
- stop toml_quoted_string tripping the cmd-shim reparse guard on Windows
- fix codex approval-posture review majors -- network ask-narrowing, spurious deny row, attached -c form
- codex approval-hell fixes -- config-override pinning, writable roots, network knob
Performance#
- skip canonical injection the harness already read natively
- re-review the delta since the last reviewed sha
- compose one deduped memory layer at the cacheable tail (v8)
Documentation#
- document Phase 3's native-content dedupe
- document phase 2 raw token telemetry and delegation lineage
- commit the issue #155 token-cost spec and phased implementation plan
- correct input_tokens semantics comment to the combined meaning
- correct layer-order doc comments to the v8 shape
- tighten canonical common.md inside the 4096-byte budget
Chores#
- bump version to 2.36.0 for the phase 4 release
- bump to 2.34.0 and record the telemetry shape change
- reuse last_model_flag for the delegation record's model field
- satisfy fmt and clippy on the flags_pin_policy attached-form check
- pin package()'s intact-chain delta wiring end-to-end
- bump to 2.33.0 and record the phase 1 prompt-shape change
- rustfmt the truncation decision detail
v2.30.1 (2026-08-26)#
Fixes#
- EPERM-blind pid liveness, dash discovery fallback, send diagnostics (#151)
v2.30.0 (2026-08-26)#
Features#
- heavy-worker budget and permissions compile (#142)
v2.29.3 (2026-08-26)#
Fixes#
- backslash+Enter inserts a newline in all dash composers (#150)
v2.29.2 (2026-08-26)#
Fixes#
- keep codex's -c flag intact and refuse dead dashboard dirs on agent join (#148)
v2.29.1 (2026-08-26)#
Fixes#
- codex exec approval probe, opaque commit messages, stale-snapshot UX (#140)
v2.29.0 (2026-08-25)#
Features#
- transcript-backed permission audit for codex and claude (#138)
v2.28.1 (2026-08-25)#
Fixes#
- split Pane::spawn cwd/repo and harden git-common-dir env (#119)
- accept linked worktrees of the dashboard repo as pane spawns (#119)
Documentation#
- document worktree-sibling pane spawn acceptance (issue #119)
Chores#
- fmt Pane::spawn call sites and allow its 8-arg signature
v2.28.0 (2026-08-25)#
Features#
- add managed profile migration
Fixes#
- publish current branch safely
v2.27.0 (2026-08-25)#
Fixes#
- adapter-aware injection submit, dash newline input, bounded read_until (#118)
v2.26.1 (2026-08-25)#
Features#
- harden cross-platform permission decisions
- attest sandboxed launch guards
- explain a verdict per launch mode and re-scope the dontAsk fall-through
- report the interactive and headless postures honestly per adapter
- use codex's low-noise on-request approval for interactive launches
- apply the SQL classifier in evaluate behind [safety] sql
- add a pure read-only SQL statement classifier
- never prompt for a command zirv has never seen on an interactive launch
- narrow the built-in ask set to genuinely dangerous families
Fixes#
- repair merge-orphaned HandoverRequest initializer and clippy question-mark lint
- fail safe on SQL escapes and dollar-quoting
- read the real verb past kubectl and helm global flags
- remove code-execution primitives from the find-exec allowlist
- detect shells behind wrapper programs in a pipeline
- thread the real headless signal into swap/spawn launches (finding 10)
- use real interactivity for compile/policy launch mode (finding 5)
- recognize this PR's own new pin flags (finding 14)
- close real unprompted-danger bypasses (findings 1-4,6-9,11,12)
- analyze SQL in every executable segment
- address fmt and clippy findings on the permissions split
Documentation#
- document two defense-in-depth residuals (findings 13, 15)
- record v2.27.0 launch guard hardening
- record final permission verification residuals
- document the never-prompt interactive posture and the SQL classifier
Chores#
- bump to 2.26.1
- corpus assertions for the four adversarial re-review bypasses
- bump to 2.26.0
- bump version to 2.26.0
- pin the no-endless-prompts requirement as an acceptance corpus
- thread LaunchMode through the launch seam
v2.25.2 (2026-08-25)#
Features#
- log an omitted report-back and remind workers to send theirs
Fixes#
- revert the deferred submit; keep it where the paste-fold actually bites
- drain the pending submit before anything that can block on stdout
- persist report-back state across restore; drain submits; share predicate
- defer /compact and mail-advisory submission the same way
- make visible pane injection a deferred two-phase submit
- split visible pane injection into two writes with a settle gap
Documentation#
- reflect PR #116's deferred-submit review round
- bump Technology Stack's version fields to 2.25.2
- document v2.25.2's two-phase injection and report-back reminder
Chores#
- bump version to 2.25.2
v2.25.1 (2026-08-24)#
Fixes#
- address PR #113 review findings 1-6
- exempt the --help capability probe in fake-codex-agent.sh
- reinstate the DASH_REQUESTS_ENV scrub and bound wrap's child.wait()
- apply the drain_to_eof fix and make exec's nudge-family give-ups loud
- close the tap-vs-child-exit race with a bounded EOF drain
- isolate real-$HOME reads and make the dash-requests guard injectable
Performance#
- isolate the load-sensitive exec nudge-restart family under nextest
- use finish_shutdown for dash test teardown instead of shutdown
- zero the pacing blind-delay in agent.rs and agent_command.rs tests
Documentation#
- document PR #113's nextest switch and supervise final-drain fix
- pin the real root cause of a_post_nudge_park's residual flake
- record two flaky-test diagnoses in-repo instead of only in the review report
Chores#
- bump version to 2.25.1
- flatten context_cli::repo()'s return tuple
- use VarGuard consistently in agent_command.rs
- run nextest with --no-fail-fast and pin its version
- switch to cargo-nextest as the fast default test loop
v2.25.0 (2026-08-24)#
Features#
- add guided first-run setup wizard for zirv and zirv chat
Fixes#
- address round-2 re-review findings (N1-N3)
- address review round 1 on the first-run wizard
- drop needless return flagged by clippy on macos
Documentation#
- refresh version references after pre-push hook flag
- document the guided first-run setup wizard (v2.25.0)
v2.24.0 (2026-08-24)#
Features#
- migrate the repo's agent context to zirv-managed layers
- make the shipped dontAsk posture usable -- whole toolchain families, harness dirs, scratchpad, WebFetch
Fixes#
- isolate the PTY test child from the checkout's own .zirv context layers
- exclude zirv-managed renders from the layer-duplicate analysis
- close argument-reordering and sibling-utility bypasses in the shipped deny list
- stop flagging prose basenames, ~-paths and placeholders as missing paths
- resolve hook binaries with PATHEXT before calling them missing
- match a trailing ' *' pattern against its bare prefix, mirroring claude semantics
- exclude zirv-managed native files from the drift duplicate analysis
- readable keys and sentence-boundary bodies for vault-extracted entries
- sweep mail addressed to a session that no longer exists
- sweep orphaned turn-signal endpoints that no live session owns
- strip the Windows verbatim prefix from user-facing paths
- let a hook "ask" fall through under dontAsk instead of denying pre-approved commands
- allow zirv's own commands and cargo fmt/clippy in the shipped posture
Documentation#
- record the optimize static-check accuracy fixes in Utilities.md (#108-#110)
- extend the journal entry to the review-round fixes (#108-#111); drop a redundant memory entry
- commit the claude-layer test-baseline refresh missed by the case-insensitive add
- refresh the Windows test baseline in the claude context layer and regenerate CLAUDE.md
- record the production-readiness pass and zirv-setup migration (issues #98-#106)
- name zirv and cargo fmt/clippy in the shipped-posture allow summary (#98)
v2.23.0 (2026-08-23)#
Features#
- close issues #83-#95, command safety policy, handover, non-fatal ctx.toml
Fixes#
- set truncate on the fan-out read-marker open (clippy on Linux)
Chores#
- assert the codex reviewer pin as an invariant, not one machine's argv
v2.22.0 (2026-08-23)#
Fixes#
- harness parity, pacing gate coverage, dashboard selection, setup restore
Chores#
- opt PTY tests out of the pacing gate and sandbox posture
v2.21.0 (2026-08-22)#
Features#
- finish artifact routing and usage telemetry
- enforce capabilities and bounded reviews
- add zirv context status budget and usage reporting
- add zirv context sync for CLAUDE.md/AGENTS.md compatibility
- compile one deterministic session context for every launch path
- add zirv memory optimize with staleness and consolidation
- harvest durable shared memory at session end
Fixes#
- complete compiled context across relaunches
- report and inject retrieved memory
- enforce context.max_harness_roster_bytes at compose time
- route resume's launch through the context compiler
- align harvest and optimize with setup bootstrap
- gate the clean-exit harvest on shared_enabled before spawning
- restore N4 -- a harvest must never overwrite an explicit entry
Documentation#
- document completed review artifact and telemetry flows
- restore full subsystem references
Chores#
- wait for restart decision log
- use harvested entries for consolidation
- align acceptance tests with supported adapters
- make fake agent portable on Windows
- remove superseded context compiler
- bump version to 2.21.0
- format context status assertions
v2.20.0 (2026-08-22)#
Features#
- add guided setup and harness migration
Fixes#
- model dashboard prompt fallback per launch
Chores#
- bump version to 2.20.0
v2.19.0 (2026-08-22)#
Features#
- raise autonomous design quality ceiling
- add parity benchmarks and provenance (#77)
- enforce fresh frontend evidence (#76)
- automate render and visual QA evidence (#75)
- add offline quality detector (#74)
- add autonomous frontend phase skills (#73)
- enforce a frontend craft floor (#72)
- select frontend profile automatically (#71)
- add zero-touch design profiles (#70)
Fixes#
- enforce autonomous quality evidence
v2.18.0 (2026-08-21)#
Documentation#
- record the memory/context/workflow rework and merge train
v2.17.0 (2026-08-21)#
Features#
- gate repository-supplied checks, skills and telemetry on operator config
- add provider-neutral development workflows
Fixes#
- a declared scope cannot talk complexity down either
- keep the reviewer relay alive and widen the secret denylist
- fail the repo-input gates closed, and stop the forged summary
- give one repository one state slug
- never let the artifact server hang or wedge the run
- measure risk from the tree, and harden artifacts
- keep review evidence honest and the reviewer read-only
- satisfy Windows target lint
- satisfy strict clippy checks
- keep design approval for high risk
- normalize reserved command dispatch
- bound review inputs and normalize formatting
- require fresh independent review evidence
- harden evidence and trust boundaries
- satisfy cross-platform build checks
Documentation#
- record the gate posture and the verifier round
- match the post-review-fix reality
- document lifecycle commands and architecture
v2.16.0 (2026-08-21)#
Features#
- state zirv's permissions policy once and map it per harness
Fixes#
- remove the looser enforcement predicate, note the sandbox flag conflict
- report only real enforcement in per-harness policy support
Documentation#
- cross-reference policy and canonical context, note the #44 coupling
Chores#
- bump version to 2.16.0 for the policy release
v2.15.0 (2026-08-21)#
Features#
- detect duplicate and contradictory instructions (issue #42)
- add canonical .zirv/context/ instruction layer
- ingest CLAUDE.md/AGENTS.md and harness-native settings
Fixes#
- scope canonical deletion exclusion to cross-surface duplicates
- pick redundancy deletion target by layer semantics
- milestone review fixes for canonical layer + drift detection
- close for_path's fail-open default for unclassifiable paths
- stop nested instruction discovery from starving settings surfaces
- close the repo-to-operator trust promotion in ContextSurface
Chores#
- bump version to 2.15.0 for the context release
- cover drift near-duplicate truncation cap
- introduce generic context-surface model
v2.14.0 (2026-08-21)#
Features#
- add deterministic context-aware retrieval engine
- merge core memory layer with budgeted, labeled injection
- add top-level zirv memory command family
- add extended entry schema and a key-addressed shared store
- introduce shared and private memory scopes
Fixes#
- warn on a disabled
zirv memory list, document paths' inert state - suppress shared-key shadowing case-insensitively, drop forgeries
- bump DEFAULT_PROMPT_VERSION to v6 for the memory shape change
- make memory.enabled a master switch, fix status/remember gaps
- drop shared entries shadowing a private key, close the block
- floor retrieval relevance on base score, not final score
- verify_scoped gets key agreement and stamps Verified in place
- refuse symlinked or key-mismatched canonical shared files
- close header-injection gap, scope collisions to canonical file
- keep write_atomic clean under Windows clippy, strengthen its test
Documentation#
- reunite select_memory_within_cap's doc with its function
- fix compose_launch_prompt doc-comment misattribution
- scope retrieval budgets to recall until #44, fix stale docs
- document the zirv memory command family
- document rounds 2-3's read/write contract, rewrap ragged line
- reword remaining seed-scope wording (round-1 finding 5 leftovers)
- fix wording that read as contradicting the shared scope's design
- close trust-boundary table drift and document the shared store
- fix REPO_FORBIDDEN drift and add shared-scope trust warnings
- document MemoryScope and memory.shared_enabled
Chores#
- bump version to 2.14.0 for the memory release
- cover launch-seam core injection under core_max_bytes
- tighten the trust-boundary doc-drift needle to the row shape
- assert every REPO_FORBIDDEN key has a trust-boundary doc row
v2.13.0 (2026-08-19)#
Features#
- drag-select with clipboard copy, shift/alt+enter newline, directed worker mail
- adaptive input poll and a Ctrl+A ? help overlay
Chores#
- untrack .superpowers session scratch and gitignore it
v2.12.0 (2026-08-19)#
Features#
- teach per-delegation model choice and honour a lone pin in a pane
- role-gated worker prompt and a worker-scoped user layer
- live inter-session messaging
- harden injected orchestrator conventions and add per-agent capacity marker
- default delegated workers to a cheap model and add a PreToolUse seat guard
Fixes#
- validate a spawn request's model before it reaches a pane's argv
- resume is an interactive session, not a delegated worker
- the bare wrap verb's seat is its own argv, never chat.model
- commit a mail advisory as announced only when the announcement actually surfaced
- stamp the local-input clock before the injection write
- signal-less pane quiescence measures from the latest of child output and local input
- recognise codex short -m model-flag forms in seat export and worker pinning
- pretool guard fails open on payloads that are not real dispatches
- seat guard follows the effective launch model and codex -m pins the worker model
Documentation#
- correct the pty-test count and record two skip-list traps
- record the A/B evidence behind the exec nudge timeouts
- correct the pty-test count and the two stale layer lists
- put the adapter-layer splice notes on the function they describe
- record the role-gated worker prompt and the test-suite gotchas
- align nudge advisory doc comments with the live-delivery contract
- document worker model defaults, seat guard, capacity marker, and prompt v5
Chores#
- bypass the wedged azure apt mirror for the mingw install
- bound the mingw install and the test job so a wedged mirror fails fast
- route the final full-diff review to a pinned reviewer subagent
- pin the mail-advisory test's phase boundary instead of draining it
- drain the stub's echo of the injected advisory between phases
v2.11.0 (2026-08-18)#
Features#
- per-agent code-review model config injected into the harness roster
Fixes#
- keep the review-roster line honest at the floor tier and case-insensitive seats
Documentation#
- document per-agent review-model config
v2.10.0 (2026-08-18)#
Features#
- show both usage windows, hide readings past their reset
Fixes#
- treat any dropped window slot as staleness in freshest_available_observation
- de-flake status test, tighten window::available, and unstick refresh gates at reset boundaries
Documentation#
- document the two-window usage display and staleness fixes
v2.9.0 (2026-08-17)#
Features#
- exhaustive .zirv/ctx.toml and .settings.toml reference configs with parse test
- session conventions v2 - verify-once and scope discipline, delivered to codex workers too
- per-harness usage in dashboard header, codex-aware status bar
- gate refreshes usage sources and honors use_credits
- active usage-poll fallback behind the passive collector
- pace-to-reset Slow verdict and use_credits gate skip
- codex passive usage collector from session rollouts
- parse codex rollout rate-limit snapshots and RFC 3339 timestamps
- pace config gains soft_percent, poll keys and use_credits
Fixes#
- repo config files are uncomment-to-override so they never clobber operator globals
- bound rollout timestamps, reuse the poll agent, restore the tee hint
- pace gate honors estimator-only pacing, latched slow deadlines, and post-reset readings
- pace.enabled gates the usage verb's active poll; record the silent-poll-failure deviation
- redirect home in the no-subcommand usage test and correct stale poll.rs wiring comments
- make the stale-refresh test assert the fresher scan actually wins
- add future-skew guard, timestamp-based snapshot selection, and update stale comments
- saturate window_minutes conversion against untrusted rollout JSON
Documentation#
- soft_percent is deliberately not repo-forbidden; record keychain/API-key poll inertness
- conventions v2 in Utilities.md prompt-layer table
- usage monitoring, use_credits gating, pace-to-reset throttle
- for_provider doc comment reflects its wired callers
- Task 9 — session conventions v2, verify-once and scope discipline
- codex poller ships best-effort even though unverifiable
- implementation plan for usage monitoring and pace-to-reset throttle
- usage monitoring, use-credits gating, pace-to-reset throttle
Chores#
- install mingw-w64 for the Windows-target clippy pass (ring cross-compile)
- fold the offset branch into the question-mark operator for Linux clippy
- fix two Linux-only failures masked by the Windows failure family
- bump version to 2.9.0
- pin the conventions/mail gate asymmetry under --simple
- merge the WaitUntil/Slow safety-cap match arms
v2.8.0 (2026-08-16)#
Features#
- derived harness roster layer and bounded cross-harness review policy in the orchestrator prompt
Fixes#
- close lifecycle review findings (unix lint, roster fail-safe, restart pid window)
- reap child process trees on every teardown path
- match the meta-harness layer header, not its bare name, in the worker-session guard
- close review findings on the harness roster and sidebar ownership
- scope the panes sidebar to sessions owned by this dashboard
- only release from main's own CI runs
Documentation#
- reflect the 2.8.0 version in Technology Stack
- document the process-tree lifecycle layers and their residuals
- bring Utilities.md's prompt.rs coverage up to the v5 compose shape
- document the harness roster, review policy, and sidebar ownership scoping
Chores#
- require every PR to bump Cargo.toml above its base branch
- bump version to 2.8.0 for the harness roster release
v2.7.0 (2026-08-16)#
Features#
- support codex out of the box, with an honestly degraded surface
- drop usage from the header, keep the rot score
- forward the wheel to the child, and show per-instance stats
- per-provider usage and a cheap per-session rot score
- give panes real scrollback, and instrument the input path
- dashboard roster — quit captures sessions, next launch offers restore
- zirv ctx agent joins the dashboard as a pane when one is running
- dashboard spawn-request channel with capability-token directory
- idle-gated visible nudge and mail injection for attached panes
- mailbox and memory-bank overlays driven by the same code as the CLI verbs
- dashboard sidebar shows every registered session; header carries live stats
- zirv chat opens the dashboard when the terminal can carry it
- dashboard event loop, prefix keys, zoom, quit confirm
- dashboard pure renderers (header, sidebar, grid, overlays)
- dashboard pane -- supervised ConPTY child behind a vt100 screen
- dash and chat config sections, Verb::Dash, adapter model_args
- memory harvest, session surfacing, and coordination docs
- per-session mail, nudge verb, and memory prompt layer
- session registry and memory bank store
- zirv chat entry, TUI chrome, and supervision observability
- ctx chat, agent delegation, mail verbs, and mail delivery
- registry-driven default resolution, mail store, harness prompt layer
- add .zirv/.settings.toml agent enable/disable gate
Fixes#
- coerce the signal handler to a fn pointer before the sighandler_t cast
- make the 23 Linux-only wrap/exec/memory tests pass on CI
- make overlays opaque so a modal cannot hide behind pane output
- enable wheel-only mouse reporting without motion tracking
- render the cursor, fix key encoding, and stop starving the event loop
- kill the whole child tree on Windows and make state writes atomic
- close the help-probe RCE and the case-folded reserved-name bypass
- keep repo/untrusted content off the Windows cmd.exe-reparsed argv (system-prompt file form + headless stdin)
- prevent repo-config command injection via cmd.exe argv reparse (chat.model + shim-arg guard)
- round-7 review — nudge injectability gate, restore spawn-failure writeback, doc
- round-6 review — typing gates injection not display, honest report-back gating, deferred restores
- round-5 review — output-quiet idleness, worker report-back channel, honest empty exits
- round-4 review — stable nudge targets, honest dashboard identity and exits, idle debounce
- chat.model disclosure survives a repo-disabled banner
- mail trust — consume identity, recipient-owned pruning, header sanitization, advisory watermark
- round-3 review — restorable sessions, pane reaping, injection scrubbing, setup-abort cleanup
- round-2 review — model flag placement, live-pane cap, single-injection ticks, atomic spawn files
- close dashboard review findings — terminal restore, argv guard, orchestrator prompt, zoom, focus
- panic-safe test guards, pinned delivery addresses, visible degraded sessions
- close all seventeen coordination review findings
- console safety for nested and supervised sessions
- surface every session exit and harden mail delivery timing
- close review findings on chrome, mail trust, and routing
- close settings-gate review findings
- deliver doc-coverage advisory via documented hook schema
Documentation#
- record the dashboard scrolling, overlay and header round
- record round-9 review fixes across the vault
- cross-OS/terminal acceptance testing guide
- add dash module to the CLAUDE.md module map
- dashboard documentation sweep
- orchestrator model is fable per user decision
- spike GO verdict; fold in prefix-arrows, chat.model, repo config example
- dashboard implementation plan (13 tasks, spike-gated)
- zirv dashboard multiplexer design spec
- point Active Work at PR #20
- update Active Work for zirv-chat handoff
- update Active Work and Work Journal for session handoff
- add Obsidian knowledge vault and Claude Code vault wiring
Chores#
- bump version to 2.7.0 for the meta-harness release
Other#
- spike: vt100 fidelity probe for the dashboard (gate)
v2.6.0 (2026-08-03)#
Features#
- inject a Claude orchestrator prompt, fix the Windows wrap deadlock
- agent steps — run supervised ctx exec sessions from scripts
- script-runner UX (suggestions, create flags, rich --help, shadowing warnings, headless errors, README)
Fixes#
- close a handoff deadlock, a shortcuts hard-error, and two test leaks
- relaunch-proof cooldown, honest probe target, and review follow-ups
- exempt passthrough from the agent gate, close three leaks
- stop round-tripping the prompt through argv
- key the M7 help-probe cache per binary, not a joined string
- harden wrap/exec supervision (advise cooldown, M2, M5, M7, M8)
- optimize/hook adapter routing, report hygiene (M1,M4,M6,N3,N4), codex honesty
- pace breadcrumb, watcher mtime, future-timestamp guard
Performance#
- incremental transcript scoring with persisted checkpoints
Documentation#
- record the full-diff review findings and fix mapping
Chores#
- release 2.6.0
v2.5.1 (2026-08-02)#
Fixes#
- --help exits 0 on every ctx verb
- wrap no-supervise and untrusted commands no longer inject the system prompt
Chores#
- release 2.5.1
v2.5.0 (2026-08-01)#
Features#
- inject a consistent session prompt, with --simple to opt out
- adapter surface for per-run system-prompt injection
- layered session system prompt with a capped repo layer
- the stop hook queues an optimize recommendation on repeated failures
- zirv ctx optimize reports configuration findings with proposed diffs
- gather optimize evidence from transcripts and the decision log
- deterministic redundancy and dead-reference lints
- inventory the configuration surfaces that steer a session
- release 2.5.0 with zirv ctx documentation
- zirv ctx usage report and pacing documentation
- pace supervised runs against usage windows and park on limit hits
- deterministic usage pacing gate with layered data sources
- estimate usage windows by summing transcript token usage
- collect usage windows through a transparent statusline tee
- wrap degrades to pure passthrough on any supervision failure
- wrap restarts the TUI in place with a distilled handoff
- wrap advisory and verified compaction injection with cooldown
- wrap injection preconditions at turn boundary and user idle
- zirv ctx wrap transparent PTY passthrough
- raw mode guard and window size probing
- loop backoff, failure caps and on_failure hook
- zirv ctx loop runs a fresh headless session per cycle
- exec timeout kills and turn-signal accelerated scoring
- zirv ctx exec supervises headless runs with bounded restarts
- supervision primitives and a fake agent fixture
- zirv ctx status report
- zirv ctx resume launches a clean session from the latest handoff
- zirv ctx handoff verb with per-repo storage
- distill handoffs with a fresh cheap model call
- handoff type, markdown round-trip and structural fallback
- prompt, pre-compact and notify hook entrypoints
- non-blocking stop hook that scores and forwards turns
- unix socket turn signals
- zirv ctx score verb
- deterministic rot scoring with token gates and canary case parity
- rot engine signal computation
- codex adapter shell from verified CLI behavior
- claude adapter commands, transcript paths and structural context
- AgentAdapter trait and adapter registry
- normalized event and session types
- state directory resolution and decision log
- layered ctx config with env overrides
- add zirv ctx command family skeleton
Fixes#
- strip the equals-bound form of --append-system-prompt too
- wrap no longer panics when the prompt merge empties the argv
- restrict the judgment/distiller model child's tools
- remove optimize's module-wide dead_code allow
- friction accounting counts exec's kill and stand-down too
- stop optimize's dead-reference lint from false-positiving
- optimize's redundancy diffs actually git apply
- merge a user's own --append-system-prompt instead of dropping it
- stop hook decouples optimize hint from rot advisory
- stop leaking HOME across optimize's serial test suite
- optimize falls back to default config instead of failing
- give the supervisor tests a resolved repo path
- restore HOME after the supervisor tests
- bound the distiller, close the state dir, gate the repo config
- hold the hook exit-0 invariant at the clap layer
- carry the transcript path on turn signals
- exec argv parsing must not panic on real invocations
- scope status test's signal import to unix
- notify hook must not propagate a serialization error
- quote verbatim evidence for codex exec --model flag
- remove redundant references in format! args
Documentation#
- verified system-prompt injection facts for claude and codex
- implementation plan for zirv ctx optimize and consistent-session run
- fold optimize and simple-run into the 2.5.0 release
- approved spec for zirv ctx optimize and consistent-session run (2.6.0)
- describe what the code actually does
- Phase E plan tasks for usage pacing, verified usage-window facts
- spec amendment for usage pacing (Phase E)
- implementation plan for zirv ctx, spec amendment for PreCompact semantics
- design spec for zirv ctx autonomous context management
Chores#
- drop the blanket dead_code allows and lint the windows target
- cover relaunch-failure degradation end to end and tidy quit_child/degradation labels
- drop the now-unneeded dead_code allow in run_loop
- record scrubbed real claude transcript fixture
v2.4.0 (2026-03-16)#
Other#
- Update README with upgrade guide and fix example version
- Bump version to 2.4.0
- Replace unmaintained serde_yml with serde_yaml_ng
- Add Linux support for Homebrew and shell install script
v2.3.0 (2026-03-16)#
Other#
- Bump version to 2.3.0
- Improve exit codes and remove redundant error output
- Add --dry-run flag to preview commands without executing
- Detect unresolved placeholders before execution
- Validate param ordering and detect duplicates
- Add colored output and step progress indicators
- Add output module for colored CLI output
- Replace deprecated serde_yaml with serde_yml
v2.2.0 (2026-03-16)#
Other#
- Add optional parameters and renovate dependencies
v2.1.0 (2026-02-24)#
Chores#
- deduplicate code and improve maintainability
Other#
- Renovate
v2.0.9 (2025-11-22)#
Other#
- Renovate
v2.0.8 (2025-10-06)#
Other#
- Renovate
v2.0.7 (2025-09-15)#
Other#
- Fix windows again
v2.0.6 (2025-09-15)#
Other#
- Renovate
- Make sure multishell works on linux based platforms
v2.0.5 (2025-09-11)#
Other#
- Fix multishell on windows
- Fix multishell on windows
v2.0.4 (2025-08-29)#
Other#
- Update commit command
- Renovate
- Renovate
v2.0.3 (2025-08-19)#
Other#
- Adding slab
- Update packages
v2.0.2 (2025-07-25)#
Other#
- Bump version
- Fix cd when spawning shells
v2.0.1 (2025-07-23)#
Other#
- Fixing cd not working
v2.0.0 (2025-07-22)#
Other#
- Renovate packages
- Bump version
- Reworking concurrency to now spawn shells instead
- wip
- Making spawn shell work
- wip
v1.0.1 (2025-07-12)#
Other#
- Update packages and version
- Adding root folder to help
- Adding download command for linux
v1.0.0 (2025-06-11)#
Other#
- Updating docs and updating modules
- Adding fallback test commands
- Adding fallback once again
- adding tests
- Adding refactore and concurrency
v0.7.4 (2025-05-16)#
Other#
- Renovating crates
v0.7.3 (2025-05-03)#
Other#
- Adding test scripts and updating run function to allow scripts with no options
v0.7.2 (2025-05-02)#
Other#
- Bump version to reflect bug fixes
- Adding build options
- Adding build options
v0.7.1 (2025-05-02)#
Other#
- "help"
v0.7.0 (2025-05-02)#
Other#
- Adding swisstables, capture function and on_failure
v0.6.5 (2025-05-01)#
Other#
- Renovate packages and change edition to 2024
- Update update_chocolatey.ps1
- Update pipeline
- Update script
- Update cd pipeline
- Update homebrew
- .
- Update cd pipeline
- update cd pipeline and update chocolatey script
v0.6.4 (2025-04-22)#
Other#
- Revert
- Revert cd
- Update cd and update script
- Remove @ from readme
- Remove logo
- Adding logo to readme
- Update readme
- Updating chocolatey_update-ps script to rename the executable to zirv.exe and changing nuspec file to list the zirv.exe file instead
- Adding chocolatey to readme as installation option
v0.6.3 (2025-04-19)#
Other#
- Bumping version and updating packages
- Rewrite VERIFICATION.txt for Chocolatey
- Update readme
- Update CD to include intel macs
- Update CD to include intel macs
- Update CD to include intel macs
- Update CD to include intel macs
- Update cd pipeline
- Adding debug
- Adding debug
- Adding debug
- Update homebrew script
- Update homebrew script
- Update homebrew script
- Update homebrew script
- Update homebrew script
- Update homebrew step
- Updating cd pipeline
- Updating cd pipeline
- Updating cd pipeline
- Updating cd pipeline
- Updating cd pipeline
- Updating cd pipeline
- Updating cd pipeline
- Updating cd pipeline to require approval before creating homebrew and chocolatey release
- Updating nuspec
- update cd pipeline
- update cd pipeline
- update cd pipeline
- update cd pipeline
- update cd pipeline
- update cd pipeline
- update cd pipeline
- update cd pipeline
- update cd pipeline
- update cd pipeline
- Make script executable
- adding homebrew and chocolatey
v0.6.2 (2025-03-25)#
Other#
- Bump version
- Updating help
v0.6.1 (2025-03-25)#
Other#
- Adding more example data to created file
- Update readme
v0.6.0 (2025-03-25)#
Other#
- Adding create command
- Update readme
v0.5.0 (2025-03-24)#
Other#
- Adding init command
- Fix readme
- Update readme
- Update cd pipeline
v0.4.1 (2025-03-24)#
Other#
- Update cd pipeline
- Update cd pipeline
v0.4.0 (2025-03-23)#
Other#
- Fixing global shortcuts
v0.3.8 (2025-03-22)#
Other#
- Help user create a global .zirv folder
v0.3.7 (2025-03-22)#
Other#
- Fixing help so it new lists global commands
v0.3.6 (2025-03-22)#
Other#
- Fixing verion command
v0.3.5 (2025-03-22)#
Other#
- Adding version to shortcuts
v0.3.4 (2025-03-22)#
Other#
- Fixing buildin commands
v0.3.3 (2025-03-22)#
Other#
- Adding version command
v0.3.2 (2025-03-22)#
Other#
- Adding unittests
v0.3.1 (2025-03-22)#
Other#
- Update readme with datastructures
v0.3.0 (2025-03-22)#
Other#
- Adding support for env vars
- Adding fallback lookup in root
- .
- Updating release job
v0.2.0 (2025-03-22)#
Other#
- Update tag
- Update tag grapper
v0.1.0 (2025-03-22)#
Other#
- Change permission
- .
- Get version from cargo.toml
- Change mycli to zirv
- Update windows build job
- Change mycli to zirv
- Update upload artifact
- Fix cd pipelien
- Fix lint
- Fixing test in pipeline
- Adding CI/CD workflow
- Adding help
- Rename yaml module to run as the cli now suports json and toml
- Updating readme
- Renaming shortcuts.yaml to .shortcuts.yaml
- Adding support for shortcuts
- Adding support for params
- Adding support for params
- remove commit
- Change docs
- remove some docs
- init
- init