fix(output): conform feature-flags _meta to the published schema#1845
Merged
Conversation
`fallow flags --format json` without `--explain` injects a `_meta.telemetry` block for run correlation (via the post-serialization attach_telemetry_meta pass), but the schema modeled `FeatureFlagsMeta` as requiring the explain-only `feature_flags` field and did not model `telemetry`. The emitted default-path document therefore failed validation against docs/output-schema.json: `_meta` was neither null nor a valid FeatureFlagsMeta. The MCP `feature_flags` tool and Code Mode emit the same shape, so agents validating against the published schema saw invalid output. FeatureFlagsMeta now models both `feature_flags` and `telemetry` as optional, mirroring the `Meta` and `CombinedMeta` envelopes whose telemetry is likewise an optional, never-required property injected by the same post-pass. The wire bytes are unchanged (this is a schema-correctness fix, not a wire change), so there is no schema_version bump. Regenerated docs/output-schema.json and the TS contracts; added a regression test pinning the telemetry-only default-path _meta shape. Found by the plan-028 agent-surface instance-validation probe.
BartWaardenburg
added a commit
that referenced
this pull request
Jul 13, 2026
…ce parity) Held item F5. Adds instance-level conformance (jsonschema dev-dep) validating real api-serializer and real-binary JSON output per-kind against docs/output-schema.json, and a CAPABILITY_PARITY table drift-tested from all three agent surfaces (31 MCP tools, 7 napi exports, 17 api runners) with required omission-intent notes. The Step 0 probe found the feature-flags _meta schema bug fixed in #1845. Recorded follow-ups: un-enveloped trace serializers, unmodeled error envelope, possibly-orphaned SymbolChainTrace `trace` kind.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fallow flags --format jsonwithout--explaininjects a_meta.telemetryblock for run correlation, but the schema modeledFeatureFlagsMetaas requiring the explain-onlyfeature_flagsfield and did not modeltelemetry. The default-path document therefore failed validation againstdocs/output-schema.json(_metawas neither null nor a validFeatureFlagsMeta). The MCPfeature_flagstool and Code Mode emit the same shape, so agents validating against the published schema saw invalid output.FeatureFlagsMetanow models both fields as optional, mirroring theMetaandCombinedMetaenvelopes whose telemetry is likewise an optional never-required property injected by the same post-pass. The wire bytes are unchanged (schema-correctness fix, noschema_versionbump). Regenerated the schema + TS contracts; added a regression test.Verified: schema drift gate green, contract drift check green, real
fallow flags --format jsondocuments (synthetic + preact benchmark, both with and without--explain) validate against the regenerated schema, fallow-api (211) and fallow-mcp (531) tests pass.Found by the plan-028 agent-surface instance-validation probe (F5).