Skip to content

docs(decisions): record why output-contract defects are gated, not seam-patched - #15

Merged
Fl0p merged 1 commit into
mainfrom
flo-920-adr-static-output-gates
Sep 19, 2026
Merged

Fl0p merged 1 commit into
mainfrom
flo-920-adr-static-output-gates

Conversation

@Fl0p

@Fl0p Fl0p commented Sep 19, 2026

Copy link
Copy Markdown

Fork-local ADR. Records the decision behind the registry-wide output-field gate: detect the omission statically from the canonical registry rather than route manage_tools local dispatch through canonical projection and schema validation.

The local dispatch path (FMcpNativeTransport::TryHandleLocalToolCall) hands the manager result straight to BuildToolResult with no projection and no required-field check, which is why manage_tools.list_categories can omit its declared-required totalCategories without any error surfacing. Nine capability records route that way. Changing that seam is not behaviour-preserving and belongs to the upstream maintainer, so we gate instead and report the mechanism when forwarding.

Docs only, no code paths touched.

…am-patched

Three handlers have now shipped without a field their own capability record
marks required. Where the native execute seam validates, the omission becomes
a false OUTPUT_SCHEMA_VIOLATION on a call that succeeded; on the manage_tools
local dispatch path there is no projection or validation at all, so it is
invisible. The durable answer is a registry-generated CI gate over both paths;
changing upstream's dispatch seam is a maintainer decision with a real
compatibility cost, and is reported rather than made by us.

Co-Authored-By: Daedalus <daedalus@agents.flopbut.local>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 19, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 741ee1e5-f96c-44ca-b049-b37c725e4347


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Fl0p
Fl0p merged commit 01e9cef into main Sep 19, 2026
11 checks passed
@Fl0p
Fl0p deleted the flo-920-adr-static-output-gates branch September 19, 2026 22:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant