Releases: Evolvlabsai/Exolvra-Genesis
Release list
v0.8.2 — Runs survive their sessions
Three fixes from the CLI's first real days, each found live and each pinned by a test that stages the exact failure.
Runs survive their sessions
- Abnormal ends recover themselves. A
runorresumesession that dies with the run still markedrunning— a dropped stream, a crashed process — is re-driven in place instead of printing a resume line at an empty chair. Bounded byEXOLVRA_GENESIS_AUTO_RESUMES(default 2,0disables). Deliberate endings are never re-driven: a lead that settledblockedmade a decision, a tripped budget guard enforced one, an interrupt was a person. - Recovery backs off before it retries. Attempt N waits N ×
EXOLVRA_GENESIS_AUTO_RESUME_DELAY_MS(default 15s) first — found live when a 529 "Overloaded" killed a run and both instant retries died inside the same overload window. The notice says how long, and Ctrl-C during the wait still wins.
Builds may build
runandresumedefault to--permission-mode bypassPermissions. An unattended build executes the verification commands it was given; under the old cautious default a headless loop could edit files but never run a command — and discovered it 25 minutes in. The flag is now the restriction (acceptEditsfor cautious operators);plankeeps the cautious default because it executes nothing.
The test double learned to fail once and then succeed — the exact shape recovery exists for — and help environment documents both new variables. Suite: 1053 tests.
v0.8.1 — The package page reads
The npm registry page was blank: npm reads the package root's README, and the repository's lived one level up. The package now ships its own — install, quickstart, the issue runner's safety rules, and the exit-code contract — and the pack-list pin requires it, so a tarball that would render a blank page fails the suite.
v0.8.0 — The GitHub issue runner
The release that lets the loop work a repository's own issues, unattended, and stop exactly where a human should take over.
The GitHub issue runner
exolvra-genesis workmakes one pass: it claims an issue a maintainer labelledexolvra:ready, runs the loop against the issue as the spec (and the repo's standing gates as the bar), and ends with evidence — a pull request on a win, a draft PR carrying the open question on a block, a triage comment naming exactly what is missing when nothing checkable can be derived. Humans keep every merge decision.exolvra-genesis queuelists eligible and in-flight issues across allowlisted repos;queue --fleetrenders the fleet page. Both read-only.examples/issue-runner.yml— adopt by copying one file into GitHub Actions; the runner login ships pre-filled.
Safety as mechanisms, not promises
- Every write requires a resolvable identity. A token GitHub will not name (installation and Actions tokens) needs
--runner-login/EXOLVRA_GENESIS_RUNNER_LOGIN, or the run exits 2 before any issue is read. - One module owns all GitHub traffic — a
fetchplanted anywhere else fails the suite. One module owns git; force-push is structurally absent and pushes are confined to theexolvra-genesis/issue-…namespace. - Issue content is data, never instructions: commands are derived only from the issue's own checkable text, hostile markup and bidi controls are neutralized in everything written back, and secrets pasted into issues render
[redacted]on every surface — branch names and evasive Unicode encodings included. - A tampered issue snapshot downgrades a win to a blocked draft. A claim is heartbeat-guarded; forged heartbeats are disbelieved ("a heartbeat cannot postdate the comment that carries it").
How it was judged
Built by the loop against docs/specs/issue-runner-spec.md: eight blind write-safety passes over the foundations, then assembled rounds ending on two consecutive blind WINs on a frozen brief and a frozen tree. Roughly forty findings across the run, each fixed and re-verified by replaying the critic's own attack. Then one live pass against a real repository carried a real issue to a real merged pull request. The suite grew 677 → 1050 tests. The postmortem — including the process rules the run produced — ships in docs/postmortems/.
npm publish of 0.8.0 follows shortly; until it lands, run the CLI from this repo (cd cli && npm install && npm run build).
Exolvra Genesis 0.6.0
First public release.
An adversarial orchestration loop for Claude Code — builder subagents iterate against blind, fresh-context critics comparing real output to a concrete quality bar, until the assembled work wins twice in a row. Ships as a plugin (/exolvra-genesis:run, /exolvra-genesis:interview) and as the exolvra-genesis CLI, which loads the same plugin markdown at runtime and was built by its own loop: 24 judged rounds against cli/cli-spec.md, with gh and @clack/prompts transcripts as the bar, ending on two consecutive blind critic WINs.
Highlights of 0.6.0 itself: bar immutability is now a mechanism (opt-in PreToolUse hook checking the bar's sha256 pins before every subagent dispatch), alongside the existing Stop gate; critics report BLOCKED rather than judging visual work from source when the session lacks a browser/screenshot tool; one version across plugin, changelog, and CLI.
Full history in CHANGELOG.md.