cloudflare / cloudflare/cloudflare-os
Async approval flow: is the local simulation checked against anything before being queued for bulk approval?
- Dominant language
- TypeScript
- Stars
- 9.9k
- Forks
- 1.2k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 107
Description
Really like the async-approval design in Gatekeepers — solves the real "give an agent a task, walk away, and it's stuck on step 1" problem synchronous human-in-the-loop causes.
One thing I couldn't find in the README or the individual `gatekeeper-*` package docs: when a Gatekeeper simulates an action's outcome (README: *"the Gatekeeper will simulate the outcome locally... if the agent tries to read back the results, the Gatekeeper gives it simulated results"*), is that simulation checked against anything before it's queued for the user to bulk-approve?
Concrete scenario: a user queues up 20 actions across a session, walks away, comes back and bulk-approves. If one simulation was wrong — say the GitHub Gatekeeper simulates a PR merge as clean but the real merge would actually conflict, or an email Gatekeeper simulates a send succeeding when the real recipient address is malformed — the user is approving the agent's own account of what happened, not a verified outcome. Bulk approval makes this worse than the synchronous case: more surface queued per review pass, less scrutiny per item.
Is there (or is there a plan for) any independent check — even something lightweight like a dry-run against the real API where one exists, or a diff between predicted and post-hoc-actual state — before an action reaches the approval queue? Or is the simulation trusted as-is, with human review as the only check?
Contributor guide
Research direction
Read the README and the individual `gatekeeper-*` package docs first, then trace how local simulation reaches the bulk-approval queue; no source file or test is named in the issue. Done would be a clear decision about whether simulations are independently checked, with documented scope for any proposed validation or post-hoc comparison.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- authorization, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100