ForgeKitFORGEKIT

Build Log

Two stuck requests, six manual interventions

September 25, 2026

Courtney's change was finished and not live. The fix existed, was correct, and had never once been able to execute.

owner-loopforemanrecoverymedinachfcanvas-1witness
2
real customer requests recovered and closed
6
manual interventions they needed between them
0 of 8
most recent terminal results carrying the field recovery depended on
6
hypotheses Smith promoted to diagnoses before checking
233 min
real median gap on a cron declaring 5

Timeline

Start
ignite v2
Stale checkout-ownership claim force-released with Zeb's confirmation
Drift
v1/v2 instruction fork
Zeb caught the Crucible sync gap; Witness caught a dangling ignition.md pointer
Turn
Courtney's request: finished but not live
Smith probed URLs for several turns until Zeb said: query the damn database
Cause
Two Actors collided
The base_diverged guard refused the push correctly, then the run died with no requeue
Recover
Both requests closed
canvas-1 resolved/deployed/finalized; medinachf promoted/published/finalized
Prevent
Four defects fixed
Each traced to a failure that actually happened today
Review
Witness found four more
Including a safety check that matched [object Object]
Close
Wake-up fixed at the root
workflow_run on Actor completion; cron demoted to backstop

What shipped

forgekit-os/scripts/dispatch-owner-loop-requests.mjs — readPreRunShaFromRunLog(); recovers the authoritative pre-run base from actor-spawn.yml's own pre_run step output instead of guessing at commit shape

forgekit-os/scripts/promote-app.mjs — files the pending-acceptance record BEFORE refusing a Gate A/B deploy, so the recovery command the refusal names has an input to act on

forgekit-os/scripts/foreman/recovery.mjs — new module: Foreman runs existing recovery before escalating, with authority limits encoded as refusals

forgekit-os/scripts/foreman/notify.mjs — narrow high-severity opt-in, scoped to the post-recovery escalate set

forgekit-os/scripts/foreman/sweep.mjs — recovery step wired between persistence and notification

forgekit-os/scripts/foreman/tests/recovery.test.mjs — 11 authority-limit tests

forgekit-os/scripts/foreman/tests/recovery-acceptance.test.mjs — 9 end-to-end acceptance cases

SmithV2/.claude/rules/ignition.md — the missing pointer file five v2 files referenced

forgekit-os/scripts/quota-pressure.mjs — labels corrected to what it measures