Skip to content

[AI-1489] Pin the vendor-capable flows schema across every driver projection - #388

Merged
realtonyyoung merged 6 commits into
mainfrom
tonyyoung/ai-1489-driver-schema-conformance
Jul 29, 2026
Merged

realtonyyoung merged 6 commits into
mainfrom
tonyyoung/ai-1489-driver-schema-conformance

Conversation

@realtonyyoung

@realtonyyoung realtonyyoung commented Jul 28, 2026 •

Copy link
Copy Markdown
Collaborator

[AI-1489] Pin the vendor-capable flows schema across every driver projection

Leg 1 of AI-1489 — §6 "Schema and registration conformance" plus clarification B's descriptor half. No spend, no reviewers launched. The live crossings and the Copilot routing leg are separate and still blocked on AI-1527.

The gap

Reviewer choice is meant to be a property of the request, not of whichever harness is driving. Nothing enforced that, because registration was four mechanisms and two independent definitions:

mechanism
Cursor, Copilot, Gemini, Kiro, OpenCode, Antigravity one JSON writer, differing only by an McpConfigShape
Codex TOML, separate engine, own ownership ledger
Claude Code hand-maintained static kcap/.mcp.json
Pi hard-coded server list inside an embedded TypeScript bridge

…and each of the six JSON harnesses had its (subset, shape, marker) tuple written out twice — once in PluginCommand, once in SetupCommand's installer delegates — with nothing tying them together. A user could get a different tool surface depending on whether they ran kcap plugin install or kcap setup.

The existing per-harness tests each assert Contains("kcap-flows") in isolation: that a server by that name was written, not that it resolves to the same executable and therefore the same schema.

What changed

HarnessMcpProjections (new, Capacitor.Cli.Core/Mcp/) holds each harness's (subset, shape, marker) once. PluginCommand's six register paths, its six remove paths, Kiro's install probe, and all six SetupCommand delegates now consume it. new McpMarker( no longer appears in PluginCommand at all. The divergence is unrepresentable rather than merely detected.

VendorSelection.KnownVendorFlags widened private → internal so the conformance table can pin itself against it.

What the suite pins

  • vendor is an optional string on both START tools, and on neither of the six follow-up tools — the applied vendor is pinned at start, so a vendor on a follow-up is either silently ignored or an incoherent mid-run switch. model is pinned structurally too (string, not required).
  • The descriptions carry what the schema cannot — that omitting vendor takes the server default, that the token is canonical lowercase, that there is no silent fallback, and that model requires vendor. The description is the only mechanism by which a driver LLM learns to pass the parameter.
  • Every driver projection resolves to the same kcap mcp flows, driven through the real installers (PluginCommand.HandleAsync against a FakeUserHome, each arm seeding the same installed-but-stale state its own tests use), with ordered argv comparison.
  • Register → probe → unregister round-trips per harness, so install and uninstall cannot read different ownership tuples and strand entries.
  • Pi's bridge still lists flows — it discovers tools at runtime, so dropping it from that literal is silent.
  • The two server lists agree in both directions. KcapMcpServers (registration) and KcapMcpRegistry (allowlist resolution, and the recursion guard's authority) were maintained separately.
  • Both status and polled-round formatters surface the applied vendor/model — the audit rendering is duplicated across formatters, and the polled path is the one agents read most.

Tripwires

The harness table is hand-written because no enumeration of supported harnesses exists in production code — the list is spread across four string arrays. So it is pinned against VendorSelection.KnownVendorFlags, and the bundled static configs are pinned against what is actually shipped in kcap/. A tenth harness, or a deleted arm, fails here rather than going quietly uncovered.

Verification

Every fix mutation-tested. These each fail: dropping vendor from start_flow; promoting model to required; drifting KcapMcpRegistry's args; a registry-only server; removing flows from Pi's literal; adding a tenth vendor flag; reversing the canonical argv order; dropping flows from the shared Copilot projection; giving Copilot the wrong shape; making Unregister use a different marker; deleting a bundled-config arm; and removing the audit rendering from either formatter.

Three earlier versions of these tests passed vacuously and were caught by mutation rather than by review — the reconstructed projection table, the dynamic-path ordering test, and the status assertion satisfied by the formatter's raw-JSON fallback.

Review: codex clean at 0417cf5 after 4 rounds (2 P1s, 5 P2s). Qodo: 4 findings, 2 already fixed by the codex rounds, 1 fixed here, 1 answered.

Tests: 42/42 in this suite. Full Tests.Unit failure set byte-identical to the 42-item pre-existing macOS baseline (CodexConfigTomlTests and the uninstall paths fail locally because /var is a symlink and CodexConfigToml's path guard rejects symlinked components — unrelated to this change; this suite's scratch dirs sit under the assembly output for that reason).

…ojection

Reviewer choice is meant to be a property of the request, not of whichever
harness is driving. Nothing enforced that: registration is FOUR mechanisms, not
one. Six harnesses (Cursor, Copilot, Gemini, Kiro, OpenCode, Antigravity)
converge on one JSON writer and differ only by a shape; Codex writes TOML through
a separate engine with its own ownership ledger; Claude Code loads a
hand-maintained static kcap/.mcp.json; and Pi gets a hard-coded server list
inside an embedded TypeScript bridge.

The existing per-harness tests each assert Contains("kcap-flows") in isolation —
that a server by that name was written, not that it resolves to the same
executable and therefore the same schema. A harness whose registration drifts to
a different command leaves a caller believing it named a reviewer when it sent
nothing.

Adds a conformance suite covering:
  - vendor is an optional string on both START tools, and on neither of the six
    follow-up tools (the applied vendor is pinned at start; a vendor there would
    be ignored or an incoherent mid-run switch);
  - the vendor/model DESCRIPTIONS carry what the schema cannot — that omitting
    vendor takes the server default, that the token is canonical lowercase, that
    there is no silent fallback, and that model requires vendor. This is the only
    mechanism by which a driver LLM learns to pass the parameter, so a correct
    schema with a silent description produces exactly the failure the contract
    exists to prevent;
  - all nine driver projections resolve to the same `kcap mcp flows`, driven
    through the real writers rather than asserted against the descriptor;
  - Pi's bridge still lists flows in its literal — it discovers tools at runtime,
    so dropping it there is silent;
  - the two independent copies of the server list (KcapMcpServers vs
    KcapMcpRegistry) agree, and every canonical server resolves as an allowlist
    entry. Nothing kept these in sync.

Also pins the hand-written harness table against VendorSelection.KnownVendorFlags
(now internal), so a tenth installable target fails here instead of quietly
being uncovered — no enumeration of supported harnesses exists in production
code, the list is spread across four separate string arrays.

Mutation-tested: dropping vendor from start_flow, drifting KcapMcpRegistry's
args, removing flows from Pi's literal, adding a tenth vendor flag, and changing
the canonical flows args each fail their assertion. The last one is instructive —
all seven generated arms fail while the two static hand-maintained files pass,
which is exactly the generated-vs-static drift this is for.

Scratch dirs live under the assembly output, not the system temp root: on macOS
/var is a symlink and CodexConfigToml's path guard rejects any symlinked
component, so a temp-rooted Codex registration silently returns Failed. (That is
also why the pre-existing CodexConfigTomlTests fail locally on macOS.)

26/26. Full Tests.Unit: 42 failures, all pre-existing on macOS and none in this
suite.
@linear-code

linear-code Bot commented Jul 28, 2026

Copy link
Copy Markdown

AI-1489

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Pin vendor-capable flows schema across driver projections

🧪 Tests 🕐 20-40 Minutes

Grey Divider

AI Description

• Adds cross-driver conformance tests for the vendor-capable flows tool schema.
• Verifies every registration mechanism launches the canonical kcap mcp flows server.
• Detects schema, registry, Pi bridge, and supported-harness coverage drift.
Diagram

graph TD
  Targets["Install Targets"] --> Suite["Conformance Suite"] --> Json["JSON Projections"] --> Flows["kcap mcp flows"] --> Schema["Vendor Schema"]
  Suite --> Configs["TOML and Static"] --> Flows
  Suite --> Pi["Pi Bridge"] --> Flows
  Suite --> Registry["Flow Registry"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Centralize harness registration metadata
  • ➕ Eliminates the hand-maintained projection coverage table.
  • ➕ Provides one production source for supported flags, config shapes, and registration paths.
  • ➕ Makes future harness additions discoverable without test-only visibility changes.
  • ➖ Requires a broader production refactor across fundamentally different registration mechanisms.
  • ➖ Could couple unrelated JSON, TOML, static, and generated-bridge implementations.
  • ➖ Still needs output-level tests to catch writer-specific command mangling.

Recommendation: Keep the PR's output-level conformance approach because it validates what each harness actually launches rather than trusting shared descriptors. A centralized harness manifest is a worthwhile follow-up for coverage discovery, but it should complement—not replace—these real-writer and static-output assertions.

Files changed (2) +292 / -1

Tests (1) +288 / -0
FlowsDriverSchemaConformanceTests.csAdd cross-driver flows schema conformance coverage +288/-0

Add cross-driver flows schema conformance coverage

• Adds a comprehensive suite covering start and follow-up tool schema rules, vendor/model descriptions, and structured status output. It exercises JSON, TOML, static, and Pi registration paths and adds drift checks for server registries and supported harness coverage.

test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs

Other (1) +4 / -1
VendorSelection.csExpose supported vendor flags to conformance tests +4/-1

Expose supported vendor flags to conformance tests

• Changes 'KnownVendorFlags' from private to internal so the conformance suite can verify that every installable harness has projection coverage. Runtime parsing behavior remains unchanged.

src/Capacitor.Cli/Commands/VendorSelection.cs

@qodo-code-review

qodo-code-review Bot commented Jul 28, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (1) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Class summary is overly verbose 📘 Rule violation ⚙ Maintainability
Description
The added class summary contains extensive implementation history and failure-scenario narrative
rather than a concise explanation of the test suite. This violates the requirement that code
comments remain concise and not substitute for self-explanatory code.
Code

test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[R11-28]

+/// <summary>
+/// Driver-schema conformance: every supported coding harness must reach the SAME vendor-capable
+/// <c>kcap-flows</c> tool schema, so reviewer choice is a property of the request and not of whichever
+/// harness happens to be driving.
+///
+/// <para><b>Why this needs its own suite.</b> The registration path is not one path. Six harnesses
+/// (Cursor, Copilot, Gemini, Kiro, OpenCode, Antigravity) converge on one writer and differ only by a
+/// <see cref="McpConfigShape"/>; Codex writes TOML through a separate engine with its own ownership
+/// ledger; Claude Code loads a hand-maintained static <c>kcap/.mcp.json</c>; and Pi gets a hard-coded
+/// server list inside an embedded TypeScript bridge. Four mechanisms, one contract. The existing
+/// per-harness tests each assert <c>Contains("kcap-flows")</c> in isolation — that a server by that
+/// name was written, not that it resolves to the same executable and therefore the same schema.</para>
+///
+/// <para><b>The failure this prevents</b> is a driver that appears to support named reviewer intent
+/// but cannot express it: a harness whose registration drifts to a different command, or a tool that
+/// quietly gains or loses <c>vendor</c>, leaves a caller believing it named a reviewer when it sent
+/// nothing. A stale-schema driver must never be able to claim it launched the named vendor.</para>
+/// </summary>
Evidence
PR Compliance ID 3 requires comments to be concise and add information not evident from the code.
The 18-line class summary enumerates all registration mechanisms, existing test behavior, and an
extended failure narrative that is already represented by the suite's named tests and helpers.

CLAUDE.md: Keep Code Comments Concise and Free of Linear Issue Numbers
test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[11-28]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The class-level XML documentation is unnecessarily verbose and embeds detailed implementation history and rationale that should not live in source comments.

## Issue Context
Retain a short summary of the conformance suite's purpose. Let the named tests and helper methods communicate the individual registration mechanisms and failure cases.

## Fix Focus Areas
- test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[11-28]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. Applied vendor assertion is ambiguous ✓ Resolved 🐞 Bug ≡ Correctness
Description
The status fixture gives requested and applied vendors the same value and only searches for
claude, so the test still passes if FormatStatusResponse stops surfacing the applied vendor. It
therefore does not enforce the structured applied-vendor status contract named by the test.
Code

test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[116]

+        await Assert.That(text).Contains("claude");
Evidence
The formatter independently renders requested_reviewer_vendor and applied_reviewer_vendor, but
the fixture assigns both claude; merely finding that token proves neither which field produced it
nor that the applied field was rendered.

test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[106-118]
src/Capacitor.Cli/Commands/McpFlowsServer.cs[1189-1195]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The status assertion cannot distinguish requested-vendor output from applied-vendor output.

## Issue Context
`FormatStatusResponse` renders these fields independently, and the contract specifically requires the applied vendor to remain visible.

## Fix Focus Areas
- test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[106-118]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Codex projections collapse together ✓ Resolved 🐞 Bug ⚙ Maintainability
Description
The coverage tripwire reduces both Codex and Codex plugin to the same codex key, so deleting
either projection leaves the --codex coverage assertion green. One of the two independent Codex
registration mechanisms can therefore become untested without this suite noticing.
Code

test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[277]

+            .Select(h => h.Split(' ')[0].ToLowerInvariant())
Evidence
DriverProjections contains separate Codex TOML and static plugin entries, but splitting each
harness name at the first space maps both to codex; the single claimed flag cannot distinguish
which projection remains.

test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[201-213]
test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[274-286]
src/Capacitor.Cli/Commands/VendorSelection.cs[15-18]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The projection coverage check aliases two independent Codex mechanisms to one harness key.

## Issue Context
Both Codex TOML and the static Codex plugin configuration must remain represented, while `VendorSelection` exposes only one `--codex` flag.

## Fix Focus Areas
- test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[201-213]
- test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[274-286]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


4. Registry parity is one-way ✓ Resolved 🐞 Bug ≡ Correctness
Description
The server-list test only checks KcapMcpServers.All against KcapMcpRegistry, so a server added
solely to the registry remains undetected despite the suite claiming both lists agree. That leaves
registry-only, unregistered servers allowlistable without triggering this tripwire.
Code

test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[R265-267]

+        foreach (var s in KcapMcpServers.All)
+            await Assert.That(KcapMcpRegistry.Resolve(s.Name)).IsNotNull()
+                .Because($"{s.Name} is registered with harnesses but unresolvable as an allowlist entry");
Evidence
KcapMcpServers.All and the registry's Entries dictionary are independent lists. Iterating only
All catches missing registry entries but cannot observe an extra registry-only entry.

src/Capacitor.Cli.Core/Mcp/KcapMcpServers.cs[11-29]
src/Capacitor.Cli.Core/KcapMcpRegistry.cs[10-28]
test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[246-268]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The conformance test verifies server-list parity in only one direction.

## Issue Context
The production code has independent canonical-registration and allowlist-registry collections. Exact agreement requires detecting entries unique to either collection.

## Fix Focus Areas
- test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[246-268]
- src/Capacitor.Cli.Core/KcapMcpRegistry.cs[10-28]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


View more (1)
5. Argument order is not pinned ✓ Resolved 🐞 Bug ≡ Correctness
Description
The projection test uses order-insensitive equivalence for process arguments, so a broken projection
such as ["flows", "mcp"] still passes even though it cannot launch the flows MCP server. This
defeats the suite's central registration-conformance guarantee.
Code

test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[220]

+        await Assert.That(p.Args).IsEquivalentTo(new[] { "mcp", "flows" })
Evidence
The canonical descriptor defines the ordered arguments as mcp, then flows, and the CLI
dispatcher interprets those exact positions. IsEquivalentTo does not enforce that ordering.

src/Capacitor.Cli.Core/Mcp/KcapMcpServers.cs[16-22]
src/Capacitor.Cli/Program.cs[301-344]
test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[217-221]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The projection test treats process arguments as an unordered collection, allowing invalid argument ordering to pass.

## Issue Context
`kcap` dispatches first on `args[0] == "mcp"` and then on `args[1] == "flows"`, so order is part of the executable contract.

## Fix Focus Areas
- test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs[217-221]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

To customize comments, go to the Qodo configuration screen, or learn more in the docs.

Qodo Logo

Comment thread test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs Outdated
Comment thread test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs Outdated
Comment thread test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs Outdated
Comment thread test/Capacitor.Cli.Tests.Unit/Mcp/FlowsDriverSchemaConformanceTests.cs Outdated
…table

Codex review round 1, and the P1 defeated the suite's central claim. The table
hard-coded KcapMcpServers.ForCursor and the expected McpConfigShape, while the
real choices are wired independently in SetupCommand and each PluginCommand
installer. So changing a real arm to omit kcap-flows, use the wrong subset, or
use the wrong shape left every projection test green — the test kept invoking
its own correct reconstruction. The Codex arm had the same hole, calling
RegisterKcapMcpServers directly rather than the install path.

Each arm now runs PluginCommand.HandleAsync against a FakeUserHome, seeding the
same installed-but-stale state its own PluginCommand*Tests use so `--if-installed`
takes the refresh branch. Codex is flagged BareInstall — it installs
unconditionally and needs a planted plugin root. Proof it now bites: dropping
kcap-flows from the production ForCursor subset fails six arms, where before it
failed none.

Also from round 1:

- argv comparisons were UNORDERED, so ["flows","mcp"] passed while launching
  nothing. Ordered in both the projection assertion and the two-list check.
- the drift check only ran canonical -> registry, so a registry-only server
  stayed allowlistable-but-never-registered with everything green — one of the
  exact failure modes the suite claims to prevent. Now compares both name sets
  (KcapMcpRegistry.AllIds is new) and every server's args.
- `model` was pinned by prose only, so retyping it to boolean or promoting it
  into Required — which would break every caller relying on the vendor's default
  model — still passed. Type and non-requiredness now pinned, mirroring vendor.

The coverage tripwire also stops matching on a display name split on whitespace
(which could match by accident) and matches on the flag each arm actually drives.

Every fix mutation-tested: production dropping flows, a registry-only server,
reversed argv order, and model promoted to Required each fail.

27/27. Full Tests.Unit unchanged at 42 pre-existing macOS failures, none mine.
…ontainment

Codex review round 2.

P1 — the SetupCommand route was outside the gate. `kcap setup` builds its own six
Register*Mcp delegates, duplicating the (subset, shape, marker) tuple that
PluginCommand also spells out. Mutating SetupCommand.RegisterCopilotMcp to drop
flows or use a divergent shape left every installer-driven arm green: a user
could get a different tool surface depending on whether they ran
`kcap plugin install` or `kcap setup`.

Fixed structurally rather than by testing both routes. The tuple now lives once,
in HarnessMcpProjections, and both call sites consume it — there is no longer a
second definition to diverge. Dropping flows from the shared Copilot projection
now fails 2 tests; giving it the wrong shape fails 1.

P1 — path containment was broken in three of seven arms, and the test could
therefore read and rewrite a developer's REAL harness config, or pass against a
pre-existing entry. The Gemini arm cleared GEMINI_HOME, a name GeminiPaths does
not read (it honours GEMINI_CLI_HOME); the Codex arm cleared nothing while
CodexPaths still gives ambient CODEX_HOME precedence; OpenCode cleared
OPENCODE_CONFIG_DIR but left its XDG_CONFIG_HOME fallback live. Every known
override is now cleared for every arm — a per-arm list is exactly what was wrong,
so there is no per-arm list. Codex also now passes
--skip-codex-network-access; a schema test has no business rewriting profile
network config.

P2 — the status assertion was satisfied by the fallback. FormatStatusResponse
catches formatter exceptions and returns the raw JSON body, so "contains claude"
passed even if formatting failed entirely. Now asserts the rendered labels and
that no raw JSON survives.

Mutation-testing that fix found something else: the audit rendering is
TRIPLICATED across FormatRoundResponse, FormatStatusResponse and
FormatPolledRoundResult, and my first mutant hit the wrong copy. The polled path
is the one an agent reads on nearly every flow, and it had no coverage at all —
added, and both formatter mutants now fail.

34/34. Full Tests.Unit unchanged at 42 pre-existing macOS failures, none mine.
Codex review round 3. I added HarnessMcpProjection.Unregister and then left it
unused — the six PluginCommand remove paths still hard-coded shape and marker,
and Kiro's "is the MCP half already installed?" probe constructed
`new McpMarker("kiro")` directly. So the single-source claim was only half true:
changing a projection made new installs write under one ownership tuple while
uninstall looked under the old one (stranding owned entries kcap could no longer
see) and Kiro's refresh read an existing install as absent.

All six removals now go through the projection, and OwnsAnything moves the probe
there for the same reason the marker name is derived rather than passed: a probe
reading a different tuple than the writer is the same bug in a third place.
`new McpMarker(` no longer appears in PluginCommand at all.

Pinned by a per-harness register -> probe -> unregister round-trip asserting the
config is left with no kcap entries. Mutation-tested by making Unregister use a
different marker name: all six fail.

41/41. Full Tests.Unit failure set byte-identical to the 42-item pre-existing
macOS baseline.
Qodo #3. The two bundled static configs were covered by an [Arguments] test the
tripwire could not see, and both reduce to `--codex` / `--claude` there — so
deleting the Codex-plugin arm left `--codex` green while one of two INDEPENDENT
Codex registration mechanisms went untested.

The bundled configs are now a list the coverage assertion can read, compared
against what is actually shipped in kcap/. A third bundled config, or a deleted
arm, fails. Mutation-tested by removing the .codex-mcp.json entry.

42/42.
Qodo #1, partially taken. The comments explain why each assertion is shaped the
way it is — which is load-bearing here, since three of this PR's review findings
were tests that passed vacuously and the rationale is what stops the next reader
simplifying them back. That stays, and it matches the surrounding code
(SingleFlightRefresh, McpConfigShape, KcapMcpRegistry all document intent at
length).

What was genuinely historical rather than explanatory is gone: which review round
found what, what my earlier attempts did, and past-tense accounts of defects that
no longer exist. Rewritten as present-tense reasons.

42/42.
@realtonyyoung
realtonyyoung merged commit e172445 into main Jul 29, 2026
6 checks passed
@realtonyyoung
realtonyyoung deleted the tonyyoung/ai-1489-driver-schema-conformance branch July 29, 2026 00:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant