mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-03 05:45:04 +03:00
chore(release): finalize v3.8.13 changelog and cleanup
Finalize the v3.8.13 changelog with release date, maintenance notes, and contributor credits. Update MCP docs to reference the correct tool inventory diagram, exclude nested .claude worktrees from ESLint scans, and tighten a response sanitizer type guard.
This commit is contained in:
25
CHANGELOG.md
25
CHANGELOG.md
@@ -4,9 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
## [3.8.13] — Unreleased
|
||||
|
||||
_Development cycle in progress — entries are added as work merges into `release/v3.8.13` and finalized by the release flow._
|
||||
## [3.8.13] — 2026-06-06
|
||||
|
||||
### ✨ New Features
|
||||
|
||||
@@ -33,6 +31,27 @@ _Development cycle in progress — entries are added as work merges into `releas
|
||||
- **fix(sse):** expose the Claude (`claude-opus-4-6-thinking`, `claude-sonnet-4-6`) and Gemini budget tiers (`gemini-3.1-pro-{high,low}`, `gemini-3.5-flash-{low,extra-low}`) in the Antigravity catalog — they are user-callable on the Antigravity OAuth backend (agy parity), correcting an earlier assumption that Claude had been removed. ([#3303](https://github.com/diegosouzapw/OmniRoute/pull/3303), discussion #3184 — thanks @diegosouzapw)
|
||||
- **fix(catalog):** compute a combo's `context_length` from the known targets only — a single target with unknown context no longer collapses the whole combo to `undefined`; also accepts live `{id, contextLength}` model entries in the opencode-provider helper (follow-up to #3298). ([#3304](https://github.com/diegosouzapw/OmniRoute/pull/3304) — thanks @herjarsa / @diegosouzapw)
|
||||
|
||||
### 📝 Maintenance
|
||||
|
||||
- **test(catalog):** align the Antigravity preview-alias catalog test with the #3303 budget tiers — asserts the restored Claude/Gemini tiers are surfaced, locking in the behavior so a future tier change can't silently drop them again (thanks @diegosouzapw)
|
||||
- **docs:** rename the `resolve-issues` skill references to `review-issues` across the docs/skill surfaces, matching the renamed governance skill (thanks @diegosouzapw)
|
||||
- **chore(release):** open the v3.8.13 development cycle (version bump + cycle bookkeeping) and finalize this changelog (thanks @diegosouzapw)
|
||||
|
||||
### 🙌 Contributors
|
||||
|
||||
Thanks to everyone whose work landed in v3.8.13:
|
||||
|
||||
| Contributor | PRs / Issues |
|
||||
| --- | --- |
|
||||
| [@zhiru](https://github.com/zhiru) | #3300, #3306, #3307 / #3310, #3309, #3301, #3311 |
|
||||
| [@oyi77](https://github.com/oyi77) | #3292 (closes #3070) |
|
||||
| [@onizukashonan14-png](https://github.com/onizukashonan14-png) | #3296 |
|
||||
| [@uniQta](https://github.com/uniQta) | #3290, #3295 |
|
||||
| [@wilsonicdev](https://github.com/wilsonicdev) | #3297 |
|
||||
| [@herjarsa](https://github.com/herjarsa) | #3298, #3304 |
|
||||
| [@mikmaneggahommie](https://github.com/mikmaneggahommie) | reported the Completions.me rickroll (discussion #3293) |
|
||||
| [@diegosouzapw](https://github.com/diegosouzapw) | maintainer — #3299, #3302, #3303; co-author on #3292 / #3306 / #3298 / #3304 / #3309 |
|
||||
|
||||
---
|
||||
|
||||
## [3.8.12] — 2026-06-06
|
||||
|
||||
@@ -10,7 +10,7 @@ lastUpdated: 2026-05-30
|
||||
>
|
||||
> Source of truth: `open-sse/mcp-server/schemas/tools.ts` (30 tools) + `open-sse/mcp-server/tools/memoryTools.ts` (3 tools) + `open-sse/mcp-server/tools/skillTools.ts` (4 tools) + `open-sse/mcp-server/tools/notionTools.ts` (6 tools). Tool registration and scope wiring lives in `open-sse/mcp-server/server.ts`.
|
||||
|
||||

|
||||

|
||||
|
||||
> Source: [diagrams/mcp-tools-43.mmd](../diagrams/mcp-tools-43.mmd) (regenerate via `npm run docs:render-diagrams`).
|
||||
|
||||
|
||||
@@ -72,6 +72,10 @@ const eslintConfig = [
|
||||
// Dependencies
|
||||
"node_modules/**",
|
||||
".worktrees/**",
|
||||
// Nested git worktrees created by review/resolve skills live under
|
||||
// .claude/ (gitignored). They hold other sessions' in-progress work and
|
||||
// their files move mid-scan, so never lint them from the main checkout.
|
||||
".claude/**",
|
||||
".omnivscodeagent/**",
|
||||
// VS Code extension and its large test fixtures
|
||||
"vscode-extension/**",
|
||||
|
||||
@@ -642,7 +642,7 @@ function sanitizeResponsesStreamingOutputItem(item: unknown): JsonRecord | null
|
||||
text: collapseExcessiveNewlines(toString(partRecord.text) || ""),
|
||||
};
|
||||
})
|
||||
.filter((part): part is JsonRecord => part !== null)
|
||||
.filter((part): part is NonNullable<typeof part> => part !== null)
|
||||
: [];
|
||||
|
||||
return {
|
||||
|
||||
@@ -165,7 +165,7 @@ test("custom provider auth lookup search pool maps alias prefixes to internal pr
|
||||
);
|
||||
assert.match(
|
||||
authSrc,
|
||||
/nodePrefix === provider \|\| nodePrefix === canonicalProvider \|\| nodePrefix === canonicalAlias/,
|
||||
/nodePrefix === provider\s*\|\|\s*nodePrefix === canonicalProvider\s*\|\|\s*nodePrefix === canonicalAlias/,
|
||||
"auth lookup should match provider node prefixes against the requested alias/canonical provider values"
|
||||
);
|
||||
assert.match(
|
||||
|
||||
@@ -28,10 +28,14 @@ test("T28: antigravity static catalog exposes client-visible Gemini preview IDs"
|
||||
const staticIds = (getStaticModelsForProvider("antigravity") || []).map((m) => m.id);
|
||||
|
||||
assert.ok(staticIds.includes("gemini-3-pro-preview"));
|
||||
assert.ok(!staticIds.includes("gemini-3.1-pro-low"));
|
||||
assert.ok(staticIds.includes("gemini-3-flash-preview"));
|
||||
// #3303 (agy parity, discussion #3184): the Gemini budget tiers ARE
|
||||
// client-visible on the Antigravity OAuth backend — restoring tiers an
|
||||
// earlier assumption had wrongly hidden.
|
||||
assert.ok(staticIds.includes("gemini-3.1-pro-low"));
|
||||
assert.ok(staticIds.includes("gemini-3.1-pro-high"));
|
||||
// Legacy aliases that were never client-visible stay absent.
|
||||
assert.ok(!staticIds.includes("gemini-3-pro-high"));
|
||||
assert.ok(!staticIds.includes("gemini-3.1-pro-high"));
|
||||
assert.ok(!staticIds.includes("gemini-claude-sonnet-4-5"));
|
||||
assert.ok(!staticIds.includes("gemini-claude-sonnet-4-5-thinking"));
|
||||
assert.ok(!staticIds.includes("gemini-claude-opus-4-5-thinking"));
|
||||
|
||||
@@ -20,8 +20,11 @@ test("T31: antigravity static catalog exposes client-visible Gemini preview IDs"
|
||||
// still accepts its internal model identifiers.
|
||||
const staticIds = (getStaticModelsForProvider("antigravity") || []).map((m) => m.id);
|
||||
assert.ok(staticIds.includes("gemini-3-pro-preview"));
|
||||
assert.ok(!staticIds.includes("gemini-3.1-pro-low"));
|
||||
assert.ok(!staticIds.includes("claude-sonnet-4-6"));
|
||||
// #3303 (agy parity, discussion #3184): the Gemini + Claude budget tiers ARE
|
||||
// client-visible on the Antigravity OAuth backend (Claude was never removed).
|
||||
assert.ok(staticIds.includes("gemini-3.1-pro-low"));
|
||||
assert.ok(staticIds.includes("claude-sonnet-4-6"));
|
||||
// The legacy cloaked Claude aliases remain absent.
|
||||
assert.ok(!staticIds.includes("gemini-claude-sonnet-4-5-thinking"));
|
||||
assert.ok(!staticIds.includes("gemini-claude-opus-4-5-thinking"));
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user