Repository navigation
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agents read each tool's encoded-side JSON schema. A description set with .annotate on a trimmed string lands on the decoded side and never reaches them. Annotate the optional wrapper, as this code already does elsewhere, or use Schema.annotateEncoded where the field is required. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both fields add their description with `.annotate` after a `Schema.makeFilter` check, which loses it from the encoded and the decoded projection alike, so agents got bare strings and the walk in tools.test.ts could not see the gap. Move both to `Schema.annotateEncoded`, pin them by name, and say in the walk's comment what it cannot catch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The guard walk now follows every anyOf member and array items, which exposes timeOfDay, signature.header and filters[].path on schedule_task and update_scheduled_task. They move to Schema.annotateEncoded like the other trimmed-string fields. Three more pins cover array items and union members. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused MCP schema metadata fix that makes existing parameter descriptions visible to agents without changing validation, tool execution, defaults, or production infrastructure. The added coverage checks all registered toolkits, including nested and union-based parameters. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Schema description annotations packages/contracts/src/orchestratorMcp.ts, packages/contracts/src/scheduledTask.ts, packages/contracts/src/threadMetadataMcp.ts, packages/contracts/src/device.ts, packages/contracts/src/worktreeMcp.ts, apps/server/src/mcp/toolkits/pullRequests/tools.ts |
Descriptions move to optional or encoded schemas. Field types, optionality, validation constraints, and description text remain unchanged. |
Served schema description checks apps/server/src/mcp/McpHttpServer.test.ts, apps/server/src/mcp/toolkits/core.test.ts |
Tests check descriptions on selected pull-request tool parameters and across nested fields in selected listed tool schemas. |
Priority:
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix
Suggested reviewers: juliusmarminge, t3dotgg
Merge Risk: 
Minimal · up to a6ea6
-
No actionable merge-blocking issue is established for the MCP parameter-description change; it is mergeable after normal checks.
Pre-merge checks: 
4
-
Full details: Description check
-
Explanation
The pull request description includes all required sections. It clearly explains the problem, the implementation, scope, approval rationale, and focused verification results. The Scope and approval section does not provide a direct issue or approval-comment link, but it explains why this focused metadata fix does not require broader approval.
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
…hestra Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hestra Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hestra Resolve PullRequestTargetInput in pullRequests/tools.ts: keep this branch's outer Schema.optional(...).annotate shape so the descriptions reach the tool schema, and take main's host-neutral url and host description text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Note Written by thanks @only21mil. the encoded-side diagnosis and annotation fix were right. i updated this branch directly and kept your commits. merged current main and resolved the five conflicts using main's shorter wording. descriptions main intentionally removed stay removed. the fix now moves only existing guidance to the encoded schema or optional wrapper. replaced the new generic test file with 24 focused field cases in verification at
no ui changes. model argument quality and individual provider sessions were not retested. coderabbit skipped this head because its included review allowance was exhausted; no review bot was invoked manually. all 27 ci checks are green on this head, and the pr is conflict-free and mergeable. |
|
Note Written by merged main at verification at waiting for CI on the pushed head. no UI changed; individual provider sessions and model argument quality were not retested. |
Problem
Existing descriptions on transformed string parameters were missing from the encoded JSON schema served to MCP clients.
Change
This moves those descriptions to the optional wrapper or
Schema.annotateEncoded, preserving validation, defaults, and existing wording.The change covers orchestrator, pull request, device, worktree, thread metadata, and scheduled task fields. Existing tests in
core.test.tscheck 22 representative field paths, andMcpHttpServer.test.tschecks descriptions in authenticatedtools/listresponses for parent and delegated-child credentials. No UI changes.Scope and approval
This is Maria's maintainer-directed takeover of a focused metadata bug fix. It restores descriptions already written for existing parameters without changing tool behavior or adding a feature.
Merged main at
32bf48f42820with a merge commit. The conflict resolution preserves main's removal of thread metadata pull-request actions and keeps the description fix on surviving fields.Verification
Verification at
a6ea6a8e835246884514b8ff58d2edc3a79b8a8d:vp run check:changedpassed format, lint, both knip passes, graphql, 32 affected package typechecks, and 50 tests across six existing files.Takeover verification and conflict resolution by gpt-6.1-sol through the Codex harness in T3 Code. Original implementation by the contributor.