Skip to content

chore(cli-version): verify agy against 1.1.20 - #935

Merged
kaizhou-lab merged 1 commit into
mainfrom
chore/bump-agy-0120
Aug 25, 2026
Merged

chore(cli-version): verify agy against 1.1.20#935
kaizhou-lab merged 1 commit into
mainfrom
chore/bump-agy-0120

Conversation

@kaizhou-lab

@kaizhou-lab kaizhou-lab commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Moves VERIFIED_AGY_VERSION from 1.1.19 to 1.1.20.

Gate Result
A — contract DEGRADED — agy publishes no protocol schema; gate B carries the weight
B — live e2e PASS 7/7, 171.02s
C — release notes CLEAR — read from agy changelog on the candidate binary

What supports this bump

Gate B, 7/7 against a manifest-downloaded 1.1.20 whose sha512 was checked before it ran. The suite log reports only version=1.1.20, so it cannot be a green against a different binary.

Gate C read from agy changelog on the candidate itself, captured as changelog-from-cli.txt. The rendered web page is no longer the source — it has been frozen at 1.1.17 since 2026-08-22.

A retracted A/B

1.1.20’s notes say print mode stopped "treating benign tool execution errors and permission denials as fatal run failures". We drive that surface and deny tools routinely, so an A/B was attempted against what was believed to be a retained 1.1.19 binary. That attribution does not hold, and the comparison is retracted.

The two runs did differ — result.status was ERROR in one and SUCCESS in the other — but the "1.1.19" binary rewrote itself mid-probe. Its mtime is 02:02:48, the probe ran at 02:02, and its size is now byte-for-byte 1.1.20’s:

/tmp/agy-1.1.18   mtime=08:47:56  size=177913904  ver=1.1.18   <- untouched
/tmp/agy-1.1.19   mtime=02:02:48  size=179469984  ver=1.1.20   <- self-updated during the probe
/tmp/agy-1.1.20   mtime=08:26:49  size=179469984  ver=1.1.20

agy self-updates any copy of itself that is executed, including one in a temp directory under a version-named path. The path name is not a pin. So the ERROR may be 1.1.19’s behaviour or an artifact of a binary being rewritten under a running process, and nothing here separates them. It is not repeatable either: the manifest now serves 1.1.20 and no 1.1.19 binary exists here or on npm.

Both captures are kept in the record as probe-benign-tool-error-run-{a,b}.ndjson, renamed off their misleading version labels.

What is verified, by reading rather than by probe

translate.rs:80-86 maps the terminal frame, so a result.status other than SUCCESS becomes a failed turn for the user whatever emits it:

let is_error = !r.status.eq_ignore_ascii_case("SUCCESS");
match status {
    "SUCCESS"     => TurnOutcome::EndTurn,
    "INTERRUPTED" => TurnOutcome::Cancelled { .. },
    _             => TurnOutcome::Failed,
}

And the exit code the note talks about is not our channel: conn.rs:805 consults it only when no terminal frame arrived (if !saw_terminal), and result was emitted in both runs.

The other permission note does not reach us

Improved permission management by automatically granting workspace-scoped read access under the default review mode

We never run in that mode: build_argv always passes --dangerously-skip-permissions (argv.rs:76), because agy cannot prompt headlessly, and AionUi gates each call in its own PreToolUse hook bridge. Stated limit: gate B does not exercise that bridge — its only permission test is claude’s — so this rests on the argv and the CLI’s own scoping, not on a live run.

Flag surface

--help 1.1.19 → 1.1.20 adds mic-serve and removes nothing; models --help is unchanged; all nine flags build_argv emits are still present.

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.20/

Constants and record only — no source change.

@kaizhou-lab
kaizhou-lab enabled auto-merge (squash) August 25, 2026 18:08
@kaizhou-lab
kaizhou-lab disabled auto-merge August 25, 2026 18:09
Gate B (live e2e): 7/7, 171.02s, against a manifest-downloaded 1.1.20 whose
sha512 was checked before it ran. The suite log reports only version=1.1.20.

Gate C (release notes): CLEAR, read from 'agy changelog' on the candidate binary
rather than the web page, which has been frozen at 1.1.17 since 08-22.

A retracted A/B. 1.1.20's notes say print mode stopped treating benign tool
errors and permission denials as fatal, so a comparison was run against what was
believed to be a retained 1.1.19 binary. The two runs did differ -- result.status
ERROR vs SUCCESS -- but the attribution does not hold: that binary rewrote itself
mid-probe (mtime 02:02:48, probe at 02:02, size now byte-for-byte 1.1.20's).

agy self-updates ANY copy of itself that is executed, including one in a temp
directory under a version-named path. The path name is not a pin. The ERROR may
be 1.1.19's behaviour or an artifact of a binary rewritten under a running
process, and nothing separates them; it is not repeatable either, since the
manifest now serves 1.1.20. Both captures are kept in the record under neutral
names rather than the misleading version-labelled ones.

What is verified by reading rather than by probe: translate.rs:80-86 maps any
result.status other than SUCCESS to TurnOutcome::Failed, so that field -- not the
exit code the note describes -- is our channel. conn.rs:805 consults the exit
code only when no terminal frame arrived, and result was emitted in both runs.

The other permission note is scoped to agy's default review mode, which we never
run in: build_argv always passes --dangerously-skip-permissions (argv.rs:76) and
gates each call in the PreToolUse hook bridge instead. Stated with its limit --
gate B does not exercise that bridge at all.

No flag was removed: --help adds mic-serve and drops nothing, models --help is
unchanged, and all nine flags build_argv emits are still present.

Record: ~/aion/protocols/samples/antigravity-cli/1.1.20/
@kaizhou-lab
kaizhou-lab enabled auto-merge (squash) August 25, 2026 18:11
@kaizhou-lab
kaizhou-lab merged commit 65f730d into main Aug 25, 2026
6 checks passed
@kaizhou-lab
kaizhou-lab deleted the chore/bump-agy-0120 branch August 25, 2026 18:31
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.

1 participant