越界发现,记录于 #3655 (补齐 System Hub 五个入口的路由)期间,为确定重定向目标而逐个核对框架真实对象名时。按纪律只报不改 ,单独立单,未认领 ,留给 PM 分诊。
基线:origin/main @ dae1ac41e;框架侧 ../objectstack 同期 checkout。
事实
apps/console/src/pages/system/SystemHubPage.tsx:76-82 为五张卡片各拉一次全量列表当计数:
dataSource.find('sys_user').catch(() => ({ data: [] })),
dataSource.find('sys_org').catch(() => ({ data: [] })),
dataSource.find('sys_position').catch(() => ({ data: [] })),
dataSource.find('sys_permission').catch(() => ({ data: [] })),
dataSource.find('sys_audit_log').catch(() => ({ data: [] })),
其中 sys_org 与 sys_permission 在框架里不存在 :
组织对象叫 sys_organization (packages/platform-objects/src/identity/sys-organization.object.ts:14,Setup 导航 nav_organizations / nav_organization 也用这个名字)。全仓 grep 'sys_org' 作为对象名:零命中 。
权限侧框架拆成两个对象:sys_capability (packages/plugins/plugin-security/src/objects/sys-capability.object.ts:27)与 sys_permission_set (同目录 :16)。前者的 docblock 明写「Named sys_capability (not sys_permission as the ADR loosely floats)」。全仓 grep 'sys_permission'(精确、不含 _set):零命中 。
每个 find 都挂了 .catch(() => ({ data: [] })),所以 404 被静默吞掉,counts.orgs / counts.permissions 落成 0。屏幕上的结果不是错误提示,而是两个看上去正常的 0 —— 与「确实一条都没有」无法区分。
sys_user / sys_position / sys_audit_log 三个名字是对的,所以同一张卡片墙上三个数真、两个假。
影响面
System Hub(/apps/setup/system)是 SystemHubPage.tsx:132 注释所称「System admin cards (non-metadata, always present)」的那一屏,有应用时也照常可达。管理员看到 Organizations = 0 会合理推断「还没建组织」,而单组织部署里 sys_organization 至少有一行。
与在途工作的关系
console: 系统导航 / System Hub 的 users / organizations / roles / positions / permissions 五个入口没有对应路由 —— 两个落 "Page not found",三个跳进不存在对象 system 的记录页 #3655 / 其 PR 不动这里 —— 那单的文件面是路由声明,且 SystemHubPage.tsx 当时挂着 ⛔(导航仍有 4 处生产端在生成已废弃的 component/metadata 别名(SystemHub 两张卡片 + 两个 sidebar),各多绕一跳 #3660 在途)。console: 系统导航 / System Hub 的 users / organizations / roles / positions / permissions 五个入口没有对应路由 —— 两个落 "Page not found",三个跳进不存在对象 system 的记录页 #3655 只是在核对重定向目标时把这两个名字查实了。
与 导航仍有 4 处生产端在生成已废弃的 component/metadata 别名(SystemHub 两张卡片 + 两个 sidebar),各多绕一跳 #3660 同文件但不同范围 —— 导航仍有 4 处生产端在生成已废弃的 component/metadata 别名(SystemHub 两张卡片 + 两个 sidebar),各多绕一跳 #3660 改的是 :118 / :126 两张卡片的 href(废弃的 component/metadata 别名),本单是 :76-82 的数据查询。不构成子任务关系,故独立立单;真要一起做的话两者会在同一文件相邻区域相遇,合并时注意。
与 console: 系统导航 / System Hub 的 users / organizations / roles / positions / permissions 五个入口没有对应路由 —— 两个落 "Page not found",三个跳进不存在对象 system 的记录页 #3655 里悬而未决的「system/permissions 到底等价于 sys_capability 还是 sys_permission_set」是同一个歧义的两个面 :定了那个,这里的计数对象也就定了。
可能的修法方向(留给分诊,不预判)
直接改名:sys_org -> sys_organization;sys_permission -> 由上面那个歧义的裁决决定。
顺带质疑这套计数本身:每张卡片拉一次全量列表 只为取 data.length,代码里已有 // TODO: Replace with count-specific API endpoint when available。
更彻底的一条:SystemHubPage 自己的 docblock 标了 @deprecated(「superseded by the metadata-driven left-side menu … New admin surfaces must be added as nav items, NOT as bespoke cards/pages here」)。如果这一屏本就该退场,修计数只是延寿。
属于「先定权限语义、再定这一屏去留」的取舍,需要维护者定方向。
已就关键词(sys_org、sys_permission、SystemHubPage、fetchCounts、counts)搜过本仓开放 issue 与 PR,无同源单。
Generated by Claude Code
越界发现,记录于 #3655(补齐 System Hub 五个入口的路由)期间,为确定重定向目标而逐个核对框架真实对象名时。按纪律只报不改,单独立单,未认领,留给 PM 分诊。
基线:
origin/main@dae1ac41e;框架侧../objectstack同期 checkout。事实
apps/console/src/pages/system/SystemHubPage.tsx:76-82为五张卡片各拉一次全量列表当计数:其中
sys_org与sys_permission在框架里不存在:sys_organization(packages/platform-objects/src/identity/sys-organization.object.ts:14,Setup 导航nav_organizations/nav_organization也用这个名字)。全仓 grep'sys_org'作为对象名:零命中。sys_capability(packages/plugins/plugin-security/src/objects/sys-capability.object.ts:27)与sys_permission_set(同目录:16)。前者的 docblock 明写「Namedsys_capability(notsys_permissionas the ADR loosely floats)」。全仓 grep'sys_permission'(精确、不含_set):零命中。每个
find都挂了.catch(() => ({ data: [] })),所以 404 被静默吞掉,counts.orgs/counts.permissions落成0。屏幕上的结果不是错误提示,而是两个看上去正常的0—— 与「确实一条都没有」无法区分。sys_user/sys_position/sys_audit_log三个名字是对的,所以同一张卡片墙上三个数真、两个假。影响面
System Hub(
/apps/setup/system)是SystemHubPage.tsx:132注释所称「System admin cards (non-metadata, always present)」的那一屏,有应用时也照常可达。管理员看到 Organizations = 0 会合理推断「还没建组织」,而单组织部署里sys_organization至少有一行。与在途工作的关系
system的记录页 #3655 / 其 PR 不动这里 —— 那单的文件面是路由声明,且SystemHubPage.tsx当时挂着 ⛔(导航仍有 4 处生产端在生成已废弃的 component/metadata 别名(SystemHub 两张卡片 + 两个 sidebar),各多绕一跳 #3660 在途)。console: 系统导航 / System Hub 的 users / organizations / roles / positions / permissions 五个入口没有对应路由 —— 两个落 "Page not found",三个跳进不存在对象system的记录页 #3655 只是在核对重定向目标时把这两个名字查实了。:118/:126两张卡片的href(废弃的component/metadata别名),本单是:76-82的数据查询。不构成子任务关系,故独立立单;真要一起做的话两者会在同一文件相邻区域相遇,合并时注意。system的记录页 #3655 里悬而未决的「system/permissions到底等价于sys_capability还是sys_permission_set」是同一个歧义的两个面:定了那个,这里的计数对象也就定了。可能的修法方向(留给分诊,不预判)
sys_org->sys_organization;sys_permission-> 由上面那个歧义的裁决决定。data.length,代码里已有// TODO: Replace with count-specific API endpoint when available。SystemHubPage自己的 docblock 标了@deprecated(「superseded by the metadata-driven left-side menu … New admin surfaces must be added as nav items, NOT as bespoke cards/pages here」)。如果这一屏本就该退场,修计数只是延寿。属于「先定权限语义、再定这一屏去留」的取舍,需要维护者定方向。
已就关键词(
sys_org、sys_permission、SystemHubPage、fetchCounts、counts)搜过本仓开放 issue 与 PR,无同源单。Generated by Claude Code