Repository navigation
fix(release): clear the remaining base-reds on release/v3.8.53 (docs counts, SSO entry guard, API diagnostics, vuln ratchet) - #18658
Conversation
4b8bf96 to
37b3e0e
Compare
e7d9cb8 to
ec61dee
Compare
|
Independent confirmation for the two API Route Typecheck failures in this PR: on a fresh Ubuntu VM at exact base One related follow-up: Prior work: compared this PR with draft #18576, which also covers the reader/schema mismatch. No competing type-repair PR will be opened. The unrelated Windows test-fixture portability repairs are being kept separate. |
ec61dee to
1adf1ec
Compare
`check:docs-counts` reported 380 providers against 377 and 219 SQL migrations against 213, in AGENTS.md, llm.txt, the agent-skill catalog and two generated skill files. The catalog is the source the skill files are generated from, so it changes there and the generated copies follow. The same seven numbers live in 66 translated `docs/i18n/*/llm.txt` mirrors, which `check:docs-sync` compares against the root file; they move with it. `check:lockfile` fails because the lockfile entry for that upgrade was written with a mirror's tarball host; the integrity hash is the official registry's, so only the resolved URL changes back. The UI test job reports one unhandled error rather than a failing test: `ComboDefaultsTab` starts a 2.5 s status timer with no handle to clear it, so a save that lands just before unmount fires a state update into a torn-down tree (`ReferenceError: window is not defined`). The timer is now tracked and cleared on unmount and between successive messages. `check:provider-asset-provenance` names an `auditedCommit` that is not an ancestor of the release branch, so the object is absent from a CI clone and the gate cannot verify the snapshot. It is re-anchored to b190311, the last commit that touched `public/providers`, whose tree is identical to the current one: the gate re-checks all 144 recorded hashes against that commit, so the record stays an audit rather than a rubber stamp. `scripts/cli/omniroute-sso.mjs` gated its entry point on `import.meta.url === \`file://${process.argv[1]}\``. That comparison never holds on Windows, where import.meta.url carries a third slash and forward slashes, so the script exited 0 having done nothing and a local run reported a pass that CI contradicted. Two API-route diagnostics had appeared on the release branch: - `AntigravityQuotaFamily` gained `argon`, but the cooldown reader still accepted only gemini/claude/other. The writer stores whatever family the resolver returns, so an argon cooldown could be written and never read. - Eleven catalog entries carry a `codeBlock.title` the schema never declared. Nothing renders it, but the catalog is serialised, so the schema gains the optional field rather than the data losing it. `check:vuln-ratchet` measured 30 vulnerabilities against a baseline of 27. Twelve are node-forge 1.4.0, which jks-js pulls with `^1.4.0`; the lockfile moves to 1.4.2 inside that range and the count falls to 18. `check:mutation-test-coverage` lists three unit tests that exercise four mutated modules without being registered in `stryker.conf.json`, so their mutant kills were not counted: the argon 404 test, the combo-resilience provider-state test and the singbox local-only routes test. They are appended to `tap.testFiles`; the coverage gate reports no drift afterwards. The new test pins the provider count in the catalog descriptions and in the two generated skill files to the live provider union, which is what drifted. Signed-off-by: Minxi Hou <houminxi@gmail.com>
a32dbfb to
2b33538
Compare
|
Updated verification: 2026-11-01 12:02 UTC This supersedes the 06:13 status below: #18658 is now synchronized with The latest completed CI, Quality Gates, API Route Typecheck and semgrep runs all passed. Logs confirm the tested merge
The original 89 changed file blobs were preserved when the two error-helper files were added. The lockfile retains node-forge 1.4.2, @hono/node-server 2.1.5 and UI Kit 0.0.80. A full local checkout, lint and hooks remained unavailable for these follow-ups. The results above come from hosted CI. GitHub reports the PR as mergeable with a clean state. No submitted reviews are recorded, so maintainer review is still needed. These results do not establish that #17219 can be closed. Argon restart restoration remains separate in #18663. Historical verification, superseded by the update aboveAddresses baseline failures tracked in #17219, without claiming that the tracker can be closed. I corrected two description errors: generated skill synchronization is included; Argon restart restoration and its previously quoted test counts belong to #18663, not this diff. The reader-type correction overlaps both PRs. No source or gate baseline changed. Refs checked 2026-11-01 06:13 UTC:
On that composed tree with Node 24.22.1, 25 focused tests passed (provider-count, SSO script, catalog schema/display); title roundtrip/type-rejection and SSO space/#-path probes passed. Strict mutation mappings passed; provenance gate passed (144 registered: 72 proven, 69 probable, 3 unresolved); docs counts exited 0 with two soft warnings. This reused installed dependencies, including Hosted CI outcome (2026-11-01 06:13 UTC)The new CI and Quality runs both completed with failure. Logs confirm checkout Two new base issues trace to upstream #18466 / f623766f, after this PR's original base:
Build, Vitest, Security, Merge Integrity, Quality Ratchet and the other six unit shards passed. No new API Route Typecheck or Semgrep run was triggered; their October 31 results remain historical. No source or gate changes were made here. Please review the baseline-repair scope and coordinate these upstream blockers; this is not a merge-ready claim. |
Added new environment variables for model synchronization diagnostics.
|
The two-test reload-timer cleanup is in CI is still red because Unit Tests (2/8) crashed with Could a maintainer select Re-run failed jobs on run 41367965342? I tried the failed-jobs retry once, but my account has no write permission on the upstream repository, and the retry was rejected. No new attempt started. |
a09660d
into
cheaper-inference:release/v3.8.53
What this fixes
This PR addresses shared CI failures first reproduced on
release/v3.8.53atb2a64106c9. The branch is now synchronized with release commit139070680f77728e2309eb4df18463282a1c990athrough a normal merge. The updated head is4f8237e9d554401e880074978954d847187dd924.The earlier documentation update added nine lines across
.env.exampleanddocs/reference/ENVIRONMENT.mdto documentOMNIROUTE_MODEL_SYNC_TIMINGS. The two hunks were adapted from #18577 (adff90787fd536b36934cd33b48c7d83c1f00fe1); its broader changes are not included. Timing logs are enabled only by the exact value1; the wording describes phase outcomes and excludes request, account, catalog and error payloads.The merged lockfile retains
node-forge@1.4.2,@hono/node-server@2.1.5and UI Kit0.0.80.This branch now also includes the two reviewed files from #18711 (
78ccd6387082f59f92fd819a7887d652d2769551): the model-sync error logging repair andtests/unit/model-sync-error-helper.test.ts. The route and test blobs match that PR exactly; #18711 remains open and unchanged. Neither PR has been merged. No quality baseline or gate was relaxed.Documentation counts and 66 translated mirrors
The catalog has 380 providers and 219 SQL migrations; the docs said 377 and 213.
AGENTS.md,llm.txt: both counts.src/shared/constants/agentSkills.ts: the catalog string the two skill files are generated from. This PR also synchronizes the committed generated content foromni-inference,omni-resilience,omni-settingsandomni-version-manager, including their changed endpoint references, to clearcheck:agent-skills-sync.docs/i18n/*/llm.txt: all 66 mirrors, whichcheck:docs-synccompares against the root file.SSO direct-run guard
scripts/cli/omniroute-sso.mjsgated its entry point onThat never matches on Windows:
import.meta.urlisfile:///C:/…whileargv[1]isC:\…. The script exited 0 having done nothing, which could look like a successful run without exercising the entry point. It usespathToFileURL(process.argv[1] || "").hrefnow, the form the other scripts inscripts/already use.Two API-route diagnostics
AntigravityQuotaFamilygainedargon, butgetAntigravityFamilyCooldownUntilstill declared only gemini/claude/other. The reader's parameter type now matches the family resolver; its existing runtime lookup already indexed the supplied family.codeBlock.titlethat the schema never declared. The schema now includes the optional field so the serialized catalog retains it.Historical vulnerability scan
The original validation recorded a vulnerability count of 30 against a baseline of 27, then 18 after the lockfile update from
node-forge@1.4.0to1.4.2. These are historical results, not a fresh scan of the current head. The current OSV result must be established by CI.check:lockfileThe
node-forgeupgrade above wrote a mirror's tarball host into the lockfile. The integrity hash is the official registry's, so only theresolvedURL changes back.UI timer cleanup
The original UI run passed 604/604 test files but failed on an uncaught
ReferenceError: window is not definedraised fromComboDefaultsTab.tsx:205. That component starts a 2.5 s status timer with no handle to clear it, so a save landing just before unmount firessetStateinto a torn-down tree. The timer is tracked now and cleared on unmount and between successive messages.Verification
Historical results from the original changes based on
b2a64106c9(not a rerun of the current head):check:docs-countscheck:docs-alldocs-syncFAIL ondocs/i18n/*/llm.txtscripts-direct-run-guardcheck:api-typecheckcheck:vuln-ratchet --ratchetcheck:agent-skills-syncGenerated: 0check:provider-asset-provenanceauditedCommitobject absent in a CI cloneb19031110b; provenance classifications remain 72 proven, 69 probable and 3 unresolvedcheck:lockfilecheck:dashboard-typecheckscripts/cli/omniroute-sso.mjsstill prints its usage when run directly, and importing it does not runmain().Provider-count regression test
tests/unit/agent-skills-provider-count.test.tscompares the provider count in the catalog descriptions and in the two generated skill files against the same provider union the docs gate computes. The original validation deliberately restored the stale count in each source:380-provider→377-provider:description must say 380 providers, found: omni-providers: "377-provider"(1 failed).skills/omni-providers/SKILL.md→377-provider:generated skills must say 380 providers(1 failed).After restoring the fix, both tests passed.
Argon verification scope
The Argon restart-restoration tests and the previously listed 53/53 and 5/5 results are not evidence for this PR's current diff. Restart-restoration implementation and verification are tracked separately in #18663.
The original validation recorded passing lint, core typecheck, API typecheck, complexity and mutation-test coverage checks. The strict no-implicit-any check reported the same 15 pre-existing TS7006 diagnostics in untouched
open-sse/config/imageRegistry.tsbefore and after the original fix; no baseline was relaxed. Full unit, Vitest, coverage, and build suites were not rerun locally for this follow-up.Documentation update validation
Five-lens review and a targeted environment-doc check passed. The checker used both complete documentation files and scanned only the timing module, so this does not establish that the full-repository docs check passes. Tests covered ten environment values, success/error identity, payload exclusion and a failing diagnostic sink.
Both documentation file blobs match the reviewed candidates. A full local checkout, lint and hooks were unavailable for that update. A scheduled OSV step that skipped because its binary was absent is not evidence of a clean scan.
Combined error-helper validation
CI on the preceding head,
b2bdc896, completed witherror-helperas the only blocking root cause. The patch callssaveCallLogdirectly insidetimings.measure, preserves the HTTP sanitizer and checker rules, and adds five regression tests covering internal logging and raw HTTP error controls. It passed independent five-lens review and focused checks. Before applying it, the target route matched the patch's original input and the test path was absent. All 89 previously changed file blobs are unchanged.Fresh CI for combined head
4f8237e9d554401e880074978954d847187dd924is pending. The preceding head's passing checks do not verify this new head. A full local checkout, lint and hooks were also unavailable for this integration.