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

Settings › Webhooks shows a failed delivery's Redeliver button, as the terminal's `r` does #8076

shipped production is serving it opened this has it
opened this

Intent: the same redelivery reachable from the browser, in two taps from the repository's Settings.

Done looks like:

  • [ ] src/web/pages/hooks.ts lists each hook's recent deliveries (as recentDeliveries answers) and puts a Redeliver button (a POST form with the CSRF/same-origin check every mutation here has) on each failed one.
  • [ ] The POST calls redeliver from src/core/webhooks.ts, then redirects back to the page, where the row reads pending; a refused redelivery redirects with the page's usual notice and changes nothing.
  • [ ] Only someone who may manage the repository's webhooks sees the button, and a POST from anyone else is a 404.
  • [ ] A test drives the page: a failed delivery shows the button, the POST makes it pending, a reader's POST is refused. It fails without the change.
  • [ ] bun scripts/design-lint.ts passes; any new class is named in docs/design/areas/settings.md.

Files: src/web/pages/hooks.ts, the router line that mounts webhook pages, test/web-hook-redeliver.test.ts, docs/design/areas/settings.md

Risks: if mounting the route needs src/http/server.ts (hot), wait for it to cool rather than racing it.

Brief: a builder who knows the web pages (quill or scout).

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs