feat(mcp): manage queued thread work - #8699
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Warning Your free Security trial is over. An organization admin can activate Security or dismiss this notice. Comment |
There was a problem hiding this comment.
One convention violation found in the new Effect service module. See inline comment.
Posted via Macroscope — Effect Service Conventions
Thread transfer impact
This comment will update automatically after the next completed run. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
Bugbot Autofix is ON, but a cloud agent failed to start.
Reviewed by Cursor Bugbot for commit ebc47f0. Configure here.
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This PR adds six production MCP tools that let agents inspect and mutate queued work, including editing prompts, reordering or cancelling runs, and promoting queued messages into active steering. It also changes shared orchestration policy, locking, and durable replay behavior, creating a broad runtime surface that merits human review. No code changes detected at You can add or adjust custom eligibility rules. Learn more. |
490318a to
373612e
Compare
There was a problem hiding this comment.
Reviewed the queued-work MCP service, contracts, toolkit, and the orchestrator/thread-management additions against the Effect service conventions. The service definition itself now follows the canonical shape (inline Context.Service interface, real make, exported layer). One small deviation remains in the new orchestrator surface.
Posted via Macroscope — Effect Service Conventions
There was a problem hiding this comment.
UI Consistency: environment routing regression in a shared renderer
One concrete violation of the environment-routing rule, plus one dead global CSS rule introduced by this change. Everything else I checked in the web UI scope (MenuPopup width defaulting contract, @variant dark/light usage, the virtualized/topbar scroll-fade masks preserving the scrollbar lane, and the thread details panel rows composing Button/Select/Tooltip primitives) looked consistent.
apps/web/src/components/ChatMarkdown.tsx— the shared markdown renderer now resolves its server config and "open in editor" RPC from the globally active environment instead of explicit scope.apps/web/src/components/pullRequest/PullRequestMarkdown.tsx— the pull request panel no longer passes an explicit environment to that renderer (environmentIdis now an accepted-but-unused prop).apps/web/src/index.css— the new.surface-subheaderrule has no consumers; the four call sites use thedata-surface-subheaderattribute instead.
Posted via Macroscope — UI Consistency
There was a problem hiding this comment.
One finding on the new QueueMcpService error translation. Everything else (inline Context.Service interface, make/layer shape, namespace import in McpHttpServer, Foo["Service"] typing in Orchestrator/ThreadManagementService, toolkit wiring) matches the existing worktree/orchestrator MCP conventions.
Posted via Macroscope — Effect Service Conventions
e9da34d to
b0812c2
Compare
c01ff20 to
9d2539a
Compare
b0812c2 to
6d4c97d
Compare
There was a problem hiding this comment.
One finding on the new queue MCP service: the dispatch-error translation boundary discriminates statically known tagged failures by duck-typing an unknown value instead of the declared OrchestratorV2Error channel.
Posted via Macroscope — Effect Service Conventions
f2e4a0d to
3ed8c4d
Compare
b82facd to
2ac9bfe
Compare
e2f3c0f to
038581a
Compare
101d33b to
fd15a16
Compare
|
Superseded as the active MCP proposal by #10555 in the rebuilt MCP stack, following the maintainer request to review thin service wrappers separately from service hardening. This is not a full feature-parity replacement. Output text is bounded by Unicode code points. Paging is a live offset. Queue ordering, dispatch and replay semantics remain in the existing services. Closing this mixed proposal without merging. The remote branch |

Problem
Agents could enqueue work but could not inspect or safely manage queued runs through MCP.
Change
t3_queue_listandt3_queue_readtools.Behavior
Fresh mutations validate current project scope and queued-run state. Accepted retries return the original durable result before mutable attachment or lifecycle checks. Reorder results distinguish a replayed request from a newly applied destination, and list previews remain bounded without splitting Unicode surrogate pairs.
Validation
@t3tools/contractsandt3typechecks.Base
Standalone PR on
t3code/codex-turn-mappingat415ed0f73b97f1655b6282492f81d0b2bba3a9cc.Implemented by GPT-5.6-Sol via Codex in T3 Code.