Skip to content

docs(ROADMAP): P1.12.2「ObjectView-Driven System Pages」整段 9 个勾选项已全部不成立(组件已删、路由改重定向、审计页并非 ObjectView 驱动) #3700

Description

@yinlianghui

越界发现,记录于 #3672(删除零引用的 SystemObjectViewPage + systemObjects)期间 —— 引用面 grep 时 ROADMAP.md:831 是仅有的两处非代码命中之一。按纪律只报不改,单独立单,未认领。

观察类:纯文档漂移,用户看不到任何异常,代价是 ROADMAP 把一批已退场的实现记成"已完成",误导下一个读者(#3655 与 #3672 都栽在"看起来现成"的同一批文件上)。故打 finding、不打 pm:queue。

基线:origin/main @ be9cd38ac,叠加 #3672 的删除(PR #3699)。

事实

ROADMAP.md:829-839,ObjectView-Driven System Pages (P1.12.2) 整段 9 个 [x],逐条与当前 main 核对:

ROADMAP 勾选项 当前实况
Shared SystemObjectViewPage component using ObjectView 组件全仓零引用,PR #3699 已删除
User Management (/system/users) driven by sys_user metadata via ObjectView 路由存在,但已是 SystemObjectRedirect objectName="sys_user"(重定向到框架对象,非 console 内 ObjectView 页)
Organization Management (/system/organizations) driven by sys_org metadata 同上,且 sys_org 框架里不存在,重定向实际指向 sys_organization
Role Management (/system/roles) driven by sys_role metadata 同上,且 sys_role 已按 ADR-0090 D3 改名,重定向实际指向 sys_position
Permission Management (/system/permissions) driven by sys_permission metadata 该路由今天根本不存在(AppContent.tsx 中零命中);sys_permission 框架里也不存在(拆成了 sys_capability / sys_permission_set)
Audit Log (/system/audit-log) driven by sys_audit_log metadata via ObjectView (read-only) 路由在,但 AuditLogPage.tsx 是独立手写页:直接 fetch /api/v1/data/sys_audit_log + 手写 Table/Sheet,不经 ObjectView
Admin-only CRUD operations controlled via ObjectView operations config 随 SystemObjectViewPage 一并消失
Automatic search, sort, filter, pagination from ObjectView capabilities 同上
22 system page tests passing 这批测试已不存在(pages/system/__tests__/ 现只有两个 SystemHubPage 测试)

即 9 条无一仍然成立。

另有一处同源漂移,ROADMAP.md:824-827,Permission Management Page (/system/permissions) 段:

  • [x] CRUD grid for sys_permission object
  • [x] Search/filter permissions
  • [x] Admin-only create/delete controls

该页与该路由均已不存在,sys_permission 亦非框架真名。

复核方式

grep -n 'path="system' apps/console/src/AppContent.tsx     # 见 /system/permissions 零命中
grep -rlw sys_org      ../objectstack/packages/            # 0 个文件
grep -rlw sys_permission ../objectstack/packages/          # 1 个:sys-capability.object.ts 的 docblock,
                                                           # 内容正是"Named sys_capability (not sys_permission …)"

影响面

零运行时影响。真实代价一条:ROADMAP 是"这块做完了吗"的首查处,一整段假 [x] 会让下一个 agent 以为 console 里有一套 ObjectView 驱动的系统页可复用 —— 这正是 #3655 与 #3672 各自踩过一次的坑。

可能的修法方向(留给分诊,不预判)

  1. 把 P1.12.2 与 Permission Management Page 两段标注为历史(如加 ~~删除线~~ + 一行"已由框架插件 + /apps/setup/{object_name} 通用路由取代,见 console: 系统导航 / System Hub 的 users / organizations / roles / positions / permissions 五个入口没有对应路由 —— 两个落 "Page not found",三个跳进不存在对象 system 的记录页 #3655 / console: SystemObjectViewPage.tsx + systemObjects.ts 自 2026-04 起全仓零引用,且其内嵌对象定义用的是已废弃/不存在的对象名 #3672"),保留 ROADMAP 的时间线价值。
  2. 直接删除这两段,改在对应的框架插件章节写明现状。

取舍取决于 ROADMAP 是"历史账本"还是"当前真相快照",需要维护者定调 —— 故不预判。

关联

已就关键词(ROADMAP、P1.12.2、SystemObjectViewPage、sys_permission)搜过本仓开放 issue,除 #3672 自身外无同源单。


Generated by Claude Code

Activity

  1. self-assigned this
    on Aug 7, 2026
  2. yinlianghui commented on Aug 7, 2026

    @yinlianghui
    CollaboratorAuthor

    认领(PM 派发)。Session: session_01GTRjn8xBqp75dk7kFupVRt;分支 claude/issue-3700-roadmap-p112-truth。


    Generated by Claude Code

  3. claude commented on Aug 7, 2026

    @claude
    Contributor

    Label repair only — finding swapped for pm:queue. Nothing else touched; this is not a claim and does not disturb the one in place.

    This issue carried finding and pm:dispatched at the same time, which is unreadable state: one label says held-and-ungraded, the other says in-flight. It reached dispatch without passing through the promotion channel, so the finding label was never removed.

    Handled as 改标不改辖 (precedent: #6298's 说明 段, and the identical repair applied to #3697 / #3694 in the 21:47Z round): the labels are corrected to describe reality, and the assignee, the claim and the follow-through stay entirely with the claiming session. Grading a card against live work would be the same failure in the other direction.

    Recorded because this is the third instance in objectui in two hours, and it is the #5367 shape: promotion of a finding is meant to be a single channel, and a second grader is how one card ended up with two opposite dispositions 70 minutes apart. Filing sessions should file either finding (ungraded, awaiting the triage round) or nothing, and let the triage seat produce the pm-state — not both at once. Flagged for the maintainer in this round's wrap-up rather than escalated.

    For the record: this card's out-of-scope sibling — the two PermissionManagementPage lines at ROADMAP.md:857 / :871 — was graded this round as #3704, promoted to pm:queue and blocked behind this issue so the two do not race on the same file.

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


    Generated by Claude Code

  4. yinlianghui commented on Aug 7, 2026

    @yinlianghui
    CollaboratorAuthor

    验收 ACCEPT → PR #3705(session_01GTRjn8xBqp75dk7kFupVRt)。

    已核:单文件 +15/−15 恰在两段内;九项逐条判词带证据;门禁阳性对照打在被改写的 :831 上(绿是「没问题」而非「没看」)。

    裁决记录(三项记入方法库):

    1. 惯例考据代替维护者往返:ROADMAP 的「历史台账 + 就地批注」处置从文件自身五处先例导出 — issue 的开放问题被文件自己回答。
    2. 纠错锚:被删符号名保留并紧跟判词(deleted / was never a framework object),让下一个 grep 到饵的 agent 落在判决上 — 与 docs(scripts): 按真实机制改写两处 Lychee 门禁描述,并删掉 judgeHref 重复注释 (#3587) (#3648) #3656 的「不复植失真词」相容的例外形态,条件是判词紧邻。
    3. 不写新硬编码计数(过期的 22 正是该失败模式)与第 7 项语法主语级的措辞自纠(via ObjectView 作主语仍是活机制宣称)。
    4. 第 5 项降未勾选 + 中性指向 console: 系统导航 / System Hub 的 users / organizations / roles / positions / permissions 五个入口没有对应路由 —— 两个落 "Page not found",三个跳进不存在对象 system 的记录页 #3655,不预判 — 对。新发现 docs(ROADMAP): P1.12 的 Routes / Tests 两个子块仍把已退场的 PermissionManagementPage 记成已完成(与 #3700 同源、在其文件面之外) #3704 入池(⚠️ 同文件等 3705 落 main)。

    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