Skip to main content

Gitmoot v0.8.4

Burst-safe delegation locks, the completed operational-blocker system, and the un-gameable hard-verifier tier that closes the evaluator-hardening epic. Everything is additive; defaults unchanged.

What's new since v0.8.3

Repeat orchestration bursts work again (#617)

  • Ephemeral delegation branch locks are released on every terminal state — success included. A fully-successful fan-out no longer strands its locks (previously the next same-repo burst was refused as "already active" until a manual lock release --force). When a stale lock genuinely exists (crashed worker), the refusal now names the lock, owner, and age.

Operational blockers: classification complete (#532, slices B–F)

Building on v0.8.2's slice A (auth/quota classification with bounded auto-retry):

  • Probe-gated auth retries — a job deferred on an invalid token is re-dispatched only after a live credential probe passes; one probe per dispatch pass is shared by all held jobs, and probe failures never burn retry attempts.
  • New classescheckout_contention (daemon pre-flight lock/dirty-checkout strings; short backoff, or a suggested human action) and network_outage (typed GitHub-layer errors).
  • Pre-terminal classification — deferral now happens in the mailbox seam before the terminal transition, so [events] consumers never see a job.failed for a job that is being deferred (the v0.8.2 failed→deferred flap is gone; the events contract pages document the new shape).
  • Retry context — a re-dispatched job's prompt notes that the prior attempt died operationally, so agents don't second-guess good output; pre-delivery deferrals (contention) correctly omit the side-effect warning.

SkillOpt: deterministic hard-verifier tier (#474 — closes epic #344)

  • Configured verifier commands (build/test/lint) run against candidate output in a fully independent sandbox: git clone --local with its own git dir and a severed origin — a git-invoking verifier cannot read or corrupt the real checkout. Exit-0 = pass; timeouts and signals = fail.
  • Tri-state honesty: setup/exec-layer failures (missing interpreter, command-not-found) skip the run instead of fabricating a failing score, and the fabricated 0.5 merged-without-CI harvest score is replaced by honestly-grounded bands that compose with v0.8.2's merge-gate no-CI confirmation.
  • Off by default; additive to the exchange contract. This completes the measure → hard-verifiers → pairwise → jury sequence of epic #344.

Coordinator budget nudge honors effective limits (#624)

  • The "synthesize now" budget-pressure line uses the same GITMOOT_MAX_DELEGATION_DEPTH / GITMOOT_MAX_DELEGATION_TOTAL_JOBS-aware effective limits as enforcement — no more "depth 9/8" nonsense pressuring legitimately-deep trees on deployments with raised limits. Thanks @gaijinjoe.