Adopts the round's main features into the v2 architecture: the #9023 media rework (streamed videos, media-file assets, protocol-relative links), #9098 shared live-activity row folded into the v2 working and thinking rows, the #9084/#9078 Claude model catalog for v2 consumers, a native #9005 OpenCode child-session abort in the v2 adapter, #9013's landed LegendList patch, and per-environment sidebar provider entries. For #8600 the server-side pieces land, but auto-settle evaluation stays client-side (reading the new server-owned settings) until the v2 orchestrator grows its own settlement reactor; main's v1-only reactor and coalescer additions are dropped with the rest of the v1 path.
Showing the changes to packages/shared/src (1 of 47 files). Show all
Unified · Split
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | import { describe, expect, it } from "vite-plus/test"; |
| 2 | −import { ProviderInstanceId, type ModelCapabilities } from "@t3tools/contracts"; | |
| 2 | +import { ProviderDriverKind, ProviderInstanceId, type ModelCapabilities } from "@t3tools/contracts"; | |
| 3 | 3 | |
| 4 | 4 | import { |
| 5 | 5 | applyClaudePromptEffortPrefix, |
| @@ -40,9 +40,11 @@ const codexCaps: ModelCapabilities = createModelCapabilities({ · 34 unmodified lines | ||
| 40 | 40 | |
| 41 | 41 | describe("model slug normalization", () => { |
| 42 | 42 | it("preserves exact custom slugs instead of expanding provider aliases", () => { |
| 43 | + // Claude aliases now resolve through the model catalog (#9084), so the | |
| 44 | + // provider alias table passes unknown slugs through unchanged. | |
| 43 | 45 | const claude = ProviderDriverKind.make("claudeAgent"); |
| 44 | 46 | |
| 45 | − expect(normalizeModelSlug("opus", claude)).toBe("claude-opus-5"); | |
| 47 | + expect(normalizeModelSlug("opus", claude)).toBe("opus"); | |
| 46 | 48 | expect(normalizeCustomModelSlug(" opus ")).toBe("opus"); |
| 47 | 49 | }); |
| 48 | 50 | }); |