Repository navigation
Description
docs(ai): quota window-contract inventory verdicts do not reflect the open known-lossy filings — six rows certify or omit parsers with live lossy issues, and turso's row has no verdict at all
Summary
The quota window-contract parser inventory in packages/ai/src/quota/types.ts (the contract's own record, rule 7: "the inventory below stays complete") marks rows KNOWN-LOSSY for the lossy issues that are open against them — that is the established convention: claude's row cites open #1781, meta's row cites open #1777, opencode-go/openrouter cite open #1725. The lossy issues filed since then were never recorded, so six rows now certify (or silently omit) parsers that have live, open, verified lossy filings against exactly the behaviour the row describes, and one row carries no verdict at all. This is the opposite-direction sibling of closed #1909 (stale lossy marks after fixes landed); that issue is closed and does not cover these rows.
Evidence (verified this run, laptop primary at origin/main 5cd3c79fcf)
- antigravity (types.ts:64-67): row says "Conforming". Open fix(ai): antigravity quota summary path publishes figure-less buckets as all-null-percent windows #1917 alleges the summary path (
transformSummary, one of the three transforms this row certifies) publishes figure-less buckets as all-null-percent windows. - claude (types.ts:69-72): row's only KNOWN-LOSSY mark is fix(ai): claude quota transform silently overwrites duplicate limits entries (last wins) — diverges from the #1750 keep-first convention #1781 (duplicates). Open fix(ai): claude quota extra-usage spend publishes negative amounts — "$-5.00 / $10.00", and a negative-only payload still returns ok:true #1919 (extra-usage spend publishes negative amounts, ok:true on a negative-only payload) and open fix(ai): claude quota spend toAmount trusts the wire exponent — exponent 999 publishes "$0.00 / $0.00" for a real $5/$10 spend, exponent -2 inflates it 100x #1920 (spend
toAmounttrusts the wire exponent) are additional lossy cases intoClaudeUsage's spend path, unrecorded. - codex (types.ts:75-77): row says "Conforming (collision qualifiers and the phantom-window guard, fix(ai): codex quota windows keyed only by derived duration label — a missing or shared limit_window_seconds silently drops one window, and an empty window object mints a phantom all-null window #1762)". Open fix(ai): codex quota credits publishes a negative balance — "-5" as the credits_balance label, and a negative-only payload still returns ok:true #1924 alleges the credits path in the same fetch publishes a negative balance as the
credits_balancelabel and returns ok:true on a negative-only payload. - deepseek (types.ts:84-86): row gives no verdict and states its only window "is a credits_balance label, which carries no figure to parse". Open fix(ai): deepseek quota publishes a negative balance — the no-positive fallback bypasses its own >0 filter, so a negative-only payload returns "$-5.00" with ok:true #1928 shows the balance figure IS parsed and published: a negative-only payload returns "$-5.00" with ok:true — the row's premise is contradicted by the filed probe.
- groq (types.ts:87-89): row describes
parseGroqResetSecondsbut gives no verdict on the window construction from rate-limit headers. Open fix(ai): groq quota accepts remaining above the limit — "150 / 100 requests remaining" publishes beside 0% used / 100% remaining #1897 alleges that construction publishes a contradictory window ("150 / 100 requests remaining" beside 0% used / 100% remaining). - opendesign (types.ts:108-110): row says "Conforming (keep-first, zero-limit publishes nothing, unknown durations skipped, test(ai): quota suite pins none of claude / meta-billing / opendesign's pure parsers — billing banner rejects numeric strings, claude transform drops legacy windows when limits is non-empty, coding-plan publishes a zero-limit window #1750)". Open fix(ai): opendesign quota parseCodingPlanWindows publishes out-of-range remaining raw — "-50 / 100 credits" at 100% used, "150 / 100 credits" at 0% used #1879 alleges
parseCodingPlanWindowssplits the window's fields (rule 5): percent clamped while the label publishes raw out-of-range remaining ("-50 / 100 credits", "150 / 100 credits"). - turso (types.ts:116-117): the row ends after naming
tursoWindows— it is the only one of the 13 registry rows with neither a Conforming nor a KNOWN-LOSSY verdict, despite rule 7 requiring the inventory to stay complete andtursoWindowsbeing an exported pure parser.
Control rows verified accurate this run: meta (#1777 open, marked), opencode-go and openrouter (#1725 open, marked), mistral and command-code (conforming, no open lossy filing found), cline-pass (conforming, #1769).
Dedup: searched open + closed issues this run for the inventory/verdict topic — closed #1909 covered only the mistral (#1785) / antigravity (#1768) stale-after-landing flips and is closed; no open issue records the rows above. Each underlying parser defect has its own open issue (cited); this issue is only about the contract's index agreeing with them.
Why it matters
The inventory is where producers, reviewers, and the #1794 program decide where quota-parser risk remains. A row that says "Conforming" for a parser with a live verified lossy filing hides that risk exactly where people look for it, and the deepseek row's "no figure to parse" premise actively misdirects anyone triaging #1928's class. When those underlying issues land, their flips will also have no accurate baseline to flip from.
Acceptance criteria
- Each row above is corrected to match the live state: the open lossy issue(s) recorded as KNOWN-LOSSY marks (the fix(ai): claude quota transform silently overwrites duplicate limits entries (last wins) — diverges from the #1750 keep-first convention #1781/fix(ai): meta quota rolling window keyed only by derived label — a weekly-length rolling window is silently overwritten by the weekly window #1777/test(ai): PR #1722's quota suite pins 4 of its pure parsers — opencode-go's three parsers and openrouter's reset math have none, and opencode-go silently drops windows its siblings would keep #1725 style), or — where triage judges a filing does not make the parser lossy under the contract — the row records that disposition and its reason in one line.
- turso's row gains an explicit verdict (conforming with its pin, or known-lossy with a link), so all 13 registry rows carry one.
- The deepseek row's "carries no figure to parse" wording is corrected regardless of the verdict chosen.
- No production behaviour changes; the shared probe matrix header in
packages/ai/test/quota.test.tsis updated only if a row's pinning claim changes; quota suite stays green.
Activity
dezren39 commentedon Nov 7, 2026
🤖 Agent note · filed
dezren39 commentedon Nov 8, 2026
Task 11094 picked up by repo-worker-opencode on lane 3fe37e8a-c61b-419c-9e97-769ecd264d5d. Revalidating the cited issue states and current main before any inventory edits.
dezren39 commentedon Nov 8, 2026
Current-state triage is reflected in PR #1963. The still-open lossy paths are OpenDesign #1879, Codex #1924, DeepSeek #1928, and Claude duplicate handling #1781. The previously cited #1897, #1912, #1917, #1919, and #1920 findings are closed; their fixes are merged in #1921, #1937, #1940, #1957, and #1949. Turso is explicitly marked conforming from its count-derived label/percentage mapping and tests. PR #1963 is clean; the quota suite passed 148 tests locally, and this repository reports no PR checks.
dezren39 commentedon Nov 8, 2026
Done: PR #1963 merged as dd4438b and issue #1939 is closed. Inventory now reflects the live open lossy findings and landed fixes; no production behavior changed. Validation:
bun test test/quota.test.ts— 148 pass, 0 fail;git diff --check— pass.