Skip to content

[Bug]: Claude quota not displayed — hardcoded Opus 4.5 model keys, missing Opus 4.6 / Sonnet 4.6 / Gemini 3.1 Pro #14

@lyr1cs

Description

@lyr1cs

Bug Description

Claude model quota no longer appears in /mystatus output. The MODELS_TO_DISPLAY array in plugin/lib/google.ts uses hardcoded model keys that are now stale.

Root Cause

// plugin/lib/google.ts (line ~75-84)
const MODELS_TO_DISPLAY: ModelConfig[] = [
  { key: "gemini-3-pro-high", altKey: "gemini-3-pro-low", display: "G3 Pro" },
  { key: "gemini-3-pro-image", display: "G3 Image" },
  { key: "gemini-3-flash", display: "G3 Flash" },
  {
    key: "claude-opus-4-5-thinking",    // ❌ Deprecated since Feb 2026
    altKey: "claude-opus-4-5",           // ❌ Deprecated since Feb 2026
    display: "Claude",
  },
];
  • Claude Opus 4.5 was deprecated on Antigravity in early February 2026. The API no longer returns claude-opus-4-5-thinking or claude-opus-4-5 in the fetchAvailableModels response.
  • Claude Opus 4.6 (claude-opus-4-6-thinking / claude-opus-4-6) is the replacement.
  • Claude Sonnet 4.6 (claude-sonnet-4-6) was never tracked by this plugin.
  • Gemini 3.1 Pro (gemini-3.1-pro-high / gemini-3.1-pro-low) released Feb 19, 2026 — Gemini 3 Pro is being deprecated on Antigravity.

Since extractModelQuotas() does a direct key lookup on data.models[modelConfig.key], stale keys silently produce no output — Claude just disappears.

Additional Issue

The USER_AGENT string is hardcoded to an old Antigravity version:

const USER_AGENT = "antigravity/1.11.9 windows/amd64";

Current Antigravity version is 1.18.3+. This could cause issues if the API starts rejecting old client versions.

Suggested Fix

const MODELS_TO_DISPLAY: ModelConfig[] = [
  { key: "gemini-3.1-pro-high", altKey: "gemini-3.1-pro-low", display: "G3.1 Pro" },
  { key: "gemini-3-pro-image", display: "G3 Image" },
  { key: "gemini-3-flash", display: "G3 Flash" },
  {
    key: "claude-opus-4-6-thinking",
    altKey: "claude-opus-4-6",
    display: "Opus",
  },
  {
    key: "claude-sonnet-4-6",
    display: "Sonnet",
  },
];

Long-term, consider dynamically parsing all Claude/Gemini models from the API response instead of hardcoding specific model keys, to avoid this breaking again when models are updated.

Environment

  • opencode-mystatus: 1.2.4 (latest on npm, last updated Jan 20, 2026)
  • opencode-antigravity-auth: 1.5.5
  • OpenCode CLI: 1.2.9

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions