Uh oh!
There was an error while loading. Please reload this page.
docs(ROADMAP): P1.12 Routes/Tests 两条 PermissionManagementPage 记录按现实改写 (#3704) - #3714
Merged
Merged
Conversation
…#3704) :857 与 :871 是 #3700/#3705 围栏外的同源漂移:`/system/permissions` 路由 今天未声明(AppContent.tsx:191-201 注明「absent on purpose」), PermissionManagementPage 已随 apps/console 瘦身删除(commit cccdf84), 其测试亦零命中。 照 PR #3705 的落地手法:条目不删、就地改写成当前形态并挂裸文本引用; permissions 空缺保持中性、只指向 #3655,不预判 sys_capability / sys_permission_set;PermissionManagementPage 作纠错锚保留(判词紧跟其后); 计数不写新硬编码数字。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt
The latest updates on your projects. Learn more about Vercel for GitHub. |
yinlianghui
marked this pull request as ready for review
August 8, 2026 00:13
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Aug 8, 2026
akarma-synetal pushed a commit
to akarma-synetal/objectui
that referenced
this pull request
Aug 10, 2026
…jectstack-ai#3712) (objectstack-ai#3732) objectstack-ai#3704 / PR objectstack-ai#3714 的围栏之外还剩两处同源漂移: 一、MetadataManagerPage 整片(:858 / :862 / :868 / :999)。该组件在 apps/console/src/ 下零文件零引用;`/system/metadata/:metadataType` 今天的 route element 是 MetadataRedirect,一跳转到 metadata-admin 引擎自己的 metadata/:type,元素为 MetadataResourceListPage (packages/app-shell/src/views/metadata-admin/ResourceListPage.tsx),由引擎的 MetadataResourceRegistry 驱动。:999 所指的 ObjectManagerListAdapter 与 listComponent 两个载体亦均零命中 —— object 根本不需要自定义列表,由 builtinComponents.tsx 的 registerMetadataResource({ type: 'object', … }) 接入通用外壳;引擎侧对应的插槽是 MetadataResourceConfig.ListPage,今天只有 datasource 覆写它。故连紧邻的 :1000(listComponent 判词的另一半)一并改写, 否则 :999 改完与它自相矛盾 —— 这正是分诊裁定要避免的形态。 二、:872 `Total: 20 system page tests passing`。「system page tests」无固定 指称(窄读 13、宽读 18,皆非 20),照 :871 / PR objectstack-ai#3705 先例**不种新计数**, 改写为不含硬编码数字、并提示按需自行度量的表述。 手法沿用 objectstack-ai#3700 / PR objectstack-ai#3705:条目一律不删、就地按现实改写、原 [x] 保留(里程碑 确实以另一形态交付过)、错误名保留作纠错锚且判词紧跟其后、引用只挂裸文本编号、 不新增任何硬编码计数、不写版本号字面量。 围栏外另有 P1.12.3 / P1.16 的残余漂移(config/metadataTypeRegistry.ts、 listMode、MetadataGrid 等),按纪律只报不改,另立单。 Claude-Session: https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt Co-authored-by: Claude <noreply@anthropic.com>
akarma-synetal pushed a commit
to akarma-synetal/objectui
that referenced
this pull request
Aug 10, 2026
…ectstack-ai#3858) objectstack-ai#3712 / PR objectstack-ai#3732 的围栏(MetadataManagerPage / listComponent 一族)之外, P1.12.3 与 P1.16 两节还剩九条失实条目。手法沿 objectstack-ai#3700 / PR objectstack-ai#3705、objectstack-ai#3704 / PR objectstack-ai#3714、objectstack-ai#3712 / PR objectstack-ai#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 别名,而 objectstack-ai#3739 / PR objectstack-ai#3748 已合并 —— 两个 sidebar 的 sys-objects 与 home 的 manage-objects 现均指引擎正规路由 /apps/setup/metadata/object;hub cards 本就没有 object 卡。故三个入口 今天没有一个指向该拼法,离开的原因各不相同,如实分述。 围栏内只动这九行。节标题 **Metadata Manager Grid Mode:** 依"错误名留作 纠错锚"之例不动;:865 的 MetadataService 三个方法经核实真实存在,不在改写 之列。 Fixesobjectstack-ai#3738 Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#3704
纯文档改动,只动
ROADMAP.md的两行(:857 / :871),零代码、零行为变化。无 changeset —— 根文档不是发布包,用户可见产物零 delta。git diff --stat=1 file changed, 2 insertions(+), 2 deletions(-),行号不移位。前置实测
派发单要求先证 PR #3705 已落 main,并以内容锚定复核行号(#3705 是 15 增 15 删的中性改动,理应不移位):
基线
origin/main@36bf20235(已含 PR #3705 与 PR #3711)。前提复核(issue 是线索不是规格)
issue 的三条断言逐条对
origin/main实测,全部属实:PermissionManagementPage组件不存在grep -rn于apps/packages/= EXIT=1 零命中;pages/system/现存 6 个页面,无此文件/system/permissions路由不存在grep -n 'path="system/permissions"' AppContent.tsx= EXIT=1;:138/:191两处注释写明「deliberately NOT redirected」「absent on purpose」*.test.tsxgrepPermissionManagementPage零命中额外查到 issue 未记的一条硬证据 —— 删除该页的 commit 有名有姓:
这正好坐实了 #3705 已写在
:826的那句「deleted whenapps/consolewas slimmed for third-party customisation」,于是本 PR 把裸引用从泛指升级为可复核的(commit cccdf84d),合乎本文件:1046(commit 3371239c)的既有形态。惯例:沿用 #3705 已确立的手法
#3705 已把这个文件对「已退场」项的处理考据清楚(
:152/:157/:1046/:997/:82):历史账本 + 就地批注 —— 条目不删、不打删除线,文字改写成「当前形态」并挂一个裸文本引用。本 PR 照办,因此未新增任何 markdown 链接(git diff中新增行 grep](...)= 零命中),check-doc-links 的扫描面不受影响。前后对照
**Routes:**子块(:857)改前:
改后:
**Tests:**子块(:871)改前:
改后:
四处刻意的取舍
1. :857 改成
- [ ](未勾选),与 #3705 的:835对齐。 它不是「做完了又退场」,而是一个尚未定案的缺口。更要紧的是内部一致性:#3705 已把 P1.12.2 里的同一条路由(:835)判为- [ ],若本 PR 让:857留在- [x],同一### P1.12章节里两条讲同一个 URL 的记录会自相矛盾。全文 89+ 处- [ ],未勾选是本文件的常规形态。2. ⛔ 不预判 #3655 的 A/B/C。 措辞只陈述「未声明路由」这个事实并中性指向 #3655,不点名
sys_capability/sys_permission_set中的任何一个 —— 那两个名字在:826/:835已各出现一次,此处第三次复述既冗余又更易被读成倾向。3. 两个
PermissionManagementPage作纠错锚保留,且判词紧跟其后。 全文该词仍是 2 处(改前 2 → 改后 2),但两处的下一句都已是结论::857是「…was deleted…」,:871是「…has no tests because the page itself is gone」。下一个 grep 到它的 agent 读到的是判词而非诱饵 —— 与:82保留@object-ui/tenant、:152保留ViewDesigner、#3705 保留SystemObjectViewPage/sys_org同一手法。4. :871 不写新硬编码计数(照 #3705 第 9 项)。 原文的
11正是烂掉的那种数;改写后只说「三套里只剩SystemHubPage这一套还在树里」,不再种一个下周会再次失真的数字。措辞纪律(遵 #3656:不复植承载错误机制的特征词)
`/system/permissions`+ 箭头11 new tests(本围栏内)PermissionManagementPage(纠错锚,刻意保留)第一版草稿把
:857写成- [ ] /system/permissions → PermissionManagementPage — …,箭头与组件名仍在活映射位,一眼扫过去仍像在陈述现行路由,纠正语只是尾随 —— 与 #3705 初稿把via ObjectView留在主语位是同型错误。改成把组件名降到从句(the PermissionManagementPage it named was deleted)后该形态才真正归零。如实记下。验证
改动不含代码,本仓无任何测试或脚本读取
ROADMAP.md的正文(scripts/__tests__/check-doc-links.test.ts里的 ROADMAP 是内存里合成的 fixture,与真实文件无关),故没有可跑绿的单元测试 —— 如实写明,不凑数。真正管这块的是 doc-links 门禁,ROADMAP.md是它SCAN_ROOTS的第 5 个扫描根(check-doc-links.mjs:397,rule: 'disk')。阳性对照(先预测,后运行) —— 前后同为绿,必须先证「门禁确实读了我改的那两行」,否则绿是「没看」而不是「没问题」。预测:分别往 :857 与 :871(本 PR 仅有的两条改动行)注入死链,门禁应各转红一次并点名该行号。两次实测均吻合:
还原后残留核查:
grep -c 9999= 0、grep -c 8888= 0、grep -c 'neg-control\|neg2'= 0,git status --short仅M ROADMAP.md。控制字符(门禁 + 门禁盲区自扫):
围栏
CHANGELOG.md未动 —— 史实记录,记的是「当时确实做了这件事」,不该被改写。content/docs/releases/未动;无 changeset。AppContent.tsx只读不写。围栏内的两条「不动」,与理由
派发单把文件面给到「两行及其所在子块」,故下面两条虽在围栏内,仍刻意不改,已另立单:
:858- [x] /system/metadata/:metadataType → MetadataManagerPage——MetadataManagerPage在apps/console/src/零文件零引用,该路由今天解析到MetadataRedirect(AppContent.tsx:188)。不搭车的理由:它不是孤例,而是整片 P1.12.3 漂移的入口(:862/:868/:999都仍把它当现役组件),单行修补会让:858与紧邻的:860-868自相矛盾,而 P1.12.3 段在围栏外。:872- [x] Total: 20 system page tests passing—— 实测窄读(pages/system/__tests__/)13 条、宽读(併入AppContent.systemHubRoutes.test.tsx)18 条,都不是 20。不搭车的理由:「system page tests」这个指称本身没有定义(相关套件散在apps/console与packages/app-shell至少 7 个文件),要改先得裁定它指哪一组,或照 docs(ROADMAP): 按 #3673/#3699 落地后的现实改写 P1.12.2 与 Permission Management 两段 (#3700) #3705 第 9 项干脆不写计数 —— 那是一次独立取舍,不该由本 PR 替维护者做。两条与
:857/:871的分野是清楚的:后者的判据是同一个主语(PermissionManagementPage),修补半径完全落在围栏内;前者是另一个主语,修补半径伸出围栏。越界发现(只报不改)
finding,未认领)—— 上述ROADMAP.md:858/:872两条残余漂移。finding,未认领)——skills/objectui/guides/console-development.md的目录树列出 7 个pages/system/页面,实测 5 个不存在(含本单主角PermissionManagementPage.tsx),并有整节「How MetadataManagerPage works」教用一个零引用的组件;skills/objectui/evals/console-development.json:7的expected_output已把该组件写进评测期望,即照 guide 生成的错代码会被 eval 判为「对」。消费者是 agent 而非读者,故未按观察类归档,严重度留给分诊。立单前已就
MetadataManagerPage/ROADMAP drift/P1.12.3/console-development.md/skills guide搜过本仓开放 issue,除 #3704 外无同源单。🤖 Generated with Claude Code
https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt