Repository navigation
fix(release): clear 9 unit base-reds on release/v3.8.51 (shards 3 and 4) - #15109
Merged
Merged
Conversation
…raph db/proxyLogs imported normalizeProxyHostForLog from proxyLogger (#14364), and proxies/rotation started importing db/proxyLogs (#14657). Together they pulled proxyLogger — which runs loadFromDb() at import — into every module reaching settings -> proxies, so a cold getPricingForModel() paid two proxy_logs queries (pricing-for-model-cached-13891 red). Move the pure helper into a zero-import leaf (src/lib/proxyLogHost.ts); proxyLogger re-exports it for existing callers.
…se/v3.8.51 - ghe-copilot: #14732 declared thinking-effort tiers on the GHE Copilot Opus 5 entry. - proxy-management-v1-route: #15044 stopped requireManagementAuth from inheriting the public-route shortcut; reset storage after the INITIAL_PASSWORD block, which persisted setupComplete=true. - audio-speech-handler: #15067 rejects dot-segment model ids at parse time; keep the handler-level HuggingFace guard covered with an id the parser accepts. - combo-provider-cooldown-sibling: #13548 moved the status >= 500 predicate into modelScopedQuotaFailure.ts; follow it in the source guard. - vision-bridge 14003: #14117 gave kimi-for-coding a vision spec, so the fixture no longer had UNKNOWN capability; switch to deepseek-coder-6.7b and pin the precondition. - build-profile-stubs: #12810 renamed the stub's installNinerouter to install and added the remaining exports; assert all of them stay disabled.
diegosouzapw
added a commit
that referenced
this pull request
Sep 29, 2026
…#14190, proxyLogs import side effect (#15116) Release-captain base-red fix (v3.8.51 release PR #11442, unit shards 1-2 + integration): production defect — OmniRoute's own local-cooldown 429 was classified as CLIProxyAPI quota exhaustion since #14190 and made combos skip same-provider targets (now tagged X-OmniRoute-Local-Cooldown); the proxyLogHost extraction reconciled with #15109; contract propagations for #14627/#14873/#13888/#14876/#15001 and two harness isolation fixes. Focused suites green on the reconciled tip, typecheck clean.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Clears 9 unit base-reds from the release PR #11442 CI (Unit 3/8 and 4/8). All nine reproduced deterministically in isolation on
origin/release/v3.8.51@ 9bbf6ef before this change.Production defect (1)
getPricingForModel — issue #13891/hits the DB at most once…db/proxyLogsimportednormalizeProxyHostForLogfromproxyLogger(#14364), anddb/proxies/rotationstarted importingdb/proxyLogs(#14657). Together they draggedproxyLogger, which runsloadFromDb()at import time (PRAGMA table_info(proxy_logs)+SELECT … FROM proxy_logs), into every module reachingsettings → proxies. A coldgetPricingForModel()made 5prepare()calls instead of 3. The pricing cache itself was still fine: calls 2–20 made 0.src/lib/proxyLogHost.ts.proxyLoggerre-exports it, so existing callers keep working.Intentional contract changes carried into the tests (7)
GHE Copilot registry exposes Claude Opus 5supportsReasoning/supportedThinkingEfforts/supportsXHighEffortto the GHE Copilot Opus 5 entryv1 management proxies main route covers auth…requireManagementAuthno longer inherits the public-route shortcut. The test'sINITIAL_PASSWORDblock had persistedsetupComplete=true, so a setup-complete install with no password now requires management auth, even on loopbackresetStorage()after the auth block, so the unauthenticated CRUD branches run against a fresh install that has not been through onboardinghandleAudioSpeech validates HuggingFace model identifiershasUnsafeModelIdSyntax), sohuggingface/../escapenow fails with 400 "No speech provider found"huggingface/facebook//mms-tts-engcase so the handler-level "Invalid model ID" guard stays coveredsource guard: auth.ts skips model lockout… on 500+status >= 500predicate intomodelScopedQuotaFailure.ts::isModelScopedFailure(). Behavior is unchanged: theno model lockoutearly return is still in auth.tsisModelScopedFailure(statusin auth.tsVB-14003-BARE/VB-14003-QUALIFIED-LEAFkimi-for-codinga MODEL_SPECS alias withsupportsVision: true, so #14844's fixture no longer had UNKNOWN vision and the guardrail passed it straight throughdeepseek-coder-6.7b/llamagate/deepseek-coder-6.7b. NewVB-14003-FIXTUREprecondition pinssupportsVision === nullso a future spec change fails loudlyninerouter.stub.ts: install / resolveSpawnArgs throw…installNineroutertoinstall(the real export name) and added the remaining exportsinstall,update,uninstall,getInstalledVersion,getLatestVersionandresolveSpawnArgsall throw9router-installerNo assertions were weakened. Each test still checks the behavior it was written for.
Proof
--test-concurrency=4, per-process DATA_DIR). Each file was red on the tip before this change.proxyLogger/db/proxyLogs(27 files): 176/176 pass.typecheck:coreclean ·check:open-sse-typecheckOK (0 errors) · eslint (with suppressions) clean on the changed files · prettier clean ·check-file-sizeOK, measured after commit.