mirror of
https://github.com/NikkeTryHard/zerogravity.git
synced 2026-04-25 07:05:58 +03:00
[GH-ISSUE #22] [Feature] Add claude-sonnet-4-6-thinking + make /v1/models dynamic from Antigravity model catalog #18
Labels
No labels
bug
enhancement
enhancement
notice
pull-request
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/zerogravity#18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @DarKWinGTM on GitHub (Feb 19, 2026).
Original GitHub issue: https://github.com/NikkeTryHard/zerogravity/issues/22
Summary
Please add support for
claude-sonnet-4-6-thinkingand make model listing dynamic from Antigravity catalog, instead of relying on fixed/hardcoded model maps.Why
Current behavior on deployed proxy shows a fixed subset in
/v1/models:opus-4.6opus-4.5gemini-3-progemini-3-pro-highgemini-3-pro-lowgemini-3-flashclaude-sonnet-4-6-thinkingis not listed.If Antigravity updates/expands model availability, static maps can drift and users miss valid models.
Investigation
Model list can be derived dynamically from the local Antigravity language-server catalog RPC:
Dynamic model catalog fetch path
POST /exa.language_server_pb.LanguageServerService/GetCascadeModelConfigDataconnect-protocol-version: 1clientModelConfigs[]modelOrAlias.modelExisting behavior pattern
This pattern avoids model drift and removes the need to manually update fixed lists whenever upstream model availability changes.
Request
claude-sonnet-4-6-thinking./v1/models(and Anthropic model list endpoint if applicable) to use dynamic Antigravity catalog as source of truth.Suggested acceptance criteria
GET /v1/modelsincludesclaude-sonnet-4-6-thinkingwhen available upstream.Info Diagram (desired flow)
@DarKWinGTM commented on GitHub (Feb 19, 2026):
Additional context:
claude-sonnet-4-6-thinkingis a newly added model that came after Opus 4.6 in the Antigravity model lineup. This is exactly why dynamic model discovery is important: newly introduced models should appear automatically in/v1/modelswithout requiring manual hardcoded updates.@NikkeTryHard commented on GitHub (Feb 19, 2026):
Response
Thanks for the detailed writeup!
Re:
claude-sonnet-4-6-thinking— this is already available assonnet-4.6in the proxy. Bothopus-4.6andsonnet-4.6are thinking models. Just usesonnet-4.6as the model name.Re: Dynamic model catalog — we investigated this and decided against it. Here's the reasoning:
The LS catalog (
GetCascadeModelConfigData) returns labels and model IDs but NOT the protobuf enum numbers we need to build the binary request. Without those, we can't actually route to the model. Each new model still requires reverse-engineering the enum value fromextension.js.More LS interaction = more fingerprint surface. The proxy's core philosophy is "LS as dumb relay" — we send a dummy message, MITM the outbound request, and replace it with real content. Adding runtime catalog polling means extra RPCs that the real webview doesn't make outside of startup, which is a detection vector.
Maintenance tradeoff doesn't justify the complexity. New models get added maybe once every few weeks. Adding a line to
models.rswith the new enum value takes 30 seconds. Building a dynamic discovery system that still can't work without manual enum mapping anyway doesn't save any real effort.When new models appear upstream, we'll add them manually — it's a one-liner per model. PRs welcome if you spot a new model before we do.
Available models:
opus-4.6sonnet-4.6opus-4.5gemini-3-progemini-3-pro-highgemini-3-pro-lowgemini-3-flashClosing as won't-fix for the dynamic catalog part. The specific model (
sonnet-4.6) is already supported.@NikkeTryHard commented on GitHub (Feb 19, 2026):
Thanks for the precious feedback tho!
@DarKWinGTM commented on GitHub (Feb 19, 2026):
Thank you for explain about model mapping.