Skip to content

fix(orchestrate): report agy as prompt_only, because it is not sandboxed - #658

Merged
mblauberg merged 2 commits into
mainfrom
fix/agy-read-only-guarantee
Aug 5, 2026
Merged

fix(orchestrate): report agy as prompt_only, because it is not sandboxed#658
mblauberg merged 2 commits into
mainfrom
fix/agy-read-only-guarantee

Conversation

@mblauberg

Copy link
Copy Markdown
Owner

The dispatcher claimed read_only_guarantee="enforced" for agy. emit_record awards certification_eligible=true only when the status is ok, the review is cross-family, and the guarantee is enforced or oauth_safe_mode, so that value is the claim that the reviewer could not have mutated the repository under review.

For agy the claim was false, and certification was being awarded to a route that can write files and run shell commands.

Evidence

Write probe against agy 1.1.10, asking it to create a file:

flags result
the dispatcher's own flags (--output-format json --disable-slash-commands --sandbox --add-dir) SUCCESS, DID-WRITE, file created on disk
the same plus --mode plan SUCCESS, DID-WRITE, file created again

--mode plan enforces nothing here, so adding it would have shipped false assurance. Writes succeed because permissions.allow grants write_file(*) and command(*), and agy --help exposes no per-invocation permission flag.

The change

guarantee becomes prompt_only, the value the copilot branch already uses for "the prompt asks it not to, nothing enforces it". certification_eligible is now false for agy, which is the correct consequence.

emit_record and the certification rule are unchanged. Whether certification should distinguish an independent opinion from a sandboxed one is a separate policy decision, deliberately left out of scope so the record gets corrected without loosening the rule to make the problem disappear.

The user's ~/.gemini/antigravity-cli/settings.json was not touched. Per-call scoped enforcement was considered and rejected as not worth building.

Other adapters

adapter verdict
codex matches, -s read-only is a real sandbox policy
claude matches on available evidence: --permission-mode plan, --tools "Read,Grep,Glob", no-mutation system prompt
cursor unresolved tension, deliberately unchanged. Help says -p "has access to all tools, including write and shell", while both --mode ask and --mode plan are documented read-only. Cursor is out of usage quota so no probe was possible, and flags were not churned on documentation alone
kiro already conservative: disabled by default at none, best_effort if enabled

Verification

scripts/check-harness: 1268 passed, 2 xfailed.

https://claude.ai/code/session_01DsDFRG6NVWb2VBNNtVkQ6N

The dispatcher claimed read_only_guarantee="enforced" for agy, which is the
claim that the reviewer could not have mutated the repository under review.
It is false, so certification was being awarded to a route that can write
files and run shell commands.

A write probe against agy 1.1.10 under the dispatcher's own flags returned
SUCCESS and created the file. Adding --mode plan changed nothing, so that
flag enforces no read-only boundary and adding it would only have shipped
false assurance. Writes succeed because permissions.allow grants
write_file(*) and command(*), and agy exposes no per-invocation permission
flag.

The guarantee becomes prompt_only, matching the copilot branch's use for
"the prompt asks it not to, nothing enforces it". certification_eligible is
now false for agy, which is the intended consequence.

emit_record and the certification rule are unchanged: whether an independent
opinion should certify without a sandbox is a separate policy decision.

The agy-reviewer prompt preamble now carries both facts, since they are
separate. An ungranted tool is auto-denied and one denial discards the whole
turn; a granted tool simply runs, so silence about writing is not proof that
nothing was written.

Claude-Session: https://claude.ai/code/session_01DsDFRG6NVWb2VBNNtVkQ6N
Copilot AI lite review requested due to automatic review settings August 5, 2026 09:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@mblauberg
mblauberg merged commit 069b217 into main Aug 5, 2026
7 checks passed
@mblauberg
mblauberg deleted the fix/agy-read-only-guarantee branch August 5, 2026 10:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants