-
Notifications
You must be signed in to change notification settings - Fork 784
feat(usage): user-configurable per-model cost overlay (providers.<name>.modelCosts) #1010
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
Merged
Wibias
merged 50 commits into
lidge-jun:dev
from
harryzhou2000:feat/provider-cost-overlay
Aug 10, 2026
Merged
Changes from 46 commits
Commits
Show all changes
50 commits
Select commit
Hold shift + click to select a range
680590d
feat(usage): user-configurable per-model cost overlay
harryzhou2000 70206f5
docs(gui): docstring coverage and review fixes for modelCosts
harryzhou2000 c17366f
docs(i18n): document Cost4 fields in localized pages, align ru termin…
harryzhou2000 5f486b0
fix(usage): review fixes — __proto__ modelCosts row and registry test…
harryzhou2000 00cfe0b
docs(usage): screenshot of the provider-configured price overlay in t…
harryzhou2000 cd956e8
fix(usage): sanitize cost-overlay rows on load and in the registry
harryzhou2000 05d5d97
fix(usage): try the exact provider name before collapsing user overlays
harryzhou2000 16eba40
fix(usage): redact modelCosts keys and bind the usage cache to overla…
harryzhou2000 e5dcd00
test(usage): clear the overlay registry in the cache-invalidation tes…
harryzhou2000 d141779
fix(usage): redact provider names in modelCosts management errors
harryzhou2000 2fef5ce
fix(usage): preserve modelCosts on provider overwrite and Alibaba mig…
harryzhou2000 95397f6
fix(usage): redact provider names in modelCosts schema errors
harryzhou2000 0795518
fix(usage): carry modelCosts through OpenAI tier migration; redact re…
harryzhou2000 39021e3
fix(usage): harden overlay redaction, canonical-openai validation, an…
harryzhou2000 3da9bb1
fix(usage): audit follow-up — empty overlay guard, DTO drop, legacy s…
harryzhou2000 fd9e3cd
docs(i18n): source-neutral matched-key label and Usage reprice scope
harryzhou2000 771a48b
fix(usage): bound overlay rates and refresh registry after OAuth reco…
harryzhou2000 27b3ae6
test(docs): audit follow-up for the rate bound
harryzhou2000 978fb23
fix(usage): preserve modelCosts across OAuth provider upserts
harryzhou2000 f0235e0
fix(oauth): preserve modelCosts across key-login provider replacement
harryzhou2000 fcfa689
fix(i18n): user-configured zh labels and source-agnostic unmatched-pr…
harryzhou2000 d198ac1
fix(oauth): push the merged key-login row to a running proxy
harryzhou2000 1e9a4fb
fix(providers): rewrite legacy openai-multi modelCosts keys during mi…
harryzhou2000 95775ee
fix(providers): stable precedence for legacy modelCosts key collisions
harryzhou2000 fcb38af
fix(providers): preserve prototype-named modelCosts keys during migra…
harryzhou2000 714167c
fix(config): reject extra fields inside modelCosts rows
harryzhou2000 6418a9d
test(config): assert modelCosts validation errors never echo credenti…
harryzhou2000 5688202
fix(cli/config): harden modelCosts display and preservation paths
harryzhou2000 6e3a199
fix(config): refresh overlay registry only after a successful changed…
harryzhou2000 17fc142
fix(usage): isolate pricing namespace for configured suffix-shaped pr…
harryzhou2000 a00eb37
docs(ja): state quota non-effect explicitly in modelCosts row
harryzhou2000 79b351f
docs(ja): clarify custom providers may target any OpenAI-compatible e…
harryzhou2000 1296f28
fix(usage): reconcile user cost overlays from disk across processes
harryzhou2000 5b06151
fix(usage): review follow-ups for live overlay reconciliation
harryzhou2000 b02a905
fix(usage): stop cost-overlay reconciler on normal server stop
harryzhou2000 7090b49
fix(usage): owner-scoped reconciler lifecycle within guarded startup
harryzhou2000 5f1a6bb
fix(usage): recompute/clear disk-only preservation on reconciler owne…
harryzhou2000 bec47b9
fix(usage): owner-scoped reconciler teardown and honor min poll interval
harryzhou2000 913fdcf
fix(usage): strict legacy overlay shape, one-shot preservation clear,…
harryzhou2000 ace6296
test(usage): reset overlay registry in key-login afterEach
harryzhou2000 7db360d
fix(usage): stamp usage-summary cache with the captured overlay version
harryzhou2000 84fc82d
fix(usage): widen config change stamp, strengthen cadence/overlay tests
harryzhou2000 9329797
fix(config): redact provider names in all validation paths; clarify t…
harryzhou2000 02f5113
fix(usage): owner-aware disk-only preservation across live owners
harryzhou2000 d3cf248
fix(usage): let live owners delete preserved providers
Wibias af7937a
fix(usage): address overlay review findings
Wibias 70150d9
fix(ci): stop overlay reconciler leak and CLI spawn hangs on shard 4
Wibias 5dfeb4b
fix(ci): isolate api-usage tests into dedicated Linux job
Wibias c840973
Merge branch 'dev' into feat/provider-cost-overlay
Wibias 72b146b
test(usage): observe invalid reconcile via test counter
Wibias 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
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
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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.
Uh oh!
There was an error while loading. Please reload this page.