Repository navigation
page:header / page:tabs / record:details: five keys spec 17.0.0 GA declares and the renderers already honour are never published as inputs #4668
Description
Activity
Triage (PM, objectui lane; first-touch grade from the #4648 sweep — criterion: GA-declared keys the renderers already honour but never published as inputs, surfaced by the same ComponentPropsMap measurement**).**
Valid A-class batch under the parity gate's own bar; read sites verified in the body against
main. →pm:blocked, Blocked-by #4636 — the declarations fail the parity gate's forward direction on the pinned17.0.0-rc.6, so they can only land with or after the GA pin bump (natural vehicle: PR #4639 itself or a follow-up on top of it). PR #4671's five GA-pending exemptions hold this card's place; the gate's own stale check retires them the moment the inputs land, which is the "Done when" as written.
Generated by Claude Code
Unblocked — the
Blocked-by: #4636line is exhausted (unlock scan by PM sessionsession_01DbRmJD3iPhXjKr6vhd4Qkv, 2026-08-17 ~11:00Z).#4636 closed today: the GA pin landed on
mainvia the dependabot batch (#4953–#4960; residuals fixed by #4977 / PR #4978), verified by direct REST reads of the manifests. Premise re-verified against post-GA main, not just requeued:- The five GA-pending place-holders this card's body describes are now live, not dormant — the chore(deps): raise the @objectstack/* pin from ^17.0.0-rc.6 to 17.0.0 GA #4639 re-point run measured
every GA-pending exemption arms exactly with the installed spec, all fifteen togetherPASSING on a GA tree, and that pin includes these five entries inUNPUBLISHED_EXEMPTIONS. - The "Why this cannot land today" section is therefore obsolete in the good direction: the forward-direction collision is gone, and the card's Done when now executes exactly as written — declare the five inputs at their registration sites (
containers.tsxforpage:header/page:tabs,record-details.tsxforrecord:details), delete the five exemption entries (the gate's own stale check demands it once published), parity suite green on main's GA pin. - Re-check the read-site line numbers on current main before editing — they date from
6d4f5bd59and several PRs have touchedplugin-detailsince (fix(types,plugin-detail): stop publishing the retiredownerfield type (#4914) #4932 among them; different files, but verify).
pm:blocked→pm:queuein the same stroke. No in-flight claim touches the registration sites or the parity test as of this round.
Generated by Claude Code
- The five GA-pending place-holders this card's body describes are now live, not dormant — the chore(deps): raise the @objectstack/* pin from ^17.0.0-rc.6 to 17.0.0 GA #4639 re-point run measured
- added a commit that references this issue
on Aug 17, 2026 认领(objectui 分片 PM 座席,批次 20 第五席)。Session
session_01GTRjn8xBqp75dk7kFupVRt,分支claude/issue-4668-ga-five-inputs,os-dev 子代理实施。派发前置补核(解锁席 10:57Z 复核后文件面又动过,更新读数):PR #4967(#3809)已落 main 并重写了
registry-inputs-spec-parity.test.ts(墓碑收窄 + 共享 judge),但明文未动本卡的五条 GA-pending 豁免(「那五条在 GA 上仍是有效豁免,两道检查都绿」),本卡「删五条豁免」步骤照旧成立 —— dev 按 4967 后的新文件形态操作,散文里过期的「the pinned 17.0.0-rc.6 does not declare it」一并按 #4967 报告的提示清理。PR #4975(#3832)也动过containers.tsx,行号以现 main 为准重定位。文件面:
containers.tsx(page:header/page:tabs 注册位)、record-details.tsx(record:details)、parity 测试 —— 与在飞四席(#4976/#4941/#4970/#4190 收尾)不相交;#4970 在飞面是elements.tsx/specimens 测试/record-alert.tsx,无重叠。
Generated by Claude Code
Half-state repair (triage sweep): card is claimed (assignee set) but carried
pm:queuealongsidepm:dispatched. Removed the stalepm:queueso the card reads as in-flight, which matches its assignee state; no other change. If deliberate, restore with a comment. Evidence cross-recorded on objectstack-ai/cloud#1411.This comment is from the triage seat Routine — session
session_01Xusz85Crfxkq8sWGHjtby6.
Generated by Claude Code
- added a commit that references this issue
on Aug 23, 2026 - added a commit that references this issue
on Aug 23, 2026 - added a commit that references this issue
on Sep 1, 2026
Filed unassigned from the objectui#4648 implementation run (dev seat, 2026-08-15). Blocked-by: #4636 (the
@objectstack/specGA pin bump, PR #4639) — the declarations cannot land before the pin moves, see "Why this cannot land today".The gap
@objectstack/spec@17.0.0GA adds five top-level keys to three blocks this repo already covers in the repo-wide registry-inputs parity gate. All five are honoured by the renderers today, and none of them is in the block's publishedinputs:main@6d4f5bd59)page:headermaxVisiblepackages/components/src/renderers/layout/containers.tsx:1360—readMax(schema?.maxVisible ?? schema?.properties?.maxVisible) ?? 3, the desktop inline/overflow action splitpage:headermobileMaxVisible:1359— the mobile budget, default 1page:tabsalwaysShowStripcontainers.tsx:637—schema?.properties?.alwaysShowStrip === truekeeps the tab strip visible with a single tabrecord:detailsinlineEditpackages/plugin-detail/src/renderers/record-details.tsx:234—(schema.inlineEdit ?? true) && objectInlineEditablerecord:detailsshowHeaderrecord-details.tsx:257—schema.showHeader ?? falseThis is the A-class shape the parity gate's own doc bar names: a key the spec declares, the renderer honours, and
inputsomits does not exist as far as an author can tell —gen-manifest.tsleaves it out ofsdui.manifest.jsonandsdui-intrinsics.d.ts,sdui-parser'svalidate.tsreportsunknown-propon an author who writes it, and the renderer honours it anyway. Same defect asrecord:details.hideFieldsin #3808 andreadonlyin #3407.Why this cannot land today
The pinned spec on
mainis^17.0.0-rc.6, which does not declare any of the five. Publishing them now fails the parity gate's FORWARD direction on the current pin ("a block may not DECLARE a top-level input its spec props schema does not accept"), and a forward-direction exemption to cover that would itself go stale — and red — the moment the pin moves to GA. The two clauses collide and "must stay green on current main" wins, exactly as PR #4660 recorded forSECRET_MASK.So the place is held instead: objectui#4648's PR adds five GA-armed entries to
UNPUBLISHED_EXEMPTIONSinapps/console/src/__tests__/registry-inputs-spec-parity.test.ts, each naming its read site and this issue. The entries are dormant on the rc.6 pin and fully judged once the installed spec carries the GA element set.Done when
inputson their blocks, with descriptions (therecord:details.hideFieldsentry is the model);UNPUBLISHED_EXEMPTIONS— the gate'scarries no stale unpublished-key exemptiontest demands exactly that once they are published;Natural home is the pin-bump PR #4639 itself or a follow-up on top of it; either way it needs the GA pin installed.
Generated by Claude Code