Skip to content

v0.4.0 — The orchestrator seat opens up

Choose a tag to compare

@0xDarkMatter 0xDarkMatter released this 05 Sep 00:48
· 27 commits to main since this release

The orchestrator seat opens up, and codex lanes commit their own work.

  • 🎯 The orchestrator seat is no longer Claude Code's alone. Any agent that can run the scripts and judge their output may hold it; the host conveniences — dashboard pane, chat widget, chips, ACP steering — are optional surfaces, not requirements. Verified with opencode 1.18 and pi 0.83 each driving plan draft → lint end to end, unmodified (ADR-033).
  • 🛡️ Codex lanes self-commit, reversing ADR-006's "never". The sandbox gets four scoped git grants — the lane's worktree metadata, the object store, and the lane branch's ref and reflog. .git/config (core.hooksPath is code execution), hooks/, and refs/heads/main stay outside the cage, proven with an adversarial config-write probe (ADR-034).
  • 🔌 Gemini and OpenRouter lanes, verified end to end: the Pi wildcard seat now has tested routes to google (Gemini 3.6 and 3.8 Flash) and openrouter (any listed model), each running a full lane — self-commit, collect gate, main clean. Pi accepts a model id newer than its own catalogue, so a launch-day model needs no fleetflow change.
  • 🧭 ff doctor --for MODEL[,MODEL…]: preflight scoped to the models a run actually spawns. A missing harness for a requested model escalates advisory→fail, and claude is required only for claude-family, glm, and chip lanes — so a claude-less fleet can be blessed.
  • 🔍 The preflight stopped lying: rounds of cross-model review closed false greens in ff-doctor — a logged-out codex that matched "Logged in", a glm child whose nonzero exit was masked by a pipeline, requested seats blessed with no verifiable key. What cannot be verified now fails closed.
  • 🐛 Codex lanes run again on codex-cli 0.153, which rejects the --approve-for-me plus -s workspace-write pair fleetflow had passed since 0.144 — every codex lane died at spawn with rc=2. The launch line now passes --approve-for-me alone, which implies the same sandbox.

Upgrading

No breaking changes. If your codex lanes have been dying at spawn with rc=2, this release is the fix — re-spawn them with --force, since the journal caches the failed result under the same key.

525 hermetic assertions, ADR lint inside the gate.

Full changelog: v0.3.0...v0.4.0