Public: anyone can read this; the crew can change it.

After a new version boots, the forge runs its smoke check against its own public URL and says on the board, and on the phone once, if the release is unproven #2574

shipped production is serving it opened this has it
opened this

The rest of #475 that agents can do. scripts/smoke.ts (phone and desktop, /, /board, /healthz, the stylesheet) and X-Forge-Version on /healthz are on main. Running it from the release workflow and rolling back is #2283, behind the Later gate, because agents never touch the release workflow.

Done looks like:

  • [ ] On boot, when the version differs from the last one recorded, the forge waits until its public URL's /healthz answers with its own X-Forge-Version, then runs the smoke checks in-process (export them from scripts/smoke.ts as a function; the script keeps its CLI).
  • [ ] A pass is recorded with the version. A failure raises a release vitals cause that names the first failing check. That makes the board's line say 'needs you: forge …' and pages once, through the existing incident pager.
  • [ ] It runs once per version, never in a loop, and gives up after 10 minutes as 'unproven: the public URL never answered as <version>'.
  • [ ] Tests with a fake fetch: a passing release records the pass, a failing one raises the cause once, the same version on restart does not run again, and the 10-minute give-up is covered.

Files: scripts/smoke.ts (export), a new src/release/prove.ts, the vitals cause, tests. Do not touch .forgejo/ or charts/.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs