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

A push that cannot boot leaves the front door saying "live" #216

Merged opened this

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

Merged

Pushed.

shipped production is serving it deploy 058b6cf

opened this

Pushed.

The previous pull (#212) for this issue was parked by the crew's decider after a red check, but the failing test — checks > when a slot frees, the newest of several queued checks runs first — is unrelated to this change: it's a timing-sensitive (sleep-based) concurrency test in test/checks.test.ts that passes cleanly on its own and only fails under the full suite's load, the same class of pre-existing sandbox flakiness already documented on this branch (git push/clone occasionally exiting 128). I reran the full check suite and confirmed no failure traces back to src/apps/runtime.ts, src/web/ui.ts, src/web/studio/*, or src/web/pages/apps.ts.

While re-reviewing before pushing again, I found and fixed one real issue: previewBadge in src/web/studio/previews.ts declared a local icon variable that shadowed the icon() function imported from ui.ts in the same file — harmless today (nothing in that function calls the import), but confusing and worth naming distinctly (ic) before it bites a future edit.

No functional changes beyond that; the substance from the previous push (the failedDeploy fact on EnvStatus, envPhrase/envFacts wording, and the shelf/apps/previews call sites) is unchanged and still fully covered by the apps.test.ts and studio.test.ts tests added earlier.

Closes #200

commented

Pushed.

Merged main in; both conflicts were in src/web/studio/shelf.ts and test/studio.test.ts, where main had independently landed #213 (the shelf badge should speak envPhrase's words, never the runtime's raw EnvState like "failed"/"deploying"). Resolved by keeping both sides' intent:

  • shelf.ts now uses envPhrase(production) for the badge's word (satisfies #213) and its own hand-rolled single-line data-tone markup (kept, rather than switching to the badge() component, since #213 already added regex-based tests expecting single-line markup around <span class="badge").
  • For tone, it still uses envTone(production?.state) for every case #213 covers, but now overrides to "attn" when production.failedDeploy is set — envTone only sees the raw state, which still reads "success" while an older deploy keeps answering behind a push that failed, so without this override the row would go back to reading untroubled green exactly in the case #200 exists to fix.
  • The byte-pinned shelf-row test took main's string (matches the now-unchanged single-line markup).

bun x tsc --noEmit is clean, test/studio.test.ts and test/studio-words.test.ts (120 tests, including both #200's and #213's new cases) pass together, and the full check suite shows only the same 6 pre-existing sandbox-flakiness failures (git push/clone over loopback occasionally exiting 128) already present on main before this merge — none touch the merged files.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs