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:
diegosouzapw
2026-06-06 17:36:06 -03:00
parent 8f6a6ca816
commit 2101df5ca2
7 changed files with 40 additions and 10 deletions

View File

@@ -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

View File

@@ -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`.
![MCP tool inventory (43 tools by category)](../diagrams/exported/mcp-tools-37.svg)
![MCP tool inventory (43 tools by category)](../diagrams/exported/mcp-tools-43.svg)
> Source: [diagrams/mcp-tools-43.mmd](../diagrams/mcp-tools-43.mmd) (regenerate via `npm run docs:render-diagrams`).

View File

@@ -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/**",

View File

@@ -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 {

View File

@@ -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(

View File

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

View File

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