mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-16 11:52:26 +03:00
fix(providers): renumber Qwen migration 163→167 and fix async getExecutor assertions for v3.8.51
- src/lib/db/migrations: 163 collided with radar_feed_cache_generated_at and 3 other provenance-sweep retirement migrations already in this batch (164 Designer, 165 Felo, 166 GPL-derived); renumbered to 167. - tests/unit/qwen-web-retirement.test.ts, chatcore-executor-proxy.test.ts, web-cookie-providers-new.test.ts: getExecutor became async on v3.8.51 (#11220 lazy-loading refactor); fixed 3 assertions comparing/throwing against the raw Promise instead of the awaited result. - tests/unit/qwen38-max-bare-id-alias.test.ts: removed the retired qwen-web from the SERVES_BARE fixture (it no longer exists as a provider); kept the newer catalog-split test structure already on v3.8.51 instead of the PR's pre-split version. - docs/reference/PROVIDER_REFERENCE.md: regenerated via npm run gen:provider-reference.
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
---
|
||||
title: "Provider Reference"
|
||||
version: 3.8.51
|
||||
lastUpdated: 2026-08-27
|
||||
lastUpdated: 2026-08-28
|
||||
---
|
||||
|
||||
# Provider Reference
|
||||
|
||||
> **Auto-generated** from `src/shared/constants/providers.ts` — do not edit by hand.
|
||||
> Regenerate with: `npm run gen:provider-reference`
|
||||
> **Last generated:** 2026-08-27
|
||||
> **Last generated:** 2026-08-28
|
||||
|
||||
Total providers: **357**. See category breakdown below.
|
||||
Total providers: **356**. See category breakdown below.
|
||||
|
||||
## Categories
|
||||
|
||||
@@ -444,7 +444,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each
|
||||
|
||||
- Catalog: [`src/shared/constants/providers.ts`](../../src/shared/constants/providers.ts)
|
||||
- Registry (per-model details): [`open-sse/config/providerRegistry.ts`](../../open-sse/config/providerRegistry.ts)
|
||||
- Executors: [`open-sse/executors/`](../../open-sse/executors/) (112 implementations)
|
||||
- Executors: [`open-sse/executors/`](../../open-sse/executors/) (111 implementations)
|
||||
- Translators: [`open-sse/translator/`](../../open-sse/translator/)
|
||||
|
||||
## See Also
|
||||
|
||||
@@ -29,7 +29,7 @@ UPDATE provider_connections
|
||||
SET is_active = 0,
|
||||
test_status = 'unavailable',
|
||||
error_code = 'PROVIDER_REMOVED',
|
||||
last_error = 'Provider integration retired from OmniRoute v3.8.50',
|
||||
last_error = 'Provider integration retired from OmniRoute v3.8.51',
|
||||
last_error_type = 'provider_removed',
|
||||
last_error_source = 'migration:retire-qwen-web',
|
||||
last_error_at = datetime('now'),
|
||||
@@ -40,7 +40,7 @@ WHERE lower(trim(provider, char(9,10,11,12,13,32,160,5760,8192,8193,8194,8195,81
|
||||
is_active IS NOT 0
|
||||
OR test_status IS NOT 'unavailable'
|
||||
OR error_code IS NOT 'PROVIDER_REMOVED'
|
||||
OR last_error IS NOT 'Provider integration retired from OmniRoute v3.8.50'
|
||||
OR last_error IS NOT 'Provider integration retired from OmniRoute v3.8.51'
|
||||
OR last_error_type IS NOT 'provider_removed'
|
||||
OR last_error_source IS NOT 'migration:retire-qwen-web'
|
||||
OR last_error_at IS NULL
|
||||
@@ -59,7 +59,7 @@ BEGIN
|
||||
SET is_active = 0,
|
||||
test_status = 'unavailable',
|
||||
error_code = 'PROVIDER_REMOVED',
|
||||
last_error = 'Provider integration retired from OmniRoute v3.8.50',
|
||||
last_error = 'Provider integration retired from OmniRoute v3.8.51',
|
||||
last_error_type = 'provider_removed',
|
||||
last_error_source = 'migration:retire-qwen-web',
|
||||
last_error_at = datetime('now'),
|
||||
@@ -69,7 +69,7 @@ BEGIN
|
||||
is_active IS NOT 0
|
||||
OR test_status IS NOT 'unavailable'
|
||||
OR error_code IS NOT 'PROVIDER_REMOVED'
|
||||
OR last_error IS NOT 'Provider integration retired from OmniRoute v3.8.50'
|
||||
OR last_error IS NOT 'Provider integration retired from OmniRoute v3.8.51'
|
||||
OR last_error_type IS NOT 'provider_removed'
|
||||
OR last_error_source IS NOT 'migration:retire-qwen-web'
|
||||
OR last_error_at IS NULL
|
||||
@@ -93,7 +93,7 @@ BEGIN
|
||||
SET is_active = 0,
|
||||
test_status = 'unavailable',
|
||||
error_code = 'PROVIDER_REMOVED',
|
||||
last_error = 'Provider integration retired from OmniRoute v3.8.50',
|
||||
last_error = 'Provider integration retired from OmniRoute v3.8.51',
|
||||
last_error_type = 'provider_removed',
|
||||
last_error_source = 'migration:retire-qwen-web',
|
||||
last_error_at = datetime('now'),
|
||||
@@ -103,7 +103,7 @@ BEGIN
|
||||
is_active IS NOT 0
|
||||
OR test_status IS NOT 'unavailable'
|
||||
OR error_code IS NOT 'PROVIDER_REMOVED'
|
||||
OR last_error IS NOT 'Provider integration retired from OmniRoute v3.8.50'
|
||||
OR last_error IS NOT 'Provider integration retired from OmniRoute v3.8.51'
|
||||
OR last_error_type IS NOT 'provider_removed'
|
||||
OR last_error_source IS NOT 'migration:retire-qwen-web'
|
||||
OR last_error_at IS NULL
|
||||
@@ -154,5 +154,5 @@ test("retired Qwen Web ids cannot bypass the tombstone through a connection prox
|
||||
const qwenCloud = await resolveExecutorWithProxy("qwen-cloud", undefined, {
|
||||
cliproxyapiMode: "claude-native",
|
||||
});
|
||||
assert.equal(qwenCloud, getExecutor("cliproxyapi"));
|
||||
assert.equal(qwenCloud, await getExecutor("cliproxyapi"));
|
||||
});
|
||||
|
||||
@@ -70,16 +70,16 @@ test.after(() => {
|
||||
fs.rmSync(TEST_DATA_DIR, { recursive: true, force: true });
|
||||
});
|
||||
|
||||
test("migration 163 retires every Qwen Web id fail-closed and preserves audit history", async () => {
|
||||
test("migration 167 retires every Qwen Web id fail-closed and preserves audit history", async () => {
|
||||
const db = core.getDbInstance();
|
||||
|
||||
const applied = db
|
||||
.prepare("SELECT version FROM _omniroute_migrations WHERE version = 163")
|
||||
.prepare("SELECT version FROM _omniroute_migrations WHERE version = 167")
|
||||
.get() as { version: number } | undefined;
|
||||
assert.ok(applied, "migration 163 must be recorded as applied");
|
||||
assert.ok(applied, "migration 167 must be recorded as applied");
|
||||
|
||||
// Recreate a pre-migration fixture even though a fresh test database already
|
||||
// applied migration 163 during startup.
|
||||
// applied migration 167 during startup.
|
||||
db.exec(`
|
||||
DROP TRIGGER IF EXISTS provider_connections_retire_qwen_web_insert;
|
||||
DROP TRIGGER IF EXISTS provider_connections_retire_qwen_web_update;
|
||||
@@ -229,7 +229,7 @@ test("migration 163 retires every Qwen Web id fail-closed and preserves audit hi
|
||||
(db.prepare("SELECT total_changes() AS changes").get() as { changes: number }).changes;
|
||||
|
||||
const sql = fs.readFileSync(
|
||||
path.join(process.cwd(), "src/lib/db/migrations/163_retire_qwen_web.sql"),
|
||||
path.join(process.cwd(), "src/lib/db/migrations/167_retire_qwen_web.sql"),
|
||||
"utf8"
|
||||
);
|
||||
db.exec(sql);
|
||||
@@ -263,7 +263,7 @@ test("migration 163 retires every Qwen Web id fail-closed and preserves audit hi
|
||||
assert.equal(connection.is_active, 0);
|
||||
assert.equal(connection.test_status, "unavailable");
|
||||
assert.equal(connection.error_code, "PROVIDER_REMOVED");
|
||||
assert.equal(connection.last_error, "Provider integration retired from OmniRoute v3.8.50");
|
||||
assert.equal(connection.last_error, "Provider integration retired from OmniRoute v3.8.51");
|
||||
assert.equal(connection.last_error_type, "provider_removed");
|
||||
assert.equal(connection.last_error_source, "migration:retire-qwen-web");
|
||||
assert.notEqual(connection.last_error_at, "2000-01-01T00:00:00.000Z");
|
||||
@@ -429,7 +429,7 @@ test("migration 163 retires every Qwen Web id fail-closed and preserves audit hi
|
||||
"last_error_type, last_error_source, last_error_at, created_at, updated_at) " +
|
||||
"VALUES ('already-tombstoned-insert-connection', '\u00a0qwen-web\ufeff', " +
|
||||
"'apikey', 'already tombstoned restore', 0, 'unavailable', 'PROVIDER_REMOVED', " +
|
||||
"'Provider integration retired from OmniRoute v3.8.50', 'provider_removed', " +
|
||||
"'Provider integration retired from OmniRoute v3.8.51', 'provider_removed', " +
|
||||
"'migration:retire-qwen-web', '2001-01-01T00:00:00.000Z', datetime('now'), " +
|
||||
"datetime('now'))"
|
||||
).run();
|
||||
@@ -450,7 +450,7 @@ test("migration 163 retires every Qwen Web id fail-closed and preserves audit hi
|
||||
db.prepare(
|
||||
"UPDATE provider_connections SET provider = '\u2003QW\u2029', is_active = 0, " +
|
||||
"test_status = 'unavailable', error_code = 'PROVIDER_REMOVED', " +
|
||||
"last_error = 'Provider integration retired from OmniRoute v3.8.50', " +
|
||||
"last_error = 'Provider integration retired from OmniRoute v3.8.51', " +
|
||||
"last_error_type = 'provider_removed', last_error_source = 'migration:retire-qwen-web', " +
|
||||
"last_error_at = '2001-01-01T00:00:00.000Z' " +
|
||||
"WHERE id = 'already-tombstoned-update-connection'"
|
||||
@@ -25,7 +25,7 @@ test("Qwen Web provenance-hold integration is absent from runtime dispatch", ()
|
||||
assert.equal(hasSpecializedExecutor("qw"), false);
|
||||
});
|
||||
|
||||
test("retired Qwen Web ids fail closed instead of falling through to OpenAI", () => {
|
||||
test("retired Qwen Web ids fail closed instead of falling through to OpenAI", async () => {
|
||||
for (const providerId of [
|
||||
"qwen-web",
|
||||
"qw",
|
||||
@@ -34,7 +34,7 @@ test("retired Qwen Web ids fail closed instead of falling through to OpenAI", ()
|
||||
"\u00a0QWEN-WEB\uFEFF",
|
||||
"\u2003qw\u2029",
|
||||
]) {
|
||||
assert.throws(
|
||||
await assert.rejects(
|
||||
() => getExecutor(providerId),
|
||||
(error: unknown) => {
|
||||
const typed = error as Error & { status?: number };
|
||||
|
||||
@@ -157,10 +157,10 @@ test("Doubao Web executor is registered", async () => {
|
||||
assert.ok(executor instanceof DoubaoWebExecutor);
|
||||
});
|
||||
|
||||
test("Qwen Web aliases stay removed while Qwen Cloud remains routable", () => {
|
||||
test("Qwen Web aliases stay removed while Qwen Cloud remains routable", async () => {
|
||||
assert.equal(hasSpecializedExecutor("qwen-web"), false);
|
||||
assert.equal(hasSpecializedExecutor("qw"), false);
|
||||
assert.equal(getExecutor("qwen-cloud").getProvider(), "qwen-cloud");
|
||||
assert.equal((await getExecutor("qwen-cloud")).getProvider(), "qwen-cloud");
|
||||
});
|
||||
|
||||
// ── Constructor Tests ────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user