chore(cli-version): verify agy against 1.1.27 - #972
Merged
Conversation
Gate B: 7/7, 224.75s, against a manifest download whose sha512 was checked before it ran. The suite log reports only version=1.1.27, and the binary was byte-identical before and after (mtime 08:22:14, size 177426912). 225s against a normal 140-175s is provider latency -- everything passed, unlike the 5x blowup that produced five 300s timeouts on 09-03. Gate C: CLEAR, read from the candidate binary's own `agy changelog`; the web page is two releases behind at 1.1.25. Range covers 1.1.26 and 1.1.27, since the updater went straight from 1.1.25 to 1.1.27. One item lands squarely on our surface: "Fixed headless runs with -p silently skipping tool actions they were not permitted to take, which now end with a notice naming the refused actions and report them as denied_actions in the JSON output." We run -p with stream-json and the PreToolUse hook bridge denies tools as a matter of course, and gate B does not exercise the deny path. So it was probed twice, and the two paths differ in a way that matters. agy's OWN gate (omitting --dangerously-skip-permissions, NOT our path) gives status SUCCESS, an EMPTY response, and the refusal only in denied_actions -- a field we do not read. Our path -- --dangerously-skip-permissions plus an always-deny .agents/hooks.json matching what antigravity_hook.rs installs -- gives status SUCCESS, no denied_actions, and an accurate reply: "I did not succeed because writing to out.txt was blocked by the pre-tool hook." The file really was not written. So denied_actions is emitted only on a path we never take, and it is additive regardless: wire.rs does not use deny_unknown_fields. Loose thread recorded, not fixed here: neither probe produced an error_message step, and translate.rs:289-292 counts only those, so ANTIGRAVITY_STEPS_FAILED does not fire on a hook denial. Whether that is new is NOT established -- agy cannot be A/B tested. What is verified is that the reply is now honest, which is what that notice existed to compensate for. Any change there is a source PR. --help adds one subcommand (remote-control) and removes nothing; models --help is byte-identical. Diffed against the captures the previous run stored, not by re-running the 1.1.25 binary. Record: ~/aion/protocols/samples/antigravity-cli/1.1.27/, including both probes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves
VERIFIED_AGY_VERSIONfrom 1.1.25 to 1.1.27. The updater went straight from 1.1.25 to 1.1.27, so the triage covers both 1.1.26 and 1.1.27.Gate B ran against a manifest download whose sha512 was checked before it executed; the log reports only
version=1.1.27, and the binary was byte-identical before and after. 225s against a normal 140–175s is provider latency — everything passed, unlike the 5x blowup that produced five 300s timeouts on 09-03.The item that needed probing
We run
-p --output-format stream-jsonand the PreToolUse hook bridge denies tools as a matter of course. Gate B does not exercise the deny path — the suite's only permission test is claude's — so it was probed on both paths, and they differ in a way that matters.agy's own gate (omitting
--dangerously-skip-permissions— not our path):An empty reply with the refusal reported only in a field we do not read.
Our path (
--dangerously-skip-permissions+ an always-deny.agents/hooks.jsonmatching whatantigravity_hook.rs::hooks_json_bodyinstalls):The reply is accurate — the agent states the refusal instead of claiming success. So
denied_actionsis emitted only on a path we never take, and it is additive regardless:wire.rsdoes not usedeny_unknown_fields, so an unknown field cannot break deserialization.Both captures are in the record as
probe-hook-deny.ndjsonandprobe-own-gate-deny.ndjson.Loose thread, recorded rather than glossed
Neither probe produced an
error_messagestep, andtranslate.rs:289-292incrementsfailed_stepsonly on those — soANTIGRAVITY_STEPS_FAILEDdoes not fire on a hook denial, the safety net whose own comment (wire.rs:44-46) calls counting those steps "the only way to notice".Whether that is new is not established. The comment cites an earlier observation ("four
error_messagesteps, terminal SUCCESS, reply 'DONE'"), and agy cannot be A/B tested — running an older copy self-updates it. What is verified is that on 1.1.27 the reply is honest, which is what the notice existed to compensate for. Any change there is a source PR, not part of a bump.Also in our favour
We resume via
--conversation, so dropped history would surface as a resumed session missing its last turn.Not our surface
Stricter MCP argument validation (gate B drives that path and it passed),
/model <name> <prompt>,/settingsverbosity text, artifact viewer scrolling, Mermaid rendering,pickerGrouping, Vim?,/logoutspeed, orphaned worktree cleanup, SQLite WAL checkpointing. The newconversation_titlefield goes to custom status-line and window-title scripts, not the print-mode stream — noted because a standing follow-up asks about agy-generated titles, and this is not that channel.Flag surface
--help1.1.25 → 1.1.27 addsremote-controland removes nothing;models --helpis byte-identical. Diffed against the captures the previous run stored, not by re-running the 1.1.25 binary. 1.1.27's captures are stored here.Tests
Pinned assertions moved with the constant, including the literal verified-release case.
cargo test -p aionui-session --lib cli_version: 14/14. Clippy clean, fmt clean.Record:
~/aion/protocols/samples/antigravity-cli/1.1.27/Constants and record only — no source change.