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

One issue page: the studio's tell, with labels, assignee and the dependency form in one quiet Details #734

Merged opened this in answer to

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

Merged

Closes #626

shipped production is serving it for issue #626 — its issue is already done deploy 2e641a3

opened this

Closes #626

In progress (steward build team). Description, removals and looks follow in a comment.

commented

Description (the pull body is fixed at open; this is it). Closes #626.

There is now one issue page: the studio's tell (src/web/studio/tell.ts), for every repository, app or not, and every viewer. /issues/:n and /tells/:n answer the same page through one handler (tellPage) and one threadContext, so a reader who may not see the issue gets the same 404 at either address. ?mode=dev and the mode cookie change nothing.

Path. Arrive from a post or a list → read who has it, its word, its runs and what it waits for → reply (the primary action) or close it. Next comes the change that answers it, via the "Closes with" card.

Removed

  • Dev's issue page renderer (issuePage in pages/issues.ts, about 110 lines).
  • The studio's read-only "Depends on" card (tellDependencies), which repeated dev's.
  • The "Read the details ?mode=dev" link.
  • The redirect that sent /tells/:n to /issues/:n for dev viewers and non-apps.
  • Lines: src/ is +71/−158.
  • Not touched: pages/thread.ts has no second issue page in it, only the shared pieces both pages drew (conversation, composer, the cards), so nothing there repeats.

What dev's page showed or did, and where it lives now

  • Assignee select and Labels form: one quiet Details disclosure in the aside, closed until asked for.
  • Dependency form (link, unlink, "Still holds"): in view, in "Depends on". It answers one of the page's three questions, and it is the same card as before, now linking in the tell's noun. A reader sees the list without the form.
  • Close reasons (done, dropped, split into #): the composer, beside Close tell. They used to render as a loose select and input above the comment box on dev's page. Now they sit inline, joined to the state form by id. The "#, #" field shows only when "split into…" is picked. That is pure CSS, no script.
  • State badge, author, origin link, work spent, labels' colours: the shared head and page styles.
  • Crew activity card: covered by the tell's own Runs card (each run's word, length and cost).

Tests, updated rather than deleted: studio (one page in both modes; Details closed and holding the assignee and labels; the dependency form in view; close reasons present; /tells never bounces, including on a non-app; a reader of a public tell sees Details but none of the forms: assignee, labels, dependencies, state, comments), studio-words (the tell row gets a title in place of a dev half), issues (reopened reads told), web-code (the one list's row; comments on the issue).

Verified. tsc is clean. Studio, issues, studio-words, dependencies, map, map-closing, web-ui and web-code pass. The full gate on main (1e4ebce) has one red, crew assignment, which is the macOS /private path on this machine. Looks at 390 and 1280 of an app's tell and a plain repository's issue, with Details open and "split into…" picked, against a seeded local forge. Nothing scrolls sideways. The looks are with the steward.

🤖 Generated with Claude Code

commented

Correction to the description: after the last commit, src/ is +103/−211. pages/thread.ts changed too: the composer's close reasons, and the dependency card now links in the tell's noun.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs