mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-22 23:22:09 +03:00
fix(release): drain v3.8.50 base-reds — getTokenLimit contract, vi i18n parity, eslint gate (#9985)
Discriminated against the pure base tip (all three reproduced without any PR diff): (1) getTokenLimit test aligned to the contract changes of #8228/#11034 with the bluesminds 200k pin kept as the original guard; (2) Vietnamese translations completed for harImport*/omni-webhooks (upstream already carried equivalent translations — conflict resolved to base); (3) eslint gate fixed by typing the dynamic core imports in capture-critical-db-state.test.ts (no-explicit-any). 41/41 tests green, typecheck clean, eslint exit 0.
This commit is contained in:
committed by
GitHub
parent
367ae2fb97
commit
b2509bcd05
1
changelog.d/fixes/release-v3850-basereds-tests-i18n.md
Normal file
1
changelog.d/fixes/release-v3850-basereds-tests-i18n.md
Normal file
@@ -0,0 +1 @@
|
||||
- fix(i18n): complete Vietnamese translations for recently added UI strings (#9985)
|
||||
@@ -6,12 +6,13 @@ import path from "node:path";
|
||||
|
||||
// Shared across all tests — the module caches DATA_DIR / SQLITE_FILE at load time,
|
||||
// so we must create the temp dir and import exactly once.
|
||||
type CoreModule = typeof import("../../src/lib/db/core.ts");
|
||||
let tempDir: string;
|
||||
let originalDataDir: string | undefined;
|
||||
let getDbInstance: any;
|
||||
let resetDbInstance: any;
|
||||
let ensureDbInitialized: any;
|
||||
let closeDbInstance: any;
|
||||
let getDbInstance: CoreModule["getDbInstance"];
|
||||
let resetDbInstance: CoreModule["resetDbInstance"];
|
||||
let ensureDbInitialized: CoreModule["ensureDbInitialized"];
|
||||
let closeDbInstance: CoreModule["closeDbInstance"];
|
||||
|
||||
before(async () => {
|
||||
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "omniroute-db-test-"));
|
||||
|
||||
@@ -75,10 +75,15 @@ for (const modelId of HYPERAGENT_FALLBACK_MODEL_IDS) {
|
||||
}
|
||||
|
||||
test("getTokenLimit: does not force 1M onto non-hyperagent providers serving the same model ids", () => {
|
||||
// windsurf declares an explicit per-model contextLength of 200000 for this exact id —
|
||||
// a provider-unscoped substring match on "claude-opus-4" would have clobbered it to 1M.
|
||||
assert.equal(getTokenLimit("windsurf", "claude-opus-4.7-max"), 200000);
|
||||
// bluesminds likewise pins its own claude-opus-4-5 entry to 200000.
|
||||
// windsurf used to pin this exact id at 200000, but its built-in provider entry was
|
||||
// retired (#8228 — replaced by devin-desktop). With no per-provider source left,
|
||||
// #11034 resolves the effort-suffixed variant via its BASE model (`claude-opus-4.7-max`
|
||||
// → `claude-opus-4.7` → canonical `claude-opus-4-7`), whose real catalog window IS 1M.
|
||||
// This is a legitimate base-model resolution, not the forbidden hyperagent default leak:
|
||||
// it comes from the shared model catalog, never from the hyperagent registry scope.
|
||||
assert.equal(getTokenLimit("windsurf", "claude-opus-4.7-max"), 1_000_000);
|
||||
// bluesminds still pins its own claude-opus-4-5 entry to 200000, and that pin must win
|
||||
// over both the name heuristic and any 1M window from sibling providers/catalogs.
|
||||
assert.equal(getTokenLimit("bluesminds", "claude-opus-4-5"), 200000);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user