Skip to content

docs(ROADMAP): P1.12.3 / P1.16 九条同源漂移按现实改写 (#3738) - #3858

Merged
yinlianghui merged 1 commit into
mainfrom
claude/issue-3738-roadmap-p112-p116
Aug 8, 2026
Merged

docs(ROADMAP): P1.12.3 / P1.16 九条同源漂移按现实改写 (#3738)#3858
yinlianghui merged 1 commit into
mainfrom
claude/issue-3738-roadmap-p112-p116

Conversation

@yinlianghui

@yinlianghui yinlianghui commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

Fixes #3738

基线:origin/main @ c32323e1e4e5d7c72adda03dce0b46ecbe079403(显式 sha 切树,非 FETCH_HEAD)。文件面仅 ROADMAP.md,9 行改写、9 行删除,零新增行、零删除条目。

手法沿 #3700 / PR #3705#3704 / PR #3714#3712 / PR #3732 已确立形状:条目一律不删、就地按现实改写、原 [x] 保留(里程碑确实以另一形态交付过)、错误名保留作纠错锚且判词紧跟其后、引用只挂裸文本编号、不种新计数

正文刻意不写尖括号 JSX 标签(Navigate / table / thead 一律裸名):GitHub 的正文消毒器会把「尖括号 + 字母」当 HTML 标签在存储时剥掉 —— 本 PR 首版正文里的一个 Navigate 标签就这么消失成了一对空反引号,已订正。ROADMAP.md 文件内不受此影响,那里照常写标签形态。

动笔前的前提复核:九条里有两条与卡片正文不符

卡片正文是线索不是规格,九条逐条在 origin/main 上复核过。七条如卡片所述成立,两条不成立 —— 都按 main 的现状改写,并在此说明:

一、report 并非「零注册」。 卡片正文称 report 类型没有任何 registerMetadataResource 注册,举证是 grep -rn "type: 'report'" 只命中 spec 定义与其测试。实测该 grep 漏了命中:

packages/app-shell/src/views/metadata-admin/anchors.ts:485:    type: 'report',

git show 4e93e40d7:packages/app-shell/src/views/metadata-admin/anchors.ts | grep -n "type: 'report'" 同样命中 485 —— 即基线上就已存在,不是此后的漂移,是卡片当时的扫描结论有误。registerBuiltinAnchors()views/metadata-admin/index.ts 无条件调用,注册是活的。

这不改变该行「失实」的判定:listMode 这档配置不存在,所以「configured with grid mode by default」依然无从成立。改的是判词的理由 —— 从「没有注册」改成「有注册,但注册项里没有任何东西选择渲染模式,因为无模式可选;它配的是对象锚点组与建单种子(createFields / createDerive / createDefaults)」。

二、:1001 的前提已部分过期。 卡片正文称三个入口里 sidebar 与 QuickActions「仍指着」legacy 别名,并把该缺陷另行立单。那张单是 #3739,已由 PR #3748 合并(b7b05da7f):

  • AppSidebar.systemFallbackNavigationsys-objects/apps/setup/metadata/object
  • UnifiedSidebarsys-objects → 同上
  • console/home/QuickActionsmanage-objects → 同上

所以今天三个入口没有一个指向 /system/metadata/object:hub cards 本就没有 object 卡(瞄 ${basePath}/metadata${basePath}/metadata/datasource),另两个是被 #3739 主动改指。按分诊注记要求逐入口分别判,如实分述三者各自现状与离开的不同原因,不整句「仍然成立」、不顺手修任何路由。

三、顺带订正一处继承来的错误(未写进 ROADMAP,只在此声明)。 skills/objectui/guides/console-development.md:104 的「Retired names」表称 config/metadataTypeRegistry.tsNever existed under apps/console/src/」—— 这一句本身失实。git 可证该文件确实以那个路径落过地:

git log --oneline --all --diff-filter=AD -- '*metadataTypeRegistry*'
  d601ef693  feat: unified metadata management with registry, generic manager page, and dynamic routing   (加入 apps/console/src/config/metadataTypeRegistry.ts,195 行)
  ff9a0d9e9  chore: remove studio app and migrate to metadata-admin engine                                (删除,317 行)

故本 PR 的 :861 判词没有沿用那句话,而是写「该文件确实以 apps/console/src/config/metadataTypeRegistry.ts 落过地,在 ff9a0d9e9 被删,今天全仓零命中」。guide 那一行属越界发现,按纪律只报不改,已另行立单(与在飞的 #3737 不同行、不同事实:#3737 钉的是顶部注记的搬家归因)。

九条落点

**Unified Metadata Management (P1.12.3):**

核实结论 改写落点
:861 metadataTypeRegistry 成立(全仓零命中;唯 CHANGELOG 史料与 guide 纠错表仍拼) 补:文件曾以 apps/console/src/config/ 落地并在 ff9a0d9e9 被删;今天的等价物是引擎自己的 MetadataResourceRegistry(行类型 MetadataResourceConfig,由 registerMetadataResource() 填);并指出「centralized config」语义也变了 —— 未注册的类型同样可列可编,注册只覆写默认值
:863 注册表生成卡片 成立 metadataTypeCards(SystemHubPage.tsx)是手写字面量 Applications / Metadata / Datasources,其上方注释自述 per-type 卡片在引擎开始自动列举全部类型后即移除;dashboard / page / report 三张卡都不存在;真正按注册表列举类型的是引擎的 MetadataDirectoryPage,即手写「Metadata」卡所指
:864 动态路由 成立,但有半句该保留 该拼法只在 console host fragment 声明(三种 arity),route element 均为 MetadataRedirect,不是页面;真正渲染的是引擎 metadata/:type,而「in all route contexts」对成立(with-app 与 zero-app 两支都声明),故如实写明这半句存活
:866 app / object 专属页 部分成立 app 仍成立(system/appsAppManagementPage);object 已无专属页/专属路由,由引擎通用外壳列与编,配置见 builtinComponents.tsxviews/metadata-admin/anchors.tsregisterMetadataResource({ type: 'object', … })(列、搜索字段、建单字段、锚点组,无组件覆写);全仓唯 permissionEditPagedatasourceListPage 替换外壳页

**Metadata Manager Grid Mode:**(P1.16)与 :1001

核实结论 改写落点
:987 listMode on MetadataTypeConfig 成立(两个符号全仓零命中) MetadataResourceConfig 没有任何渲染模式键;列形状只有 listColumns,加 ListPage 整页替换
:988 grid mode 下的表格渲染 成立(表格真,模式假) ResourceListPage 对所有类型无条件渲染同一个 table 元素,表头由 listColumns 生成(缺省回落到推断的 primary + label);无分支可切,故不存在「grid mode」
:989 report 默认 grid mode 成立,但理由须订正(见上文一) report 注册(anchors.ts),但注册项里没有任何东西选择渲染模式(无模式可选);它配的是对象锚点组与建单种子,列表就是与所有类型相同的那张无条件表格
:990 MetadataGrid 成立(零命中) 组件随被抽取的 console 侧管理页一同退场;跨类型复用不再靠逐页 import 一个 grid,而是所有类型共用经 metadata/:type 抵达的同一张外壳页
:1001 三入口统一 前提部分过期(见上文二) 逐入口分述:hub cards 没有 object 卡(瞄类型目录与 metadata/datasource);两个 sidebar 的 sys-objects 与 home 的 manage-objects 已被 #3739 改指引擎正规路由,因为 system/… 拼法不是页面 —— MetadataRedirect 只是一个裸 Navigate 重定向,打到同一 URL,白付一跳与一次 re-render;统一的是目的地而非这个拼法,别名路由留给书签与外链

刻意留在围栏外

门禁

#3712 / PR #3732 的围栏(MetadataManagerPage / listComponent 一族)之外,
P1.12.3 与 P1.16 两节还剩九条失实条目。手法沿 #3700 / PR #3705#3704 /
PR #3714#3712 / PR #3732:条目一律不删、就地按现实改写、原 [x] 保留、
错误名保留作纠错锚且判词紧跟其后、引用只挂裸文本编号、不种新计数。

P1.12.3 四条:

- metadataTypeRegistry —— 全仓零命中。但它并非"从未存在":文件确实以
  apps/console/src/config/metadataTypeRegistry.ts 落过地(d601ef6 加入),
  在 ff9a0d9(移除 studio app、迁往 metadata-admin 引擎)被删。今天的等价物
  是引擎自己的 MetadataResourceRegistry
  (packages/app-shell/src/views/metadata-admin/registry.ts),行类型
  MetadataResourceConfig,由 registerMetadataResource() 填;且未注册的类型
  同样可列可编,注册只是覆写默认值 —— "centralized config" 的语义也变了。
- SystemHubPage 注册表生成卡片 —— metadataTypeCards 是手写字面量
  (Applications / Metadata / Datasources),其上方注释自述 per-type 卡片
  在引擎开始自动列举全部类型后即被移除;dashboard / page / report 三张卡
  都不存在。真正按注册表列举类型的是引擎的 MetadataDirectoryPage。
- 动态 /system/metadata/:metadataType —— 该拼法只在 console host fragment
  (apps/console/src/AppContent.tsx)声明,三种 arity 的 route element 都是
  MetadataRedirect,并非页面。真正渲染的动态路由是引擎的 metadata/:type
  (packages/app-shell/src/console/AppContent.tsx);"in all route contexts"
  这半句对它成立(with-app 与 zero-app 两支都声明了),故如实保留。
- app / object 专属路由 —— app 仍成立(system/apps → AppManagementPage);
  object 已无专属页,由引擎通用外壳承载,配置见 builtinComponents.tsx 与
  views/metadata-admin/anchors.ts 的 registerMetadataResource({ type:
  'object', … }),只给列/搜索字段/建单字段/锚点,无组件覆写。全仓仅
  permission(EditPage)与 datasource(ListPage)替换外壳页。

P1.16 四条 + :1001:

- listMode / MetadataTypeConfig / MetadataGrid 三个符号全仓零命中;
  MetadataResourceConfig 没有任何渲染模式键,列形状只有 listColumns
  (加 ListPage 整页替换)。
- "grid mode 下的表格渲染"—— 表格是真的,但不是一档模式:
  ResourceListPage 对所有类型无条件渲染同一个 table,无分支可切。
- report 一条须订正卡片正文的举证:report **有** registerMetadataResource
  注册(anchors.ts,基线 4e93e40 上即已存在),卡片正文"零注册"的
  grep 结论有误。真实判词是:注册项里没有任何东西选择渲染模式(因为无模式
  可选),它配的是对象锚点组与建单种子。
- :1001 按分诊注记逐入口分别判,且前提已部分过期:卡片正文称
  sidebar / QuickActions 仍指 legacy 别名,而 #3739 / PR #3748 已合并 ——
  两个 sidebar 的 sys-objects 与 home 的 manage-objects 现均指引擎正规路由
  /apps/setup/metadata/object;hub cards 本就没有 object 卡。故三个入口
  今天没有一个指向该拼法,离开的原因各不相同,如实分述。

围栏内只动这九行。节标题 **Metadata Manager Grid Mode:** 依"错误名留作
纠错锚"之例不动;:865 的 MetadataService 三个方法经核实真实存在,不在改写
之列。

Fixes #3738
@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectui Ignored Ignored Aug 8, 2026 9:58pm

Request Review

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Aug 8, 2026

Copy link
Copy Markdown
Collaborator Author

正文更新时尾部 attribution footer 被剥掉了(首版存在,更新后消失),补在此处,内容与正文同属一次交付:

  • 分支 claude/issue-3738-roadmap-p112-p116,自 origin/main @ c32323e1e4e5d7c72adda03dce0b46ecbe079403 显式 sha 切树。
  • 首版正文里一处尖括号 JSX 标签(Navigate)被 GitHub 正文消毒器在存储时剥成一对空反引号,已改写为裸名并回读确认。ROADMAP.md 文件内不受该消毒器影响。

Generated by Claude Code

Copy link
Copy Markdown
Collaborator Author

✅ 验收(PM,session session_01GTRjn8xBqp75dk7kFupVRt)

实物核验:origin/claude/issue-3738-roadmap-p112-p1161e054daae,base 即最新 main(c32323e1e),单提交仅 ROADMAP.md +9/−9;trailer 自查 0 命中;与在飞 #3849/#3546s6/#3749/#3735 零相交。diff 逐行读过:九条全部就地改写、[x] 保留、错误名留锚、零删条目、未种新计数,手法与 #3705/#3714/#3732 三轮先例一致。
CI 终态:16 检查全部 completed —— 14 success + 2 skipped(按设计)。

裁定要点:

转 ready 并挂 auto-merge。#3859 归分诊席;PR 正文 footer 被 update 剥除一事已由 dev 以评论补挂,环境观察记录在案。


Generated by Claude Code

@yinlianghui
yinlianghui marked this pull request as ready for review August 8, 2026 22:04
@yinlianghui
yinlianghui added this pull request to the merge queue Aug 8, 2026
Merged via the queue into main with commit 6402e25 Aug 8, 2026
17 checks passed
@yinlianghui
yinlianghui deleted the claude/issue-3738-roadmap-p112-p116 branch August 8, 2026 22:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs(ROADMAP): P1.12.3 / P1.16 还有 9 条同源漂移在 #3712 围栏之外(metadataTypeRegistry、注册表生成卡片、listMode、MetadataGrid)

2 participants