diff --git a/CHANGELOG.md b/CHANGELOG.md index a16311417e..6f4afc9697 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ _Development cycle in progress — entries are added as work merges into `releas ### 🔧 Bug Fixes +- **fix(catalog):** remove `minimaxai/minimax-m3` from the **NVIDIA NIM** tier — NVIDIA does not host it yet, so every request 404'd (`404 page not found`), while sibling `minimax-m2.7` on the same provider works. MiniMax M3 stays available on the tiers that actually serve it. (#3329 — thanks @mikmaneggahommie) - **fix(electron):** ship `loginManager.js` in the packaged app — #3292 added it (and a `require("./loginManager")` in `main.js`) without adding it to electron-builder's `build.files`, so the packaged app crashed at startup with "Cannot find module" on the Linux/macOS smoke tests. Plus a regression test asserting every local `require("./x")` in the Electron entry points is shipped. ([#3334](https://github.com/diegosouzapw/OmniRoute/pull/3334) — thanks @diegosouzapw) - **fix(startup):** correct the #3292 auto-refresh daemon import (`@/open-sse/...` → `@omniroute/open-sse/services/autoRefreshDaemon`); the `@/` alias maps to `src/`, so the daemon silently never ran in the built standalone (non-fatal "Cannot find module", caught at runtime). Adds a regression test banning `@/open-sse/*` imports in `src/`. ([#3335](https://github.com/diegosouzapw/OmniRoute/pull/3335) — thanks @diegosouzapw) - **fix(electron):** wrap `autoUpdater.checkForUpdates()` so a 404/offline/rate-limited update check can no longer surface as an unhandled rejection (the `error` event still notifies the user); fixes the macOS-intel packaged-app smoke failure. ([#3339](https://github.com/diegosouzapw/OmniRoute/pull/3339) — thanks @diegosouzapw) diff --git a/open-sse/config/providerRegistry.ts b/open-sse/config/providerRegistry.ts index bef0b02233..ef606a452f 100644 --- a/open-sse/config/providerRegistry.ts +++ b/open-sse/config/providerRegistry.ts @@ -3223,8 +3223,9 @@ const _REGISTRY_EAGER: Record = { authHeader: "bearer", models: [ { id: "z-ai/glm-5.1", name: "GLM 5.1" }, - // #3110: MiniMax M3 via NVIDIA - { id: "minimaxai/minimax-m3", name: "MiniMax M3", contextLength: 1048576 }, + // #3329: minimaxai/minimax-m3 removed — NVIDIA NIM does not host it yet + // (every request 404s), while minimax-m2.7 on the same provider works. + // Re-add only once NVIDIA actually serves it. { id: "minimaxai/minimax-m2.7", name: "MiniMax M2.7" }, { id: "google/gemma-4-31b-it", name: "Gemma 4 31B" }, { id: "mistralai/mistral-small-4-119b-2603", name: "Mistral Small 4 2603" }, diff --git a/tests/unit/nvidia-minimax-m3-removed-3329.test.ts b/tests/unit/nvidia-minimax-m3-removed-3329.test.ts new file mode 100644 index 0000000000..77e0ce4822 --- /dev/null +++ b/tests/unit/nvidia-minimax-m3-removed-3329.test.ts @@ -0,0 +1,19 @@ +import test from "node:test"; +import assert from "node:assert/strict"; + +const { getRegistryEntry } = await import("../../open-sse/config/providerRegistry.ts"); + +// #3329: `minimaxai/minimax-m3` was registered in the nvidia (NVIDIA NIM) tier, +// but NVIDIA NIM does not host it — every request returns `404 page not found`, +// while sibling models on the same provider (e.g. `minimaxai/minimax-m2.7`) +// work. Advertising a model that 404s is a catalog bug; it is removed from the +// nvidia tier until NVIDIA actually serves it. It remains on the tiers that do +// (minimax / minimax-cn / opencode / etc.). +test("nvidia tier does not advertise minimaxai/minimax-m3 (404 upstream) (#3329)", () => { + const nvidia = getRegistryEntry("nvidia"); + assert.ok(nvidia, "nvidia registry entry must exist"); + const ids = (nvidia.models ?? []).map((m) => m.id); + assert.ok(!ids.includes("minimaxai/minimax-m3"), "minimaxai/minimax-m3 must not be in nvidia"); + // sanity: the working sibling stays listed + assert.ok(ids.includes("minimaxai/minimax-m2.7"), "minimaxai/minimax-m2.7 stays available"); +});