Good first issue — a frontend-only first slice of #53 (structured approval engine). A maintainer will help you land it; comment to claim.
Goal
In the web approval prompt, add an "Allow for this run" option next to the existing approve/deny buttons. This issue is UI only — render the option and surface the user's choice; the backend grant semantics (scope, expiry, audit) are tracked in #53 and are explicitly out of scope here.
Where
- The approval UI component in
web/src/ (look for the existing approve/deny prompt; PlanCard.tsx and the onProceed pattern are nearby examples of a button that sends an action).
- Types in
web/src/types.ts (PendingApproval).
Acceptance
- The approval prompt shows a third choice, "Allow for this run".
- Choosing it is distinguishable from a one-off approve in the value passed up (e.g. a
scope: 'run' field) — even though the backend doesn't act on it yet.
- Existing approve/deny behavior is unchanged.
Not in scope
Backend enforcement of the run-scoped grant, persistence, and audit — all in #53. Keep this PR to the UI + the shape of the choice.
Goal
In the web approval prompt, add an "Allow for this run" option next to the existing approve/deny buttons. This issue is UI only — render the option and surface the user's choice; the backend grant semantics (scope, expiry, audit) are tracked in #53 and are explicitly out of scope here.
Where
web/src/(look for the existing approve/deny prompt;PlanCard.tsxand theonProceedpattern are nearby examples of a button that sends an action).web/src/types.ts(PendingApproval).Acceptance
scope: 'run'field) — even though the backend doesn't act on it yet.Not in scope
Backend enforcement of the run-scoped grant, persistence, and audit — all in #53. Keep this PR to the UI + the shape of the choice.