feat: expose rate limits on usage updates - #334
Open
s-cork wants to merge 2 commits into
Open
Conversation
s-cork
force-pushed
the
stu-dev/usage-updates-main
branch
from
August 25, 2026 09:27
4fa79d5 to
b670a4e
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
usage_updateevents under_meta["_codex/rateLimits"].Why
codex-acpalready stores account rate-limit snapshots for/status, but ACP clients cannot consume the structured values. This exposes the same snapshots without changing the standard ACP usage fields or making clients parse markdown.Rate-limit notifications may omit unchanged values. Merging them with the previous snapshot prevents a rolling update from erasing windows, credits, plan metadata, or spend-control state.
Review the extension shape and event timing first, then the sparse-update merge.
Testing
Rebased onto current
mainat50f69e57ca761ccafd2ca29de7fb591068277516.npm run typechecknpm test: 458 passed, 28 skippednpm run buildgit diff --check origin/main..HEADTests cover deferred emission when rate limits arrive before token usage, immediate refresh after context usage is known, multiple independent limits, and complete-to-sparse updates which omit the ID or name.
Closes #227
AI assisted with implementation, rebase conflict resolution, tests, and PR text.