mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-05-17 03:56:45 +00:00
* Fix OpenCode MCP usage reporting * Move OpenCode MCP changelog entry to Unreleased section --------- Co-authored-by: ozymandiashh <234437643+ozymandiashh@users.noreply.github.com> Co-authored-by: iamtoruk <hello@agentseal.org>
40 lines
1.6 KiB
Markdown
40 lines
1.6 KiB
Markdown
# OpenCode
|
|
|
|
OpenCode (sst/opencode).
|
|
|
|
- **Source:** `src/providers/opencode.ts`
|
|
- **Loading:** lazy (`src/providers/index.ts:59-75`)
|
|
- **Test:** `tests/providers/opencode.test.ts` (676 lines, the largest provider test)
|
|
|
|
## Where it reads from
|
|
|
|
Default `~/.local/share/opencode/` or `$XDG_DATA_HOME/opencode/`. The discovery walk picks up `opencode*.db` files (`opencode.ts:71-88`).
|
|
|
|
## Storage format
|
|
|
|
SQLite.
|
|
|
|
## Caching
|
|
|
|
None.
|
|
|
|
## Deduplication
|
|
|
|
Per `<sessionId>:<messageId>`.
|
|
|
|
## Quirks
|
|
|
|
- **Schema validation is loud.** When a required table is missing, the parser logs an actionable warning telling the user which table is gone and what version of OpenCode it expects. This is the right behavior; do not silently swallow these.
|
|
- Source paths are encoded as `<dbPath>:<sessionId>`.
|
|
- Each message's `parts` are indexed; preserving the order matters for reasoning-token correctness.
|
|
- Tokens are reported across `input`, `output`, `reasoning`, `cache.read`, and `cache.write`. Anthropic semantics.
|
|
- External MCP tools are stored as `<server>_<tool>` names (for example
|
|
`clickup_clickup_get_task`). The provider normalizes those to CodeBurn's
|
|
canonical `mcp__<server>__<tool>` names before aggregation so shared MCP
|
|
panels and `optimize` findings count OpenCode usage.
|
|
|
|
## When fixing a bug here
|
|
|
|
1. The 558-line test suite catches a lot. Run `npm test -- tests/providers/opencode.test.ts` before and after any change.
|
|
2. If the bug is "missing table" warning, do not catch and silence it. Either upgrade the version expectation in the parser or document the breaking schema change.
|
|
3. If the bug is "reasoning tokens off by one", check the parts index ordering.
|