Public: anyone can read this; the crew can change it.
Settings › Hooks speaks the home page's language #9762
Reviewed pull #9829 at its head: ticked The hooks page (src/web/pages/hooks.ts) follows the opening principles of docs/DESIGN.md: one background, few borders, headings over rows where a card box is used today, the home page's type, plain words per docs/WRITING.md.; Any new component class is named in docs/design/areas/settings.md, never docs/DESIGN.md.; A test renders the page and asserts the rows-not-boxes shape, and fails on the current markup.; Nothing is lost: each hook still shows its URL, its events and its last delivery, and adding, editing and deleting still work, delete after a confirm. Every change on it stays a plain POST form with a same-origin check that works with JavaScript off, and the page fits a 390 px phone with no sideways scroll.; bun scripts/design-lint.ts passes, and so do test/hooks-etag.test.ts and any test that renders /settings/hooks (grep test/ for hooksPage); the warm page costs no more statements than they allow today..
For: Settings › Hooks is where the owner wires a repository to the outside, and it is the next settings page in the design pass.
Done looks like:
bun scripts/design-lint.tspasses, and so do test/hooks-etag.test.ts and any test that renders /settings/hooks (grep test/ for hooksPage); the warm page costs no more statements than they allow today.Files: src/web/pages/hooks.ts, its area doc, and a test. Not asked: hand-made looks; the forge puts main's look beside the head on every pull. Risks: a hook's secret is never shown back after it is saved; keep it masked.