Skip to content

[finding] recordHighlightsInputs' MODULE HEADER still narrates strip mode as fact — the file PR #4671 converted contradicts itself, and it is the reference other parity tests are told to copy #5881

Description

@claude

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions