Repository navigation
feat(components): page:header stops reading showStar; the host toggle is the one star switch - #12644
Conversation
… is the one star switch The renderer read, the pass to RecordTitleChip and the registration input leave ahead of the @objectstack/spec bump that tombstones the key (objectstack#23650, landed as objectstack#23781). The chip's own showStar prop retires too: it draws its star exactly when onToggleFavorite is given. The CONTROL case that pinned "showStar: false hides the star" is replaced by pins that an authored showStar (on the node and under properties) changes nothing, and that the registration publishes no showStar input. The parity suite's settledUpstream row leaves; a page:header.showStar entry in UNPUBLISHED_EXEMPTIONS covers the installed spec, and goes dangling and stale on the bump that installs the tombstone. Claude-Session: https://claude.ai/code/session_01RP9ftxaq1x5KKbvFpDWptn Co-authored-by: Claude <noreply@anthropic.com>
席位核对 — ACCEPT · objectui#12627 · head
|
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
Contract reviewServed-tier: Inputs read: card objectui#12627 (body and all three comments: first grade ① Derived judgments
② Semver level
③ Boundary flagsRelayed report
Flags of this review:
Nothing is escalated. Implemented-by: VERDICT: PASS Generated by Claude Code |
Landing · head
|
Fixes #12627
Clause-②: no
The consumer half of objectstack-ai/objectstack#23650's ruling (record 6203775759, 「A 退役 showStar (Recommended)」), landing ahead of the
@objectstack/specbump that carries objectstack-ai/objectstack#23781.18.0.0-next.2does not carry it; the installed pin is18.0.0-next.1.What changed
packages/components/src/renderers/layout/containers.tsx): theshowStarread and its pass to the chip are gone. The star draws exactly where the host'sRecordContextcarriesonToggleFavorite; an authoredshowStar, on the node or underproperties, changes nothing.RecordContextValue.onToggleFavoriteis untouched.page:headerinputsno longer publishshowStar.RecordTitleChip(packages/components/src/custom/RecordTitleChip.tsx): theshowStarprop is retired. The chip draws its star exactly whenonToggleFavoriteis passed. Measured: the only caller was the renderer above; hotcrm and objectstack have none. This narrows the package's public face (exported throughcustom/index.ts), so a contract-review-tier review is owed before the queue.page-header-star-host-toggle-12427.test.tsx): the CONTROL case 'the authored showStar: false hides the star even when the host wires a toggle' is replaced by:showStar: falseon the node and underpropertiesstill draws the star where the host wires a toggle;showStar: truein both carriers draws no star without a toggle; the registration publishes noshowStarinput. Every host-toggle case stays.registry-inputs-spec-parity.test.ts): thesettledUpstreamrowpage:header/showStarleaves with the input, and the objectstack#6776 note is updated. Apage:header.showStarentry inUNPUBLISHED_EXEMPTIONScovers the installed spec, which still lists the key. It disarms itself: the first installed spec carrying the tombstone makes it dangling and stale, and deleting it is the whole fix.showStarrows incontent/docs/layout/page-header.mdxandcontent/docs/guide/layout.mdare replaced by one sentence: the favorites star draws where the host wires a favorites toggle, and metadata does not control it..changeset/12627-page-header-show-star-retired.md(@object-ui/componentsminor; names the chip prop removal as breaking for direct users).Deviations
UNPUBLISHED_EXEMPTIONSmap, notGLOBALLY_UNPUBLISHED_SPEC_KEYS, because only the former goes red on the bump.Screenshots
HotCRM account record page at 1280 px, served from this branch's console against a fresh hotcrm backend. The reference console wires no favorites toggle, so the expected picture is no star, unchanged; a DOM probe counted 0 star buttons in both themes.
Test evidence (at 485513c)
pnpm --filter @object-ui/components test(full, once): exit 0; Test Files 390 passed, 1 skipped; Tests 3936 passed, 24 skipped.git diff HEADempty. Re-arming the old read: 2 red. Ungating the chip star: 4 red. Re-publishing the input: 2 red. Renaming the exemption key, which rehearses the bump: 3 red, including 'every unpublished-key exemption names a key the spec really declares' and 'carries no stale unpublished-key exemption'.@object-ui/components:type-checkexit 0,buildexit 0; builtdistcarries noshowStar, and passingshowStartoRecordTitleChipnow fails with TS2322.check-changeset-presence,check:i18n-keys,check:i18n-drift,check:new-line-citations: exit 0.tsc --noEmit: not measured locally (plugin closure unbuilt; only module-resolution errors, none on changed lines); left to CI.Acceptance notes
UNPUBLISHED_EXEMPTIONS['page:header.showStar']when the suite names it.sdui.manifest.jsondropsshowStaron its next.objectui-shahop; out of scope here.page-header.mdxstill lists the star among the chip's parts without its host-toggle condition (polish, left as is).Session:
https://claude.ai/code/session_01RP9ftxaq1x5KKbvFpDWptn🤖 Generated with Claude Code
https://claude.ai/code/session_01RP9ftxaq1x5KKbvFpDWptn