Skip to content

fix(models): verify free-tier evidence and reject variable-price Kilo routing - #17138

Merged
diegosouzapw merged 4 commits into
release/v3.8.52from
fix/17028-verified-free-discovery-20261019
Oct 19, 2026
Merged

diegosouzapw merged 4 commits into
release/v3.8.52from
fix/17028-verified-free-discovery-20261019

Conversation

@diegosouzapw

@diegosouzapw diegosouzapw commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Kilo's openrouter/auto-beta router reports variable prices (-1), but its static catalog row made it look free even without a verified free payload. Remove that unconditional grant and cover free badges/import with a regression; retain the genuinely free auto router.

Audit eight exact Kilo model IDs against the public API and two Gemini IDs against Google's pricing page. Evidence records increase from 3 to 13, legacy research debt falls from 71 to 60, and the catalog now has 467 entries. Keep the immutable legacy seed and debt ratchet unchanged. Update affected English counts and the same three numeric contexts in all 66 README mirrors.

Related Issues

Refs #17028. This is a partial audit, not complete resolution of the issue.

Target Branch

  • Active release/v3.8.52; reconciled to 6ba34bc130c11773baefffb07f7c4846fd243030.
  • Feature deferral: not applicable.

Validation

  • Change type: provider catalog / documentation.
  • Regression failed before removal, then 60 focused tests passed with zero failures/skips, rerun after base reconciliation.
  • npm run typecheck:core.
  • Focused ESLint, file-size, test-discovery, changelog-integrity and mutation-test-coverage registration.
  • Free-catalog evidence gate against the pinned release base.
  • npm run check:docs-all; counts, links and fabricated-reference checks pass.
  • Automated tests added/updated for production changes.
  • Full lint/unit/Vitest/coverage/build and current required CI remain pending.

Tests Added Or Updated

  • tests/unit/kilo-variable-price-free-catalog-17028.test.ts: ID-only, variable and positive prices cannot get a free badge or free-only import; verified free route remains available.
  • tests/unit/siliconflow-paid-free-17028.test.ts: measured catalog total updated; paid/unknown protections remain.
  • tests/unit/build/free-catalog-evidence.test.mjs: bootstrap fixture intersects the frozen seed with live catalog identities, preserving rejection of reintroduced debt in PR, merge-group and push events.

Coverage Notes

The focused 60-test run covers public free-model/import decisions, SiliconFlow paid-evidence persistence, catalog policy and CLI baseline comparison. The new Kilo assertion was RED before the change. No final coverage percentage or mutation score is claimed. Dependencies were physically borrowed from the shared checkout; this is not a clean-install certificate.

Reviewer Notes

Sources: Kilo public model list, Kilo gateway documentation, Gemini pricing, checked October 19, 2026. Capacity, account restrictions and pricing changes still apply; these records do not guarantee billing protection.

SiliconFlow's global Qwen3-8B page lists paid input/output, while Chinese partner examples describe free access in a different context. ID-only model discovery has no price/entitlement proof, so this PR does not invent a global free allowlist. Explicit live free evidence and paid veto behavior remain unchanged.

The README mirrors already had stale source provenance before this patch. Only verified numeric contexts and their target byte hashes are updated; source/section provenance is deliberately preserved. The existing broader i18n incident #15306 remains open, and this PR does not certify the whole release as green.

CI follow-up: translated counts

The first CI candidate d21aa1e90babd233cc4d62505893261c5629fab7 (base 6ba34bc + head fb04449e) exposed one new drifted source: FREE_TIERS, in addition to 17 already present on that base. The follow-up changes exactly two numbers in each of its 66 mirrors (468→467 total; 13→12 training disclosures). Before editing, every source/target hash and section hash matched the old source; the English semantic delta was proven to contain only these numbers, with Prettier table-spacing changes. Only this document's verified numeric provenance was advanced. README's pre-existing source drift remains visible.

After the follow-up, check:docs-all passes and translation drift returns to the same 17 baseline sources, with FREE_TIERS absent. This does not turn the overall Docs Sync gate green: the existing translation work and all current required CI remain pending.

@github-actions

Copy link
Copy Markdown
Contributor

CI Coverage Report

  • Coverage job: skipped
  • PR test policy: success

Coverage artifact was not available for this run.

Resolve the README mirror conflicts by keeping the release's re-translated mirrors and re-applying
only this PR's catalog-count edit (478 -> 467, in each locale's digit script) in the free-tier
paragraph, the budget-card alt text and the FREE_TIERS row. Also correct the remaining stale count
in the README catalog paragraph (468/478 per-model rows -> 467) so the README states one total.
.i18n-state.json: release state + this PR's FREE_TIERS entry; README mirror target hashes refreshed
only (README source provenance was already stale on the release, so no section is certified).
…2 after dropping auto-beta

The free-catalog expansion test pinned at least 13 Kilo rows; this PR removes the variable-price
openrouter/auto-beta row, leaving 12 verified free rows. The screenshot budget card still printed
468 models; regenerated from the catalog (467).
diegosouzapw added a commit that referenced this pull request Oct 19, 2026
…17137)

Merged via /merge-batch (2026-10-19). Board validation on the current base together with #17138: npm run lint 0, typecheck core + open-sse 0, check:docs-all 0, file-size, test-masking, changelog-integrity, env-doc-sync, complexity, cognitive, provider-consistency 0; 187 affected unit files 2093 pass with only the 3 base-red #15306 i18n state tests failing. CI reds are inherited (i18n state tests, Docs Sync drift, Gate / Quality, E2E 3/9 mobile sidebar fail on unrelated PRs too).
@diegosouzapw
diegosouzapw merged commit 9ec0bf1 into release/v3.8.52 Oct 19, 2026
10 checks passed
@diegosouzapw
diegosouzapw deleted the fix/17028-verified-free-discovery-20261019 branch October 22, 2026 04:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant