Found while doing the prose-only fix for #4918 (PR #5879), which names this file as the reference shape.
packages/plugin-detail/src/__tests__/recordHighlightsInputs.spec-parity.test.ts took the pin-aware disposition in PR #4671 — but only in its body. Its module header still narrates strip mode as a present-tense fact about the installed @objectstack/spec, so the file that models the correct disposition contradicts itself in its own opening comment.
The stale lines (lines 22-26 on main @ 1939c9610)
* - a top-level input the spec does not declare is worse than undocumented,
* it is actively misleading. `RecordHighlightsProps` is a plain `z.object`,
* so an unknown top-level key is STRIPPED on parse with no error, the
* manifest gate only validates top-level props and raises no diagnostic,
* and the renderer never sees it. The manifest would be telling authors to
* write something the platform throws away.
Forty lines further down, the same file already states the contract correctly and probes it behaviourally via specRefusesUnknownTopLevelKeys.
Measured against the installed pin
RecordHighlightsProps is not a strip-mode z.object on the installed pin. Feeding it one undeclared top-level key, with a declared-key control:
=== RecordHighlightsProps ===
control(declared keys only).success = true
probe(+undeclared top-level key).success = false
MODE = strict; issue codes = ["unrecognized_keys"]
unrecognized_keys names = ["__objectui_4918_probe__"]
So "STRIPPED on parse with no error" is false as written. The paragraph's verdict — publishing a top-level input the spec does not declare is actively misleading — remains correct; only the mechanism it cites has been falsified, which is the same shape #4918 was filed for.
Why no gate catches it
Identical to #4918: it is a module-header comment that no assertion reads. Both recordHighlightsInputs and the whole plugin-detail suite are green today. A comment no assertion depends on cannot be caught by running anything, and it reads as current to the next agent.
Suggested disposition
Prose-only, same disposition as PR #5879: state the pin-independent verdict, note the contract expresses it two ways depending on the installed pin, and point the header at the file's own specRefusesUnknownTopLevelKeys rather than narrating a mode as fact. No assertion needs to change; no gate is affected.
Not fixed in PR #5879 — that claim is bounded to the two comment blocks #4918 names, in two other files, and a prose card quietly growing its file surface is the shape this repo keeps paying for.
Generated by Claude Code
Generated by Claude Code
Found while doing the prose-only fix for #4918 (PR #5879), which names this file as the reference shape.
packages/plugin-detail/src/__tests__/recordHighlightsInputs.spec-parity.test.tstook the pin-aware disposition in PR #4671 — but only in its body. Its module header still narrates strip mode as a present-tense fact about the installed@objectstack/spec, so the file that models the correct disposition contradicts itself in its own opening comment.The stale lines (lines 22-26 on
main@1939c9610)Forty lines further down, the same file already states the contract correctly and probes it behaviourally via
specRefusesUnknownTopLevelKeys.Measured against the installed pin
RecordHighlightsPropsis not a strip-modez.objecton the installed pin. Feeding it one undeclared top-level key, with a declared-key control:So "STRIPPED on parse with no error" is false as written. The paragraph's verdict — publishing a top-level input the spec does not declare is actively misleading — remains correct; only the mechanism it cites has been falsified, which is the same shape #4918 was filed for.
Why no gate catches it
Identical to #4918: it is a module-header comment that no assertion reads. Both
recordHighlightsInputsand the wholeplugin-detailsuite are green today. A comment no assertion depends on cannot be caught by running anything, and it reads as current to the next agent.Suggested disposition
Prose-only, same disposition as PR #5879: state the pin-independent verdict, note the contract expresses it two ways depending on the installed pin, and point the header at the file's own
specRefusesUnknownTopLevelKeysrather than narrating a mode as fact. No assertion needs to change; no gate is affected.Not fixed in PR #5879 — that claim is bounded to the two comment blocks #4918 names, in two other files, and a prose card quietly growing its file surface is the shape this repo keeps paying for.
Generated by Claude Code
Generated by Claude Code