mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-25 14:55:28 +00:00
Closes #26529. When an MCP server returns a tool whose \`outputSchema\` contains a broken \`$ref\` (e.g. Google Stitch's \`#/$defs/ScreenInstance\`), the SDK's typed \`listTools()\` validator throws and opencode marks the ENTIRE server as failed — losing every other valid tool the server exposes. Catch the schema-reference errors and retry with a tolerant schema (\`looseObject\` + \`outputSchema: z.unknown().optional()\`) via the raw \`request\` path so the bad tool's schema is accepted as opaque while the others load normally. Equivalent fix shape to #26530 (nicolascancino) — kept his approach since it's correct. Bundles our reproducer test from \`kit/issue-reproducers\` so the regression is locked in. Verified red → green → red → green: - pre-fix: server marked \`failed\` - post-fix: server stays \`connected\`, valid tool present |
||
|---|---|---|
| .. | ||
| app | ||
| console | ||
| containers | ||
| core | ||
| desktop | ||
| docs | ||
| enterprise | ||
| extensions/zed | ||
| function | ||
| http-recorder | ||
| identity | ||
| llm | ||
| opencode | ||
| plugin | ||
| script | ||
| sdk | ||
| slack | ||
| storybook | ||
| ui | ||
| web | ||