Skip to content

Releases: Evolvlabsai/Exolvra-Genesis

v0.8.2 — Runs survive their sessions

Choose a tag to compare

@dharrisHub dharrisHub released this 18 Aug 20:40

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 run or resume session that dies with the run still marked running — a dropped stream, a crashed process — is re-driven in place instead of printing a resume line at an empty chair. Bounded by EXOLVRA_GENESIS_AUTO_RESUMES (default 2, 0 disables). Deliberate endings are never re-driven: a lead that settled blocked made 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

  • run and resume default 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 (acceptEdits for cautious operators); plan keeps 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

Choose a tag to compare

@dharrisHub dharrisHub released this 18 Aug 20:41

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

Choose a tag to compare

@dharrisHub dharrisHub released this 16 Aug 14:48

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 work makes one pass: it claims an issue a maintainer labelled exolvra: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 queue lists eligible and in-flight issues across allowlisted repos; queue --fleet renders 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 fetch planted anywhere else fails the suite. One module owns git; force-push is structurally absent and pushes are confined to the exolvra-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

Choose a tag to compare

@dharrisHub dharrisHub released this 12 Aug 04:30

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.