Replaces #1110, narrowed to what is not on main yet. src/web/studio/actions.ts already has flashTo(ctx, back, …) for tells; read it first.
Done looks like:
[ ] POST …/pulls/:number/ship and …/state (close) taken from the home inbox or the feed carry a back field (a same-origin path, validated: anything else falls back to the pull page) and redirect there with a flash: "Shipped #N · see it live" with the one link.
[ ] Taken from the pull page they stay on the pull page.
[ ] Tests in the existing studio test file (not a new file, or add it to GATE in scripts/gate.ts): ship from the home returns to the home; a back of https://evil.example/ lands on the pull page.
The say, review-state and asks' decide routes, and in-place fragment re-render, come after this lands.
Replaces #1110, narrowed to what is not on main yet.
src/web/studio/actions.tsalready hasflashTo(ctx, back, …)for tells; read it first.Done looks like:
POST …/pulls/:number/shipand…/state(close) taken from the home inbox or the feed carry abackfield (a same-origin path, validated: anything else falls back to the pull page) and redirect there with a flash: "Shipped #N · see it live" with the one link.scripts/gate.ts): ship from the home returns to the home; abackofhttps://evil.example/lands on the pull page.The say, review-state and asks' decide routes, and in-place fragment re-render, come after this lands.