Back to Home

OpenCode 2.2.2: Go Limits Now Show Reset Times

OpenCode 2.2.2 shipped on 29 October 2026 with three entries filed under bug fixes that read like polish and behave like infrastructure. Go usage-limit messages in the terminal UI now carry the reset time and a link to the account page. The desktop app adds reset details, the same account link, and a composer tray for Go limits. The TUI also types and displays usage-limit errors correctly for both Go and ChatGPT, so a quota stop no longer presents itself as a generic failure.

None of that changes what a Go allowance contains, what counts toward it, or when it resets, and the release notes are explicit about the omission. That is the interesting part. The numbers were already model-specific and split across three separate windows. What shipped is instrumentation for a pricing surface developers had been reverse-engineering from failed requests.

What v2.2.2 Actually Changes

Three user-visible deltas, all confined to how limits are reported rather than enforced:

  • Terminal UI: Go usage-limit messages carry the reset timestamp plus an account-page link.
  • Desktop app: reset details, an account link, and a composer tray that keeps Go usage in view while you write.
  • Error typing: usage-limit errors are now typed and rendered correctly for Go and ChatGPT instead of collapsing into an untyped failure.
  • Scope: no change to limit sizes, reset cadence, or accounting rules.

Typed errors are the least glamorous item and probably the most useful. An agent loop that cannot tell "quota exhausted until 14:00" apart from "socket closed" retries the wrong thing. It burns backoff, then either spams an endpoint that will refuse it or dies halfway through a task with a stack trace pointing nowhere. Once the error type is explicit, harness code can branch on it, wait out the reset, or fall through to another provider on purpose rather than by accident.

The composer tray solves a timing problem. Limits used to be discovered at failure time, which is the worst possible moment: mid-edit, half a refactor deep, with the context window already paid for. Moving the readout into the composer turns a blocking event into ambient information, the same shift that made token counters standard furniture in IDEs.

Vertical integration explains why OpenCode can ship this and most agent wrappers cannot. The same company sells the agent, the routing, and the subscription, so a limit message is a product surface rather than a resold supplier's error string. A tool that fronts someone else's API can only forward whatever that API decides to return.

The Metering Model Behind the Message

Reading the message correctly requires the plan's arithmetic. Go is a fixed monthly subscription at $10, with Go Plus at $40 for higher allowances and fewer interruptions. Both meter open-weight models across three overlapping windows: a five-hour request allowance, a weekly allowance, and a monthly usage pool. Allowances are per model, not pooled into one number, and the catalogue spans roughly 30 models.

  • DeepSeek V4.1 Flash: 43,330 requests per five hours on Go, 86,670 on Plus.
  • MiMo-V2.6-Flash: 30,100 on Go, 60,200 on Plus.
  • GLM-5.3-Flash: 6,320 on Go, 18,960 on Plus.
  • Qwen3.7 Plus: 4,300 on Go, 12,900 on Plus.
  • GPT 6 Luna: 4,230 on Go, 16,920 on Plus.
  • Kimi K3: 110 on Go, 440 on Plus. Kimi K3.1 Pro: 147 on Go, 588 on Plus.

The spread runs two orders of magnitude inside one plan. A Kimi K3 allowance of 110 requests per five hours is a careful afternoon. DeepSeek V4.1 Flash at 43,330 is a batch job. The pricing page also quotes a monthly dollar value per model, from $15 to $100, which is the honest way to read a fixed-price plan: model selection, not plan tier, decides whether you hit a wall.

Two escape hatches soften that wall. When a Go allowance runs out, free models stay available on their own daily cap, and Extra Usage draws on prepaid credit instead of stopping requests outright. Go Teams starts with Extra Usage switched on, which is a fair signal of where the product expects teams to settle.

One default deserves attention in any technical review. Go blocks paid endpoints that train on your requests unless an owner flips the setting under Settings > Privacy, and retention terms vary by model. That is a firmer stance than most subscription bundles take, and it quietly decides whether a regulated team can use the plan at all.

The general lesson is unglamorous. Quotas are part of the interface, not an implementation detail underneath it. A release that only renders reset times looks trivial in a changelog, yet it removes the most expensive part of a limit: the uncertainty over whether you are blocked, throttled, or simply broken. OpenCode 2.2.2 does not buy anyone more requests. It tells you, in the pane you are already staring at, exactly when the requests come back.

Comments

No comments yet. Be the first to share your thoughts!