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

A green deploy says its tests passed: #962's testsClause lands, with its deploy tests in their own file #987

shipped production is serving it opened this has it
opened this

Pillar: P0 Trust (#586). Replaces #280, which was parked three times. A green deploy says what its tests did, not only that it answered.

Why #280 kept failing: the first two runs couldn't push. Pull #962 built the whole thing (refs/pull/962/head, commit c262554), touching runtime.ts, words.ts, asks.ts, previews.ts and two test files. Its check failed for two reasons:

  1. The two new real-app deploy tests went into test/apps.test.ts. That file shares one forge across its tests, so "a restart starts production warm and leaves the open preview asleep until asked for" (test/apps.test.ts:962) found two asleep previews (pull-8 and pull-4) where it expects one. The new tests' previews leaked into it.
  2. The check ran its full 30 minutes. This issue waits for the gate's flake fixes (#896, #965, #966) so the next check judges only this change.

Done looks like

  • [ ] Start from today's main and bring over #962's commits: git fetch origin refs/pull/962/head, then cherry-pick. Keep its design: on a successful deploy the runtime adds " · its tests passed" or " · no tests declared, none run" to the run's summary. One testsClause(run) in src/web/studio/words.ts turns that into the note that the decide card, the home's asks and the Previews row all read. A deploy from before the change keeps the plain "green — ready for a look".
  • [ ] The two deploy tests (the suite passed, and no tests declared) move out of test/apps.test.ts into a new test/apps-tests-clause.test.ts with its own forge and data directory, listed in GATE in scripts/gate.ts. test/apps.test.ts ends up as it is on main.
  • [ ] The testsClause check on a pre-change summary stays in test/studio-words.test.ts.
  • [ ] bun test test/apps.test.ts test/apps-tests-clause.test.ts test/studio-words.test.ts --timeout 60000 passes, run together, and bun x tsc --noEmit is clean. Quote both in the pull.
  • [ ] No pass count. It would need a new column, so the pull says it was left out.
  • [ ] Push as soon as the first commit is in. If git push fails, say so in the first line of the run's last message.

🤖 Generated with Claude Code

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs