Skip to content

fix(parser): preserve Antigravity CLI effort for experimental serving variants - #1594

Merged
mariusvniekerk merged 6 commits into
kenn-io:mainfrom
BUKOWSKIREAL:fix/antigravity-exp-b-model-effort
Sep 5, 2026
Merged

mariusvniekerk merged 6 commits into
kenn-io:mainfrom
BUKOWSKIREAL:fix/antigravity-exp-b-model-effort

Conversation

@BUKOWSKIREAL

@BUKOWSKIREAL BUKOWSKIREAL commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Antigravity CLI 1.1.24 can store an experimental serving identifier such as gemini-3.7-flash-exp-b in generation metadata while the covering executor metadata records the effort-qualified product model, such as gemini-3.7-flash-high. The parser previously required the generation value to equal the executor's base slug, so the serving identifier leaked into usage events and split one model's dashboard accounting.

This change applies the executor range to both SQLite gen_metadata and preferred .trajectory.json sidecar generations. It recognizes only the observed -exp-b serving suffix when matching generation metadata to a covering executor range. Complete display labels and explicitly effort-qualified generation models remain authoritative, unmatched or missing executors preserve the raw generation model, and steps outside every declared executor range are not guessed. Existing archived rows are reparsed through data version 98 so historical message and usage records receive the correction.

The Antigravity format inventory now pins the official CLI 1.1.24 release and records the observed field 19 variant. Generic -exp and hypothetical serving suffixes remain distinct until evidence supports normalizing them.

The shared model-resolution and executor-range behavior is in internal/parser/antigravity.go; sidecar attribution is in internal/parser/antigravity_cli.go; regression coverage is in internal/parser/antigravity_test.go. The archive reparse boundary is in internal/db/db.go, and provenance is documented in docs/internal/session-format-sources.md.

Closes #1593.

@BUKOWSKIREAL
BUKOWSKIREAL marked this pull request as draft September 2, 2026 12:30
@roborev-ci

roborev-ci Bot commented Sep 2, 2026

Copy link
Copy Markdown

roborev: Combined Review (c882c16)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 1m15s

@roborev-ci

roborev-ci Bot commented Sep 2, 2026

Copy link
Copy Markdown

roborev: Combined Review (f379882)

Verdict: One Medium-severity issue found; otherwise no security-sensitive concerns.

Medium

  • internal/parser/antigravity.go:937-940 — When an executor model has a different base, the generation model is still stripped, e.g. gemini-3.7-flash-exp-b becomes gemini-3.7-flash, losing the original model identity. Preserve generationModel for mismatched executors; normalize only when no executor exists or matching executor metadata applies.

Reviewers: 2 done | Synthesis: codex, 7s | Total: 2m36s

@roborev-ci

roborev-ci Bot commented Sep 2, 2026

Copy link
Copy Markdown

roborev: Combined Review (6070f2a)

Verdict: One medium-severity model-attribution bug requires attention.

Medium

  • internal/parser/antigravity.go:937-950 — Normalizing both models strips explicit effort suffixes from generationModel. This causes conflicting models such as gemini-3.7-flash-low (generation) and gemini-3.7-flash-high (executor) to be treated as a match and incorrectly relabeled as high. Preserve an already effort-qualified generation model while stripping only experimental suffixes, and add a conflicting-effort regression test.

Reviewers: 2 done | Synthesis: codex, 7s | Total: 3m25s

@roborev-ci

roborev-ci Bot commented Sep 2, 2026

Copy link
Copy Markdown

roborev: Combined Review (5560042)

Verdict: One medium-severity correctness issue remains.

Medium

  • internal/parser/antigravity.go:934-936 — Model normalization applies only to SQLite protobuf metadata. Preferred .trajectory.json sidecars copy generatorMetadata directly, allowing ...-exp-b models to remain unqualified in messages and usage events. Apply executor-aware model resolution to sidecar metadata and add a covering-sidecar test.

Reviewers: 2 done | Synthesis: codex, 6s | Total: 4m12s

@roborev-ci

roborev-ci Bot commented Sep 2, 2026

Copy link
Copy Markdown

roborev: Combined Review (ba1c902)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 3m29s

@roborev-ci

roborev-ci Bot commented Sep 2, 2026

Copy link
Copy Markdown

roborev: Combined Review (6513c69)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 3m29s

@roborev-ci

roborev-ci Bot commented Sep 3, 2026

Copy link
Copy Markdown

roborev: Combined Review (bcf1a59)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 2m35s

@mariusvniekerk mariusvniekerk self-assigned this Sep 3, 2026
@mariusvniekerk
mariusvniekerk force-pushed the fix/antigravity-exp-b-model-effort branch from bcf1a59 to 31ea14d Compare September 4, 2026 02:58
@roborev-ci

roborev-ci Bot commented Sep 4, 2026

Copy link
Copy Markdown

roborev: Combined Review (31ea14d)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 3m17s

@mariusvniekerk
mariusvniekerk force-pushed the fix/antigravity-exp-b-model-effort branch from 31ea14d to b537ea5 Compare September 4, 2026 16:44
@roborev-ci

roborev-ci Bot commented Sep 4, 2026

Copy link
Copy Markdown

roborev: Combined Review (b537ea5)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 4m52s

BUKOWSKIREAL and others added 6 commits September 5, 2026 00:57
… variants

Google's Cloud Code API returns 'gemini-3.7-flash-exp-b' in generation
metadata field 19 while executor metadata field 28 contains
'gemini-3.7-flash-high'.

Normalize base models for both the executor and generation model by
stripping '-exp-b' and '-exp' suffixes so the effort-qualified executor
model is properly applied instead of leaking the raw serving variant.

Closes kenn-io#1593.
In ongoing Antigravity CLI sessions, new steps beyond the latest
executor checkpoint range should inherit the latest executor's model
instead of dropping down to the un-effort-qualified generation model.
Also ensure generationModel is normalized when executorModel is absent.
…cutors

Keep generationModel intact when executorModel is empty or when the
executor has a different base model. This avoids inadvertently stripping
effort suffixes or experimental variant identifiers when no matching
executor metadata applies.
@BUKOWSKIREAL
BUKOWSKIREAL force-pushed the fix/antigravity-exp-b-model-effort branch from b537ea5 to b5a5a00 Compare September 4, 2026 17:00
@BUKOWSKIREAL

Copy link
Copy Markdown
Contributor Author

Rebased onto latest main (126e07a). Conflict resolution: #1609 (Pi skill attribution) landed first and took dataVersion = 98, so the Antigravity reparse boundary in this PR was renumbered 98 → 99 (both version comments kept in internal/db/db.go, both boundary tests kept in db_test.go). No code changes otherwise; build and all parser/db tests pass locally.

@roborev-ci

roborev-ci Bot commented Sep 4, 2026

Copy link
Copy Markdown

roborev: Combined Review (b5a5a00)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 2m29s

@mariusvniekerk
mariusvniekerk merged commit 5d08aa2 into kenn-io:main Sep 5, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Antigravity CLI parser splits Gemini 3.7 Flash usage between gemini-3.7-flash-high and gemini-3.7-flash-exp-b

2 participants