#4576 added src/lib/db/providerNodeSelect.ts (pure node-resolution helper, not
re-exported from localDb) which the audit gate correctly classifies as internal,
but the regression guard's expected-set count wasn't updated → deterministic red
across the unit-test shards. Aligns the expected list + count to the real module set.
- Reconcile [3.8.33] CHANGELOG to 1:1 commit coverage (51 bullets) + env contract
(QUOTA_PREFLIGHT_CUTOFF_ENABLED, KIRO_VERIFY_FULL_CRC) + README What's New range.
- fix(translator): dedupe the duplicate input_audio handler in geminiHelper; mp3
normalizes to canonical audio/mpeg and the data: prefix is stripped (#912/#913).
- fix(auth): wire admin-configured maxCooldownMs to all 4 markAccountUnavailable
model-lockout sites (#4530 follow-up — combo.ts sites were already covered).
- fix(api): add src/models/ to package.json files so the published --mcp closure
ships it (#3578 gate).
- test: align stale expectations to intentional code (10 essential MCP tools incl.
web_fetch; busy_timeout 2s cap from v3.8.32).
- chore(quality): rebaseline file-size for auth.ts 2279->2289 + db-core-init.test.ts.
* fix(api): resolve compatible provider node by base type, not only exact id (#4421)
* chore(quality): rebaseline db/providers.ts file-size 1050->1063 (#4421)
* chore(quality): mark providerNodeSelect db-internal in db-rules allowlist (#4421)
---------
Co-authored-by: Diego Rodrigues de Sa e Souza <diego.souza@cdwasolutions.com.br>
Integrated into release/v3.8.33 (resolved overlap with #4547: requestFormat/claudeEffort leaves already restored, this adds keyHealth/targetFormat + wires all 4)
Closes#4438. Dedupes quota_snapshots writes for idle connections via pure quotaSnapshotChanged() gate. TDD 5/5. Admin-merged over a pre-existing, unrelated base red (model-lockout-max-cooldown.test.ts 'markAccountUnavailable local 404 ... maxCooldownMs', from #4530 incomplete wiring) proven to fail on release/v3.8.33 HEAD without this change.
Re-applies the endpoint/format (requestFormat.ts, #4507) and Claude effort-variant (claudeEffortVariant.ts, #4511) extractions that were orphaned from release/v3.8.33 by a parallel force-push. 19/19 chatCore tests pass.
Integrated into release/v3.8.33.
Adds enginesExplicit to the strict compression PUT schema so the panel can save without a 400. Kept only this commit; the Hub-render commit was superseded by Phase 2 (#4521) which rewrote CompressionHub.tsx. Does not reopen the Phase 1 gate (enginesExplicit is recomputed from stored engines, the persisted row is ignored). Tested.
Integrated into release/v3.8.33.
Adds account/combo/latency/fallbackCount to telegram request.completed notifications; account UUID rendered via truncated display name (no sensitive data leak). Tested. Rebuilt onto release/v3.8.33.
Integrated into release/v3.8.33.
Adds authHint + enriched freeNote/apiHint on the existing bazaarlink entry (distinct from the closed-redundant #4497). Integrity test included.
Integrated into release/v3.8.33.
The combo.ts lockout call sites never forwarded mlSettings.maxCooldownMs to recordModelLockoutFailure, so the admin-configured cap fell back to BACKOFF_CONFIG.max. Passes it at all 3 sites. TDD included.
Integrated into release/v3.8.33.
Rebuilt onto release/v3.8.33; reconciled with the already-merged keepOpenOnSelect (#4496) — deselection now rides the existing keepOpenOnSelect + onDeselect wiring instead of a redundant closeOnSelect prop. Integrated into release/v3.8.33.
clampMaxTokens now uses the per-model maxOutputTokens from REGISTRY['command-code'] as the upper bound (falls back to MAX_COMMAND_CODE_TOKENS), so GLM-5.x stops being rejected for max_tokens > 131072. Rebuilt onto release/v3.8.33 (passthrough block from the PR base is already present via #2986); 3 tests added.
Integrated into release/v3.8.33.
Adds a scheduled SQLite VACUUM job that persists last-run state to key_value and fixes the hardcoded lastVacuumAt:null in getDatabaseSettings. Review fixes: corrected the key_value write (no updated_at column), dropped a dead/colliding migration, rewrote the test from Vitest to node:test against the real interface.
Integrated into release/v3.8.33.
Context-overflow and param-validation 400s now fall through to the next combo target (different targets have different context windows / output limits); normalizeUpstreamFailure keeps context_length_exceeded=400 and rate-limit=429. Pure predicates extracted + tested (Rule #18). The codex.ts compression seen in the raw diff was base-divergence noise, not in the feature commit.
Integrated into release/v3.8.33.
Adds USD usage percentages and reset hints to @@om-usage and 400 quota rejections, and cuts the weekly USD window at the real observed reset via quota_snapshots instead of resetAt-7d. Rebuilt onto release/v3.8.33 (squash-base-stale; delta = 5 files/+353).
Integrated into release/v3.8.33.