Skip to content

Fix OpenCode provider yielding zero usage (#392)#394

Merged
iamtoruk merged 1 commit into
mainfrom
fix/opencode-zero-usage
May 24, 2026
Merged

Fix OpenCode provider yielding zero usage (#392)#394
iamtoruk merged 1 commit into
mainfrom
fix/opencode-zero-usage

Conversation

@iamtoruk
Copy link
Copy Markdown
Member

Summary

  • Broaden part type recognition: tool-call, tool_call, tool-result, tool_result, reasoning, file now count as activity (previously only text and tool)
  • Accept role: "model" as equivalent to role: "assistant"
  • Fall back to data.usage.{input_tokens, output_tokens, ...} when data.tokens is absent
  • Fall back to data.model when data.modelID is absent
  • Add session-level token fallback: when per-message parsing yields zero calls, read aggregated tokens from session row columns (tokens_input, tokens_output, etc.)
  • Add --verbose diagnostic showing parse/skip counts when zero calls are yielded

Test plan

  • All 43 OpenCode provider tests pass (4 new tests added)
  • Full suite passes (979 tests)
  • Reporter confirms fix resolves their zero-usage issue

Closes #392

Broaden message/part parsing to handle OpenCode versions that store
tokens at the session level, use alternative field names, or emit
different part type identifiers. Adds session-level token fallback
when per-message parsing yields nothing.

Closes #392
@iamtoruk iamtoruk merged commit 820a5bd into main May 24, 2026
3 checks passed
@iamtoruk iamtoruk deleted the fix/opencode-zero-usage branch May 24, 2026 17:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

OpenCode provider returns zero usage although opencode.db has sessions/messages/parts.

1 participant