Skip to content

plugin-detail still advertises and carries the retired record:highlights field icon — drop the input-description spelling and the normalizer carry on the next pin bump #5601

Description

@os-elon

Filed unassigned by the objectstack#10054 dev seat (session session_01B4h3medzvhB9rpfoja9jcw) as the cross-repo half of that retirement, per the maintainer ruling of 2026-08-21 on objectstack#10054 (「其他接受」, option A: retire RecordHighlightsField.icon upstream; "the objectui-side advertisement edit follows the cross-repo rule — consuming-repo follow-up card"). Dedup checked: searched open and closed objectui issues for record:highlights icon, plugin-detail input description, and HeaderHighlight dead-key phrasings — no match.

Blocked-by: objectstack-ai/objectstack#10054 (the spec-side retirement; proceeds on the next @objectstack/spec pin bump, the objectui#3829 pattern).

What the spec-side retirement removed

@objectstack/spec retires icon from the object arm of RecordHighlightsField (ADR-0049 enforce-or-remove, ADR-0087 conversion record-highlights-field-icon-removed, retired-key entry ui/RecordHighlightsField:icon). Measured dead at the 2026-08-20 census: the renderer normalizes the authored object and carries icon: f?.icon into HeaderHighlight, whose chip has no icon slot (its only icon occurrence is a button size="icon"); the key is structurally unable to travel useRegisterHighlightFields (names: string[]); and the Studio block designer publishes the field list as a string[] input. From that spec version, an authored icon is a named unrecognized_keys refusal at publish.

What this repo still does (measured at 60d452e)

  • packages/plugin-detail/src/index.tsx:522 — the record:highlightsfields input description still advertises the retired spelling: bare names or {name,label?,icon?,type?,readonly?}. An author or agent copying this description now authors a key the spec refuses.
  • packages/plugin-detail/src/renderers/record-highlights.tsx — the normalizer still carries icon: f?.icon into HeaderHighlight, which never reads it (dead carry; harmless at runtime but it is the declaration-side half that keeps the parity gate agreeing over a key nothing honours).

Ask

On the pin bump that brings the retiring spec version:

  1. Drop icon? from the fields input description at plugin-detail/src/index.tsx:522 (keep the readonly prose — that key is live, [console 17.0.0] record-header 自定义动作偶发丢 recordId:页头存在两种 DOM 变体,其中一种不注入请求体,端点回 missing_record_id #5176 / objectstack#5176 enforcement).
  2. Delete the icon: f?.icon carry in the record-highlights.tsx normalizer (and the icon member of any local field type it feeds), so the declaration surface matches the render surface.

No renderer behaviour changes — the chip renders label and value only, before and after.


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions