-
Notifications
You must be signed in to change notification settings - Fork 3.4k
v0.8.66: Fail check-facts on unmapped ApiProvider variants #3772
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't workingdocumentationImprovements or additions to documentationImprovements or additions to documentationrelease-blockerMust be fixed before the next releaseMust be fixed before the next releasereliabilityReliability, flaky behavior, retries, fallbacks, and robustnessReliability, flaky behavior, retries, fallbacks, and robustnessv0.8.66Targeting v0.8.66Targeting v0.8.66
Milestone
Description
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingdocumentationImprovements or additions to documentationImprovements or additions to documentationrelease-blockerMust be fixed before the next releaseMust be fixed before the next releasereliabilityReliability, flaky behavior, retries, fallbacks, and robustnessReliability, flaky behavior, retries, fallbacks, and robustnessv0.8.66Targeting v0.8.66Targeting v0.8.66
Projects
StatusShow more project fields
Done
Why this matters
The website facts gate should prevent provider inventory drift. Today, a new
ApiProvidervariant can be omitted from the website provider map,facts-libwill print an error, andcheck:factscan still pass if the committed facts also lack that provider. That means the public provider map can silently fall behind the Rust provider enum.Current behavior
web/scripts/facts-lib.mjsdetects unmappedApiProvidervariants:web/scripts/facts-lib.mjs:104-109But then deliberately returns only the mapped providers:
web/scripts/facts-lib.mjs:110-114web/scripts/check-facts.mjscompares committed facts against freshly derived facts and exits success when there are no diffs:web/scripts/check-facts.mjs:105-109Current local evidence:
So the gate reports missing provider mappings and still passes.
Desired behavior
npm run check:factsshould fail when RustApiProvidervariants are neither mapped nor intentionally excluded.Repro or evidence
Run:
Current output logs unmapped providers (
Openmodel,Sakana) and still printsOK — committed facts.generated.ts matches workspace.Acceptance criteria
cd web && npm run check:factsexits non-zero whenderiveProviders()finds unmapped non-excludedApiProvidervariants.PROVIDER_LABEL_MAPorEXCLUDED_PROVIDERS.OpenmodelandSakanaare either mapped for the website provider list or intentionally excluded with code comments.cd web && npm run check:factspasses only after provider mapping/exclusion is complete.Related