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

A deploy the forge's own restart interrupted reads as Failed, beside a real failure #286

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

Pushed. Full check (`tsc --noEmit` plus all 410 tests including `apps.test.ts` and `apps-adversarial.test.ts`) passes.

shipped production is serving it deploy 910e02f

opened this

Pushed. Full check (tsc --noEmit plus all 410 tests including apps.test.ts and apps-adversarial.test.ts) passes.

A deploy the runtime aborts because it's stopping now finishes cancelled with "the forge stopped," reading it apart from a genuine failure in the studio's word, list, and env-availability logic (already committed as a2f65f0). This push fixes the reason the check on #271 hung: runStep's SIGKILL didn't stop pump from reading the killed process's stdout/stderr pipes, so runtime.stop() could wait forever on a step that was already dead. pump now takes an abort signal and cancels its reader the instant the kill is sent, so the new "install still in flight" regression test resolves in under a second instead of timing out.

With the abort now genuinely immediate, production's own redeploy of a merged commit can finish its test step before the preview's aborted one would have — I keyed the orphan-test regression test's marker file by $FORGE_APP_ENV so that legitimate production run isn't mistaken for the preview orphan the test actually checks for.

Closes #255

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs