You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(muse): questions Muse cancels or times out no longer show as answered - #31766
When Muse ends a question without an answer, T3 still records it as answered. Muse reports why in userInput/settled's outcome (cancelled, interrupted, timedOut or aborted), but the adapter ignored it and always settled the request as resolved. The thread showed the question as completed with no answer, and agents reading the thread's requests over MCP were told it was resolved. Muse's model, meanwhile, was told the question was cancelled or timed out.
Change
In the userInput/settled branch only, those four outcomes now settle the request as cancelled. This is the same state the adapter already produces when a turn ends with a question open. answered, clarified, a missing outcome and any unknown future outcome still settle as resolved, so older and newer Muse builds keep today's behaviour. approval/resolved is unchanged.
Scope and approval
This is a small, focused fix for an obvious protocol-translation bug: one condition in the Muse adapter plus test rows. It needs no contract or client changes. Clients already render cancelled requests because finish() produces them.
Out of scope, each a separate change: decoding autoResolutionMs, sending userInput/engaged, and keeping clarification text or partial answers from an interrupted question.
Verification
Added an it.effect.each case to packages/provider-muse/src/server/adapter.test.ts. It emits userInput/requested, then userInput/settled with each of the four outcomes, and asserts that the runtime request and its turn item end up cancelled with no answers.
On main, all four rows fail with expected 'resolved' to equal 'cancelled'. With the fix they pass.
vp test run packages/provider-muse/src/server/adapter.test.ts: 45/45 pass. The existing settled case with no outcome still resolves.
vp run check:changed is green: format, lint, knip, typecheck and tests.
What I could not check: none of the recorded Muse sessions contains a question, so I didn't watch a live Muse host send these outcomes. I also didn't confirm how often Muse sets autoResolutionMs on questions.
Council review
Rounds: 1
Delegate
Round 1
Claude Opus 5.5
9/10
GPT-6.1 Sol
10/10
Muse Wonder Full 1.0 (review only)
9/10
Created with Claude Opus 5.5 in Claude Code (running in T3 Code).
Macroscope's review found this PR approvable — Muse questions that are cancelled, interrupted, timed out, or aborted now appear as cancelled rather than answered. The change is limited to settlement-status reporting and leaves approval decisions unchanged.
You can add or adjust custom eligibility rules. Learn more.
Reviewing files that changed from the base of the PR and between 0eaef8c and 2d6cf71.
You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.
Use the checkbox below for a quick retry:
Trigger review
No actionable comments were generated in the recent review.
Walkthrough
The adapter now cancels pending user-input requests when they settle as cancelled, interrupted, timedOut, or aborted. Parameterized tests verify the request and turn-item states and confirm that no answers are recorded.
Changes: Question cancellation
Layer / File(s)
Summary
Map unanswered outcomes to cancellation packages/provider-muse/src/server/adapter.ts, packages/provider-muse/src/server/adapter.test.ts
The adapter cancels pending requests for four unanswered settlement outcomes. Tests verify that the requests and turn items are cancelled and that no answers are recorded.
Questions that Muse cancels, interrupts, times out or aborts will now show as cancelled instead of answered. The change is small, tested, and leaves other outcomes as they were, so merge risk is minimal.
Pre-merge checks: 4
Check name
Status
Explanation
Title check
The title names the main change: Muse-cancelled or timed-out questions no longer appear as answered. It matches the adapter change that maps cancelled, interrupted, timedOut, and aborted user-input ou…
Description check
The description follows the template. It has Problem, Change, Scope, and Verification sections with substantive content. The Problem section explains the expected and actual behavior. The Change secti…
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Title check
Explanation
The title names the main change: Muse-cancelled or timed-out questions no longer appear as answered. It matches the adapter change that maps cancelled, interrupted, timedOut, and aborted user-input outcomes to cancelled. It uses the conventional commit format with a clear scope.
Full details: Description check
Explanation
The description follows the template. It has Problem, Change, Scope, and Verification sections with substantive content. The Problem section explains the expected and actual behavior. The Change section explains the four outcomes and the unchanged states. The Scope section explains why no issue link is needed and lists out-of-scope items. The Verification section gives focused test results and names what was not checked. It omits a linked issue, which the template asks for when the bug is non-obvious, but the author gives a reason for skipping it. The description also states the model and harness used, which the template requests. No UI changes apply, so no screenshots are needed.
Finishing Touches
Generate unit tests (beta)
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Reviewing files that changed from the base of the PR and between 7e56921 and 0eaef8c.
Files selected for processing: 2
packages/provider-muse/src/server/adapter.test.ts
packages/provider-muse/src/server/adapter.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.
Merged current main into the existing head without rebasing. Resolved the adjacent-constant conflict by keeping both main's model-output handling and this PR's unanswered-question outcomes. The diff remains 2 files, 54 additions and 1 deletion; no behavior changes beyond the original fix.
Blacksmith vp run check:changed github/main passed: format, lint, both knip checks, typechecks for 10 affected packages, and 55 tests, including all 53 Muse adapter tests. Two independent read-only reviews of 0eaef8c735b8b619688149f64df6471a66b2555f found no blocker or should-fix findings. Existing bot reviews had no actionable findings.
Real Muse runtime and client integration remain unverified because this VM has no Muse runtime. Adapter tests cover all four cancellation outcomes, successful answers, and approval behavior.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
size:S10-29 changed lines (additions + deletions).vouch:unvouchedAuthor is not yet trusted in the VOUCHED list.
2 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When Muse ends a question without an answer, T3 still records it as answered. Muse reports why in
userInput/settled'soutcome(cancelled,interrupted,timedOutoraborted), but the adapter ignored it and always settled the request asresolved. The thread showed the question as completed with no answer, and agents reading the thread's requests over MCP were told it was resolved. Muse's model, meanwhile, was told the question was cancelled or timed out.Change
In the
userInput/settledbranch only, those four outcomes now settle the request ascancelled. This is the same state the adapter already produces when a turn ends with a question open.answered,clarified, a missing outcome and any unknown future outcome still settle asresolved, so older and newer Muse builds keep today's behaviour.approval/resolvedis unchanged.Scope and approval
This is a small, focused fix for an obvious protocol-translation bug: one condition in the Muse adapter plus test rows. It needs no contract or client changes. Clients already render cancelled requests because
finish()produces them.Out of scope, each a separate change: decoding
autoResolutionMs, sendinguserInput/engaged, and keeping clarification text or partial answers from an interrupted question.Verification
it.effect.eachcase topackages/provider-muse/src/server/adapter.test.ts. It emitsuserInput/requested, thenuserInput/settledwith each of the four outcomes, and asserts that the runtime request and its turn item end upcancelledwith no answers.main, all four rows fail withexpected 'resolved' to equal 'cancelled'. With the fix they pass.vp test run packages/provider-muse/src/server/adapter.test.ts: 45/45 pass. The existing settled case with nooutcomestill resolves.vp run check:changedis green: format, lint, knip, typecheck and tests.What I could not check: none of the recorded Muse sessions contains a question, so I didn't watch a live Muse host send these outcomes. I also didn't confirm how often Muse sets
autoResolutionMson questions.Council review
Rounds: 1
Created with Claude Opus 5.5 in Claude Code (running in T3 Code).
🤖 Generated with Claude Code