Skip to content

Foreman v0.2.7.5 — Usability

Choose a tag to compare

@CharlesHoskinson CharlesHoskinson released this 19 Jul 01:26
· 1185 commits to main since this release

Foreman is a cross-vendor architect/worker orchestration skill for coding agents. A high-judgment architect routes five-part specs to implementer and auditor lanes, then ships only after independent verification.

What's in this release — usability

v0.2.7.5 closes the five capabilities v0.2.5 (Beacon) shipped but marked "not usable yet," and reframes foreman around an explicit lifecycle that runs the same on Windows and WSL/Linux. Seven OpenSpec packages; nine planned (two ship as approved specs for the next release). Every package was implemented by a Sonnet 5 lane, independently audited by Opus 4.8, and reworked to closure — the suite grew 245 → 359 tests, all green.

Three-stage lifecycle — Setup & Environment → Use → Cleanup. All model authentication moves into Setup, never mid-run. foreman-setup.sh composes tool-check + bootstrap + non-billing per-vendor auth probes and emits a lane-scoped readiness verdict (MISSING/OUTDATED/NOT_AUTHENTICATED/READY); Use refuses to route to a not-ready lane (a real coded gate in lane-run, not a reminder); foreman-cleanup.sh is a deterministic, idempotent, dirty-safe teardown.

Grok lanes are live. Grok Build wired into the vendor map with per-lane GROK_HOME isolation and a secrets-refusal preflight (a grok lane refuses a worktree bearing .env/key material — the guard against whole-repo upload). Proven end-to-end: a real grok --round wrote its file, passed the gate, and recorded round_done.

Full WSL setup. bootstrap-wsl.sh provisions foreman natively inside WSL (bats, shellcheck, bun, pueue, codex, grok, node/npm), so the three-stage lifecycle runs identically on Linux. Two live bugs fixed along the way: WSL codex was crashing on a leaked Windows npm shim (fixed via native install + appendWindowsPath=false), and the env manifest falsely claimed shellcheck was installed (now genuinely installed both sides). .wslconfig tuned for an agent host; a sleep-resume clock-sync hook protects the event log from post-sleep drift.

POSIX cascade parity. The POSIX launcher self-re-execs as PID-namespace init (unshare --pid --mount-proc --fork --kill-child), so the kernel reaps the whole tree on launcher death — the Linux analog of Windows' KILL_ON_JOB_CLOSE, probed working on WSL. A PR_SET_CHILD_SUBREAPER net and the existing setsid/pgid fast path complete the ladder; the Windows build is untouched.

Concurrent-worktree hardening. A git guard bundle (scheduled maintenance replacing reactive gc, core.fsmonitor/longpaths, GIT_OPTIONAL_LOCKS=0 on polls, GIT_ASK_YESNO=false, a retry wrapper, a stale-lock sweep, SIGINT-before-remove) auto-applied at worktree creation — the stalls-and-git-lock class the operator was hitting. A real concurrency race in the worktree index was found and fixed under a 6-lane test.

Vendor concurrency (T5b). A shim-tested destructive-concurrency harness enforcing all four abort criteria, plus the Claude Code ruling (requires a separate $HOME per lane, from the public issue base). The destructive authenticated verdict remains UNVERIFIED — vendor caps stay at 1 by design until a green result justifies raising them.

Documentation refreshed to the shipped surface: README/USAGE/CLAUDE.md/INSTALL reorganized around the lifecycle with Windows and WSL quickstarts, every command ground-truthed against the code (zero invented flags).

Honest residuals

  • T5b destructive verdict is UNVERIFIED — the authenticated grok/codex concurrency matrix could not run in this environment (isolated per-lane auth staging was blocked, no lower-tier key available). The harness is built and enforces all four abort monitors; a future session with destructive-auth permission or a scoped key can run it and raise caps on a green result. Until then, caps stay at 1.
  • wt-cleanup grandchild orphans on MSYS — neither taskkill //T nor a POSIX process-group reliably reaps a plain bash-forked grandchild on Git Bash/MSYS (a Cygwin constraint, documented, not a defect).
  • Prose pass used russellian-style; the requested blader/humanizer plugin was not installed in the build environment — a one-command follow-up (/plugin marketplace add blader/humanizer) for a future polish.
  • hard-mode-launcher and the v0.3.0 session-transport re-port ship as approved OpenSpec specs, executed next release.

Install

git clone https://github.com/CharlesHoskinson/foreman
cd foreman && ./install.sh    # or .\install.ps1 on Windows; WSL: bash env/bootstrap-wsl.sh

Operating guide: docs/USAGE.md. Reference: skills/foreman/references/orchestration-hardening.md + reference-environment.md.