Skip to content

fix(prism): send Muse effort as reasoningEffort - #574

Merged
lukemaj merged 1 commit into
mainfrom
fix/573-muse-effort-option
Oct 20, 2026
Merged

lukemaj merged 1 commit into
mainfrom
fix/573-muse-effort-option

Conversation

@lukemaj

@lukemaj lukemaj commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

What: Prism sends Muse Color effort as reasoningEffort, with one focused regression test.
Why: Muse rejected the fallback effort option, preventing configured delegations from starting.
So what: Independent review passed on the final head; CI and human merge approval remain separate gates.

Closes #573

Add Muse to the existing static map without changing other provider mappings. Advertised option descriptors can be available under model.capabilities.optionDescriptors; this microfix retains the existing static map as the smallest correct fix, including when capabilities are absent. The test resolves an easy worker lane using a Muse Color, preserves its model and effort value, and asserts the exact option payload. The feature map links the owning Issue as required by repository policy. No version bump.

Proof

  • pnpm exec vp test run apps/server/src/prism/PrismService.test.ts: 10 passed. Before the production fix, the new regression failed with actual effort versus expected reasoningEffort; the other 9 passed.
  • pnpm exec vp lint apps/server/src/prism/PrismService.ts apps/server/src/prism/PrismService.test.ts: passed.
  • pnpm exec vp fmt --check apps/server/src/prism/PrismService.ts apps/server/src/prism/PrismService.test.ts docs/map.md: passed after formatting the new test.
  • pnpm --filter t3 typecheck: passed, with existing Effect suggestions and a Node engine warning (Node 26.8.2; package requests ^24.13.1).
  • git diff --check: passed.

The worktree initially lacked dependencies and pnpm on PATH. Used the cached pnpm 11.10.0 executable and pnpm install --frozen-lockfile in this worktree. No dev server, browser, live provider launch, live userdata access, or repo-wide check. This verifies Prism's selection payload; Independent review passed on 7c2c30beba5e90fa9007cc00d36a2a62cb94b5ae: #574 (comment). CI remains a separate gate.

Upstream: main has no PrismService path (contents API 404), and open PR/Issue title searches for Prism found no matching fix. Broader Muse effort results concern different paths. Details: #573 (comment).

Surface scope: shared server Prism routing applies to delegated launches from all clients and connection modes. UI entry points, contracts, other provider adapters, reverse states, and user guidance are unchanged. Website/SEO impact: none; no website content or route changes.

Elon record

Requirements and who asked: The user and #573 require Muse Color effort to use reasoningEffort and one focused PrismService test, restoring Drafter delegation toward the current Objective.
Deleted: Dynamic option discovery and changes to other provider mappings are unnecessary.
Bottleneck: The missing Muse case in effortOption makes the existing launch validator reject configured effort.
Checked myself: Read the full Issue, inspected the call site, snapshot schema and Muse adapter, observed the regression fail before the map change and all 10 tests pass afterward, and ran the scoped checks above.

Model: gpt-6.1-sol. Harness: Codex.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS labels Oct 20, 2026
@lukemaj

lukemaj commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

What: Independent review passes for 7c2c30beba5e90fa9007cc00d36a2a62cb94b5ae; no blocking findings.
Why: The Muse mapping matches its advertised option and adapter consumer, while all other driver mappings remain equivalent.
So what: The planner can accept this review; CI and human merge approval remain separate gates.

Reviewed the full Issue #573 including comments, PR description, complete three-file diff from 02e57b6ffeda9275d3fc9e8365bf1277079bd9a1, surrounding Prism implementation and tests, delegation validation, snapshot schema, and Muse catalog/adapter. Verified the live PR base/head match the requested candidate.

  • PrismService.ts:113-124: the sole production change adds muse to the existing reasoningEffort branch. Codex/Grok still return reasoningEffort, OpenCode still returns variant, and every other driver still returns effort. Explicit selections, absent effort, selection ordering, and fallback behavior are unchanged.
  • PrismService.test.ts:201-253: one focused regression exercises the public resolve seam using a configured Muse easy worker lane. Its exact selection assertion checks the instance, model, reasoningEffort identifier, and preserved high value. The oracle agrees with Muse's catalog descriptor (packages/provider-muse/src/server/modelCatalog.ts:59) and actual consumer (adapter.ts:1868), rather than copying an internal helper. The base implementation would emit effort for this fixture.
  • docs/map.md:50: only adds fix(prism): Muse Colors with an effort fail to start #573 to the existing Prism part, as repository policy requires. No unrelated changes or version bump.

Nonblocking clarification, PR description and Issue implementation note: the claim that the snapshot does not expose option descriptors is inaccurate. ServerProviderModel.capabilities contains optional optionDescriptors (packages/contracts/src/server.ts:74-85, packages/contracts/src/model.ts:102-104); the real delegation validator reads that same nested field (apps/server/src/mcp/OrchestratorMcpService.ts:1351-1353). The regression fixture deliberately has capabilities: null. The existing static map remains the smallest correct fix for #573; dynamic discovery is unnecessary for this outcome. Correct the explanatory claim when updating the task record; no implementation expansion is requested.

Proof limits: this was a source-only independent review. I ran git diff --check successfully for the exact base/head and verified the checkout stayed clean, but did not rerun tests, lint, formatting, or typecheck. The reported failing-before/passing-after results are author evidence, not independently executed results. No test worktree, dev server, browser, live provider call, live userdata access, repo-wide check, or merge was performed. This verdict is not a complete merge gate or live launch verification.

Requirements and who asked: The user and #573 require the Muse Color effort payload and focused regression, with independent read-only review of the exact head; this supports Drafter delegation toward the Objective.
Deleted: No wider option discovery, provider changes, Spec, version bump, or duplicate test infrastructure is needed for this microfix.
Bottleneck: The missing Muse case causes the launch validator to reject the option identifier.
Checked myself: Inspected the full diff, service and regression, actual validator and Muse consumer, checked all other switch outcomes against the base, verified map scope and live candidate identity, and ran diff whitespace validation.

Reviewer model: gpt-6.1-sol. Harness: Codex. Verdict: PASS, no blocking findings.

@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.9 KiB 20.9 KiB 0 B (0.0%) 29.3 KiB ✅
Codex Live turn messages 2 2 0 (0.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB +24 B (+0.5%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB +24 B (+2.0%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.2 KiB 21.2 KiB +41 B (+0.2%) 29.3 KiB ✅
Claude Live turn messages 1 2 +1 (+100.0%) 8 ✅

Baseline: 02e57b6 · PR result: 7c2c30b · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(prism): Muse Colors with an effort fail to start

1 participant