Skip to content

PageComponentSchema.dataSource 在剩余 object-bound public block 上仍无人消费:object-gantt / object-timeline / object-map / object-pivot / object-master-detail-form / embeddable-form(按 spec 写仍渲染出空) #7121

Description

@yinlianghui

发现于 objectstack#6953 的实施过程。#6953 的验收范围是它正文点名的那 8 个(element:record_picker + object-grid/form/kanban/calendar/chart/metric + record:related_list),本单是同一条绑定在剩余 object-bound public block 上仍然无人消费,单独立单。

Blocked-by: objectstack#6953(实现要用它落地的共享件 useElementDataSourceSchema / ElementDataSourceGate,一 block 一份优先级表是明令禁止的方向)。

事实(objectui claude/issue-6953-datasource-block-wiring 实测,基线 65bb513dc)

PUBLIC_BLOCKS(packages/core/src/registry/public-blocks.ts)里声明 objectName 必填、且 PageComponentSchema.dataSource 同样声明在其上的 block,#6953 之后仍未接线的:

block 注册处 现状
object-gantt packages/plugin-gantt/src/ 未读 dataSource
object-timeline packages/plugin-timeline/src/ 未读
object-map packages/plugin-map/src/ 未读
object-pivot packages/plugin-dashboard/src/(ObjectPivotTable) 未读
object-master-detail-form packages/plugin-form/src/MasterDetailForm.tsx 未读
embeddable-form packages/plugin-form/src/index.tsx 未读
record:line_items packages/plugin-form/src/LineItemsPanel.tsx 未读

症状与 #6953 修掉的那批完全同形:一张页面上给这些 block 按 spec 写 dataSource: { object, view } 而不写 objectName,渲染出来是空的 —— 不发查询、不报错。

说明:上表是按注册清单与 #6953 的接线覆盖差集列出的候选面,每一项在实施时仍要按 #6953 的方法自查该 block 的读点(它读哪些键、columns/sort/limit 有没有读点),而不是照抄映射。#6953 的经验是:8 个 block 里只有 object-grid 能无缺口地映射整条绑定,其余各有各的形态缺口。

建议范围

逐 block 复用 #6953 的共享件接线,每块两方向钉子(带/不带 dataSource),并沿用 #5576 定下的合成语义(view 作基线、显式键覆盖、filter 走 and、view 解析不到报错不回退全量)。

⛔ 映射只写该 block 真读的键。#6953 把这条写进了 ElementDataSourceMapping 的契约:把合成值写到 block 不读的键上,等于把「声明了却被丢弃」的缺陷往下挪一层、看起来像接好了。哪个键没有读点就留空,并在 content/docs/guide/data-source.md 的逐 block 覆盖表里补一行,像 #6953 对 record:related_list.filter(objectstack#7118)和 object-form 的 view 那样明写缺口。

与已有单的去重

  • objectstack#5576 —— list-view + 公共件(已合)。
  • objectstack#6953 —— 本单的父面,8 个 block(在飞/已实施)。
  • objectstack#7118 —— record:related_list.filter 无读点,是本单之外的独立缺口。

Activity

  1. claude commented on Aug 9, 2026

    @claude
    Contributor

    Triage: pm:blocked (routing repo:objectui kept as filed; body already carries Blocked-by: objectstack#6953).

    本评论来自分诊座位 Routine(#5474 试点),不构成认领。


    Generated by Claude Code

  2. yinlianghui commented on Aug 9, 2026

    @yinlianghui
    CollaboratorAuthor

    PM 分诊(objectui 分片,session_01GTRjn8xBqp75dk7kFupVRt):挂 pm:blocked(正文自带 Blocked-by: objectstack#6953)—— 其余 7 个 object-bound block(gantt/timeline/map/pivot/master-detail-form/embeddable-form/line_items)复用 PR #3969 的共享层接线,必须等该 PR 落 main。PR3969 已验收挂 auto-merge,落 main 后本单由解锁 sweep 转回 pm:queue 即可派(实施蓝本即 PR3969 的逐块模式:映射只写目标块真读的键、两方向钉、不适用块如实豁免)。


    Generated by Claude Code

  3. self-assigned this
    on Aug 9, 2026
  4. yinlianghui commented on Aug 9, 2026

    @yinlianghui
    CollaboratorAuthor

    🔓→🔒 解锁并认领(objectui 分片 PM,session_01GTRjn8xBqp75dk7kFupVRt,批次 4 补位;代码落 objectstack-ai/objectui):Blocked-by objectstack#6953 已清 —— PR #3969 于 2026-08-09 落 main(5bfaabde0),共享层(useElementDataSourceSchema/ElementDataSourceGate)可复用。pm:blocked → pm:queue 并派发。

    • 分支:claude/issue-7121-datasource-remaining-blocks
    • 范围:7 个剩余 object-bound block(object-gantt/timeline/map/pivot/master-detail-form/embeddable-form/record:line_items)按 PR3969 逐块模式接线:复用共享层、映射只写目标块真读的键、每块两方向钉、不适用块如实豁免。
    • 文件面:各 block 外壳文件;⛔ 不碰 RelatedList.tsx(在飞 os#7118+fix(spec): ratchet the authorable key surface — the one contract no witness watched (#3855) #3895 结对面)、⛔ 不碰共享层本体与 SchemaRenderer。

    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

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions