* Add OpenCode Go usage API support
* Preserve OpenCode Go Zen balance with API usage
* Update OpenCode Go capability gate
* Format OpenCode Go API overlay
* feat: per-model cost breakdown for OpenCode Go's daily cost history
Extract each local assistant message's modelID from opencode.db (the
real model behind the constant opencode-go Zen-proxy providerID) and
group cost/request counts by (day, model) instead of just by day, so
the shared Cost history chart shows a per-model breakdown for
OpenCode Go the same way it already does for Claude/Codex. Rows with
no modelID fall back to an "unknown" bucket instead of being dropped.
* fix: use lowercase docs/claude.md link to pass case-sensitive CI lint
macOS resolves docs/CLAUDE.md to the same file as docs/claude.md, but
the Linux lint runner's case-sensitive filesystem doesn't, failing the
documentation-link check.
* fix: normalize the trimmed model id when grouping OpenCode Go costs
The grouping key used the untrimmed modelID even though emptiness was
checked against the trimmed value, so a model id with incidental
leading/trailing whitespace would form its own bucket instead of
merging with the clean value for the same model. Group by the trimmed
value consistently, and add regression tests for whitespace-only and
whitespace-padded model ids.
Mirrors the Codex/Claude menu structure: the top rate-limit pane stays
submenu-free, a "Plan Usage" row hover-expands into 5-hour/weekly/monthly
history tabs, and a "Cost" row hover-expands into a daily $ chart sourced
from the local opencode-go SQLite history (~/.local/share/opencode/opencode.db).
The web-sourced fetch strategy best-effort enriches its rolling/weekly
percentages with the local daily buckets (opencode.ai has no daily-
granularity endpoint), but skips that local read entirely when the user
explicitly selects Web-only source mode.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>