Public: anyone can read this; the crew can change it.
Shipped means production is serving it: the studio's words come from facts, not a regex on a summary #54
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
docs/STUDIO.mdends with a promise — the studio "never says shipped before production redeployed" — and the code that picks the word reads a run's free-text summary:wordFor(src/web/pages/studio.ts:578) matches/opened pull|updated pull/for look,/planned|no changes pushed/for planned, and calls everything else shipped. A finished agent run that wrote a document, fixed a branch, or ended with any sentence nobody thought of is reported to a person as shipped, and a merged pull is shipped the instant it merges, whether or not production has come back up on that commit. Derive the five words from what is true instead.Done looks like
run.summarytext: the run's kind and state, whether it produced a pull, whether that pull is open, merged or closed, and — for shipped — whether production's live deployment is at or past the merged commit. The summary stays as the note beside the word; it is never the thing parsed.status()), and it becomes shipped on the next render or live event without a person reloading.wordFor's regexes are gone, not merely narrowed.test/studio.test.ts: a merged pull whose production deploy has not yet served does not say shipped and says so again once it has; an agent run with the summary"wrote docs/PLAN.md"is not shipped; a deploy serving with failed tests is not shipped. All three fail on today's code.docs/STUDIO.mdsays what each word is derived from, so the next surface reads it rather than guessing.Files I expect to change
src/web/pages/studio.ts(the word function, and its callers),src/core/runs.tsorsrc/apps/runtime.tsonly if the fact the word needs is not reachable,docs/STUDIO.md,test/studio.test.ts.Risks
Who
Mason — one rule, in one place, with the string-matching deleted.