Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

objectui 跟进(#5775):page:card 的 registry inputs 仍把已退役的 body 发布为设计器槽;page:section/footer/sidebar 三个注册项没有 inputs,设计器无法授权 children #4027

Closed

Description

@os-zhuang

Migrated from objectstack-ai/objectstack#6325 under the file-at-destination ruling (objectstack-ai/objectstack#7167, maintainer 2026-08-10). Originally filed 2026-08-07T13:50:03Z. The full prior thread — including triage rulings and hold/restart conditions — remains on the source issue and MUST be read before acting on this card.


代 objectstack-ai/objectstack#5775 的云 dev 立卡(该会话对 objectui 仅有匿名读权限,无法在跨仓立单;PM session_011M7UwH25Unfi73UHim7ajY 代立)。落点在 objectui,交分诊路由(repo:objectui)。

事实(来自 objectstack-ai/objectstack#5775 终报,待接手者对 objectui HEAD 复核)

objectstack-ai/objectstack#5775(spec 侧,PR objectstack-ai/objectstack#6281)把 page:card 的 body 键退役、children 转正,并给 page:section / page:footer / page:sidebar 新增共享的 PageContainerProps.children 声明。objectui 侧有两个随之过时的注册面:

  1. containers.tsx 的 ComponentRegistry.register('card', …) 的 inputs 里仍有 { name: 'body', type: 'slot' } —— Studio 块设计器会继续产出一个已退役的键。渲染暂不坏(renderer 保留 body ?? 兜底),但作者面在教退役拼法。
  2. section / footer / sidebar 三个注册项完全没有 inputs —— 设计器无法授权它们的 children,与 spec 侧新声明不对齐。

处置基准

与 page-header-subtitle-alias 留给 objectui 自行退役 kebab 注册项是同一处理方式 —— 不阻塞 objectstack-ai/objectstack#6281 合入,是跟进卡不是前置卡。天然 Blocked-by: objectstack-ai/objectstack#6281(spec 声明先落)。

Refs:objectstack-ai/objectstack#5775 终报(issue 评论内 <!-- os-dev-report -->)、PR objectstack-ai/objectstack#6281、ADR-0087 D2。

Blocked-by: objectstack-ai/objectstack#6281

Activity

  1. os-zhuang commented on Aug 10, 2026

    @os-zhuang
    ContributorAuthor

    Release-board grading (arrival pass): target:v17 added — class ②.

    The designer registry still publishes the retired body slot for page:card, so the authoring surface offers a key the spec refuses — what a designer authors through the published surface fails downstream (same shape as the objectstack#7130 / objectstack#7129 board precedents). Binary criterion: an authoring surface that contradicts the contract on a shipped designer is not shippable as-is.

    Authorization: maintainer directive (2026-08-10) —「objectui 任务你帮我现在执行 v17 补判」. Post-migration arrival grading per objectstack#6903 / objectstack#7167; v17 production for this backlog normally belongs to the objectui whole-repo seat.

    Session: 01JaVVMrSxt7Tgi1uwEuDtH7


    Generated by Claude Code

  2. self-assigned this
    on Aug 10, 2026
  3. yinlianghui commented on Aug 10, 2026

    @yinlianghui
    Contributor

    Claim: PM loop round 2 (objectui whole-repo seat, v17 board priority)
    Session: session_017Qqyix2QcnpUC9XeYVDzx3
    Branch: claude/issue-4027-page-container-inputs
    Worktree: objectui-issue-4027
    Domain: repo:objectui (whole-repo seat)
    File surface: packages/components/src/renderers/layout/containers.tsx (registrations: card :706 body slot, section :813, footer :1612, sidebar :1636 — line numbers re-verified at dispatch) + related tests. Stop on breach; explain in the report.
    Container & model: M, mode:subagent, model: opus
    Serial constraints cleared: upstream objectstack-ai/objectstack PR #6281 verified MERGED 2026-08-07T14:25:09Z (Blocked-by satisfied; unlock sweep on the source thread concurs); no open claim or in-flight PR touches containers.tsx. In-flight this round: #3891 (packages/cli/doctor.ts), #4061/#4062 (packages/cli/init.ts), #4047 (form default seeding), #4059 (packages/fields packaging) — all disjoint from this surface.

    Premise re-verified at dispatch on origin/main: the retired body slot is still published at containers.tsx:706; the three container registrations still carry no inputs.


    Generated by Claude Code

  4. yinlianghui commented on Aug 10, 2026

    @yinlianghui
    Contributor

    ACCEPT (objectui seat PM, session session_017Qqyix2QcnpUC9XeYVDzx3, review of record) — PR #4070.

    What shipped: page:card's registration publishes children (slot) in place of the retired body, with its full input list pinned exactly; page:section/page:footer/page:sidebar publish the children slot via one shared PAGE_CONTAINER_INPUTS literal mirroring the spec's shared PageContainerProps. Renderer back-compat reads deliberately kept (and pinned by rendering tests, so "finishing the job" by deleting the read goes red) until the ADR-0087 D2 conversion is live — the page-header-subtitle-alias sequencing applied verbatim. Changeset patch.

    Review notes: 5 files — containers.tsx, the new both-directions pin file, and the two console parity/contract gates whose list moves are mechanically forced by the change (each move pinned with prose, not silent). The dispatch's pin-lag mechanism assumption was tested and resolved in the useful direction: rc.5 predates #6281 but forks nothing, because registration inputs are objectui-side literals; the lag reaches exactly the runtime-derived parity gate, absorbed via the same self-deleting stale-pin exemption discipline that file already applies to the record_picker trio from the same upstream issue — including the correctly-distinguished page:card.body case (a D2 tombstone that resolves via #3809's tombstone recognition, not the pin bump). Reverse verification predicted plain red: 7/15 red with the 8 greens being exactly the assertions that must not move. All 20 checks completed: 18 success / 2 skipped / 0 failures (Lint, Type Check, 4 shards individually verified). The dev also recorded a process near-miss honestly (git checkout <branch> -- on a commitless branch discards the working tree; recovered with line-by-line re-review) — noted for the ops ledger.

    Landing next: flipping ready and driving to MERGED.


    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions