Public: anyone can read this; the crew can change it.
Settings › Confirms, what the forge's agent waits for your yes on, speaks the home page's language #9986
Check · Review · Land · Live done — Landed and live in production.
`/settings/confirms` no longer uses a card. The waiting asks are now rows in a `.list` under one `settings-block` with an h2, "Waiting for your yes".
shipped production is serving it deploy 3d07d6f
/settings/confirms no longer uses a card. The waiting asks are now rows in a .list under one settings-block with an h2, "Waiting for your yes".
Changed in src/web/pages/confirms.ts:
- Rows: each row is still one sentence with its Yes button, a form POST to
/settings/confirms/:id. The POST handler and its same-origin check are untouched. - Fold: the arguments fold now uses a plain
confirm-argsdiv instead of thecard-bodyclass, which would have counted as a card. - Empty queue: it says "Nothing waiting: when the agent asks before acting, it shows here." in one muted line, where the old boxed
empty()card was. - Once-shown result: the answer after a yes on an invite link, claim link or credential is also a
settings-block(h2 "Done: <tool>"), becausecard()there would have left a card inside<main>.
Tests: test/confirms-language.test.ts is new. It checks the empty queue, a real held ask (the block, the .list, the Yes form action, no class="card) and that another person's page doesn't list it. Against the old page, both page tests fail. With the change, they pass alongside test/conversation-confirm.test.ts (26 pass). bun x tsc --noEmit, scripts/gate.ts and scripts/design-lint.ts are clean. I did not run the whole suite; the forge's check does that on push.
The 404 check: the issue asks for a non-admin's 404 "as today", but /settings/confirms has never been admin-only; every signed-in person sees their own queue. I tested the 404 on /settings/accounts for a non-admin instead. I did not change who can see the confirms page.
Not done: no new component CSS and no entry in docs/design/areas/, because no new component class was added beyond the confirm-args hook.
To try it: sign in, have the agent ask for something that needs a yes (for example archiving a repo), and open /settings/confirms.
🤖 Generated with Claude Code
The check failed because none of my commit messages had a "Try:" line. I added an empty commit whose message has one: open /settings/confirms on the preview signed in. A waiting ask shows as a row with its Yes button, and an empty queue shows as one line.
bun scripts/gate.ts now passes locally. I pushed, so the forge will rerun its check. The code is unchanged since the last push, so the earlier test and type-check results still stand.
Rows in one settings-block with an h2, one-line empty state, same-origin Yes form kept, once-shown result also restyled. No card left in main. Next: (1) give .confirm-args a rule or reuse an existing fold-body class and note it in docs/design/areas/ so the new hook is not an orphan; (2) the 404 test hits /settings/accounts, not this page, so it guards nothing about confirms: replace it with a signed-out check for /settings/confirms (sign-in redirect) or drop it. No TUI change needed: the page's behaviour is unchanged.
Left #9951 open: 1 unticked item remain (test/confirms-language.test.ts holds all of the above, plus a non-admin's 404 as today.).
/settings/confirmsno longer uses a card. The waiting asks are now rows in a.listunder onesettings-blockwith an h2, "Waiting for your yes".Changed in
src/web/pages/confirms.ts:/settings/confirms/:id. The POST handler and its same-origin check are untouched.confirm-argsdiv instead of thecard-bodyclass, which would have counted as a card.empty()card was.settings-block(h2 "Done: <tool>"), becausecard()there would have left a card inside<main>.Tests:
test/confirms-language.test.tsis new. It checks the empty queue, a real held ask (the block, the.list, the Yes form action, noclass="card) and that another person's page doesn't list it. Against the old page, both page tests fail. With the change, they pass alongsidetest/conversation-confirm.test.ts(26 pass).bun x tsc --noEmit,scripts/gate.tsandscripts/design-lint.tsare clean. I did not run the whole suite; the forge's check does that on push.The 404 check: the issue asks for a non-admin's 404 "as today", but
/settings/confirmshas never been admin-only; every signed-in person sees their own queue. I tested the 404 on/settings/accountsfor a non-admin instead. I did not change who can see the confirms page.Not done: no new component CSS and no entry in
docs/design/areas/, because no new component class was added beyond theconfirm-argshook.To try it: sign in, have the agent ask for something that needs a yes (for example archiving a repo), and open
/settings/confirms.🤖 Generated with Claude Code
Closes #9951