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:
Diego Rodrigues de Sa e Souza
2026-08-22 16:19:57 -03:00
committed by GitHub
parent 367ae2fb97
commit b2509bcd05
3 changed files with 15 additions and 8 deletions

View File

@@ -0,0 +1 @@
- fix(i18n): complete Vietnamese translations for recently added UI strings (#9985)

View File

@@ -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-"));

View File

@@ -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);
});