* docs: bring the provider count to the live 358 across the reference, diagrams and llm.txt mirrors
* chore(skills): regenerate the cli-tunnel SKILL.md for the tunnel create positional
* test: clear the ESLint errors in the volcengine upsert and resource-pressure tests
* test(autoCombo): complete the mode-pack ProviderCandidate fixtures for the open-sse typecheck
* fix(ci): allow the opencode-plugin-v2 workspace package in the pack artifact policy
* docs: list the WAL, vacuum, sql.js and pressure self-restart env vars in .env.example
* refactor(db): move the synced-model provider purge into its persistence module to break the models/providers cycle
* test(memory): use a plain label for the rerank loopback key fixture so gitleaks stays at zero
* chore(ci): register the eleven covering unit tests in stryker tap.testFiles
* test(grok-cli): run the reset-credit tests on a fixture clock inside the captured token window
* test(combo): seed real provider connections for the reset-aware strategy tests
* fix(db): keep operator custom models out of the listing-only synced catalog reader
* fix(i18n): translate the new settings and combo keys for vi and pt-BR and restore the zh-TW glossary term
* fix(sse): carry the upstream error code and type through the provider execution pipeline
* test(sse): re-point the chatCore and combo source guards at the split modules and refresh the translate-path golden
* fix(oauth): keep the server-only OAuth constants out of the provider detail client bundle
* test: align the sql.js, webpack, injection-scan and error-boundary guards with their merged contracts
* docs(changelog): record the v3.8.51 base-red sweep
* fix(sse): anchor the glued-prefix sk- credential pattern so error redaction scans in linear time
* docs(changelog): note the linear credential scan in the base-red sweep
---------
Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
Validado em lote numa worktree combinada com os 14 PRs desta campanha de error-boundary sobre o tip de `release/v3.8.51`: `typecheck:core` limpo e **120/120** nos 23 arquivos de teste que os PRs trazem.
Um ponto que só apareceu no tree combinado: **#12465 e #12466 criam o mesmo arquivo novo** `open-sse/utils/streamReadiness.ts` (que não existe no tip) com desenhos divergentes de cancelamento — `cancelled` + `releaseLock` imediato num, `readInFlight`/`cancelRequested` com `cancelReader` fire-and-forget no outro. Adotei a versão do #12466, que difere e defere o release do lock para quando a leitura em voo termina, e validei a escolha rodando as suítes dos **dois** PRs contra ela: 21/21 no readiness compartilhado e 22/22 incluindo o boundary do Perplexity.