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

The studio says "Close pull request" #182

Merged opened this

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

Merged

Pushed.

shipped production is serving it deploy d5b2fe2

opened this

Pushed.

The composer's close button used dev's nouns ("pull request"/"issue") unconditionally, leaking onto the studio's tell and change pages. Fixed by having the composer take an explicit closeLabel from its caller instead of deriving it from a kind — dev's pages (pages/pull.ts, pages/issues.ts) pass "Close pull request"/"Close issue" unchanged, the studio's pages (studio/change.ts, studio/tell.ts) pass "Close change"/"Close tell". The shared stateSubmit handler's "A merged pull request cannot be reopened." refusal is the same bug in disguise — it now picks its noun with studioRecord, the same check the redirect target uses to decide which page renders, so the flash toast can never disagree with the page underneath it.

I left "Reopen" as-is since it carries no dev noun and never disagreed. I did not adopt the issue's "Quill" suggestion — it doesn't read as an action for either surface and isn't in the studio's own vocabulary (docs/STUDIO.md), so I used the studio's existing nouns (change/tell) instead, which the acceptance criteria call for directly.

test/studio-words.test.ts gains pull request and Close issue as forbidden dev words in the shared vocabulary check (bare issue alone isn't usable there — it rides the topbar's own data-live="...,issue.*,..." wiring on every page), plus a new test that reopening a merged change is refused as "change" under studio and "pull request" under dev. bun test and tsc --noEmit are green (two unrelated pre-existing failures in pulls.test.ts/web.test.ts are a sandbox git-auth limitation, reproducible on main before this change too).

Closes #171

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs