Repository navigation
feat(server): report OpenCode usage alongside Codex and Claude Code #11472
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
atmikshetty
wants to merge
9
commits into
pingdotgg:main
from
atmikshetty:feat/opencode-usage-reporting
Closed
Changes from 6 commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
0181b2d
feat(contracts): add OpenCode to the usage provider union
atmikshetty 9cc2f0f
feat(server): report OpenCode usage from its local database
atmikshetty 58a7460
feat(web): show OpenCode in the usage report
atmikshetty 29bab12
feat(mobile): show OpenCode in the usage report
atmikshetty cae0bd3
docs: say the usage report covers OpenCode
atmikshetty 7f26992
Merge branch 'main' into feat/opencode-usage-reporting
atmikshetty 95b6dfd
fix(server): read OpenCode usage without stalling or losing rows
atmikshetty bb5b189
Merge remote-tracking branch 'origin/feat/opencode-usage-reporting' i…
atmikshetty 2e03e71
fix(server): drop deleted OpenCode rows and report unreadable databases
atmikshetty File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟡 Medium
usage/UsageService.ts:440Successive usage reports omit newly committed OpenCode tokens and cost while the process is running.
scanOpenCodeDatabase's unchanged-database fast path checks onlyopencode.db, but SQLite WAL-mode commits updateopencode.db-walwithout changing the main file, so the persistentopenCodeStatereuses stale records until a checkpoint modifiesopencode.db; include the WAL sidecar in the change gate (or otherwise invalidate the cache when WAL content changes).Also found in 1 other location(s)
apps/server/src/usage/usageOpenCodeDatabase.ts:265🤖 Copy this AI Prompt to have your agent fix this:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed, and reproduced first: with a writer connection open, a commit leaves opencode.db byte-identical and only grows the -wal sidecar, so the gate really did serve stale records until a checkpoint. The sidecar's size and mtime are now part of the change check, and a missing sidecar is recorded as a valid state rather than an error, since not every database is in WAL mode. A test asserts the main file did not move before checking that the cache was invalidated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, I'm unable to act on this request because you do not have permissions within this repository.