price-table re-sync — deepseek-v4.1-flash and 173 price corrections from pi-ai 0.87.1
Costs were rendering '—' for tonight's extraction runs. Root cause: the pi family bump (df1328e, 0.85.1 -> 0.87.1) added deepseek-v4.1-flash to the shipped catalogs, but scripts/sync-pricing.ts was never re-run after it — src/core/prices.ts was still the 2026-09-25 generation. The design itself is sound and matches the owner's expectation: nothing stores dollars; records keep tokens + model string; callCost infers at read time from PRICES[model]. So the re-sync retroactively re-prices every run the moment the entry lands. - npx tsx scripts/sync-pricing.ts: 1495 keys (+314/-173 lines); openrouter:deepseek/deepseek-v4.1-flash = 0.15/0.6/0.003 (matches the catalog the picker serves) - glm-5.3-flash price drift (0.075/0.25 -> 0.15/0.5, cacheRead 0.015 -> 0.05): four pinned-cost tests re-derived (usage, cost-summary via callCost, activity-dock, stats-bar) - prices.ts header: dropped the false bare-slug-legacy claim (the table has zero bare keys; sync emits provider-qualified only) and noted the forgetting-the-sync failure mode
This commit is contained in:
@@ -57,9 +57,9 @@ describe("stats bar", () => {
|
||||
// catalog join lands with the UI chunk), so the meter renders
|
||||
// USAGE-ONLY (owner amendment: never a fallback window).
|
||||
assert.match(html, /data-testid="stats-context">11k</);
|
||||
// pi catalog price 0.075/0.25 per 1M: each turn 10k×0.075 + 1k×0.25
|
||||
// = $0.001 → two = $0.0020
|
||||
assert.match(html, /data-testid="stats-cost">\$0\.0020</);
|
||||
// pi catalog price 0.15/0.5 per 1M (drifted in pi-ai 0.87.1):
|
||||
// each turn 10k×0.15 + 1k×0.5 = $0.002 → two = $0.0040
|
||||
assert.match(html, /data-testid="stats-cost">\$0\.0040</);
|
||||
// model button label: SSR (record fetch not run yet) reads "—" —
|
||||
// the strong slot arrives client-side via GET /api/settings; the
|
||||
// turn log below still folds the ACTUAL models billed
|
||||
|
||||
Reference in New Issue
Block a user