docs(app-shell): 两个 AppContent 路由测试的头注释仍把 sys-datasources / sys-objects 枚举为「在发 legacy 别名」的生产端 —— #3660 / #3739 之后已陈旧 #3749
Description
观察类记录,不是用户能碰到的缺陷:两处测试的断言都正确且全绿,陈旧的只有头注释里的叙述。分诊出来于 #3739 的实现过程(PR #3748),按范围纪律没有在那个 PR 里动。
现状
两个文件的头注释以现在时枚举「侧边栏 / QuickActions 现在发的是哪些 URL」,而这些 URL 已经被 #3660 与 #3739 改掉了:
-
packages/app-shell/src/console/__tests__/AppContent.noAppComponentRoutes.test.tsx:8-14* With zero published apps, the system fallback sidebar offers two entries that * both land inside `AppContent`'s no-`activeApp` branch: * * sys-datasources -> /apps/setup/component/metadata/resource?type=datasource * sys-objects -> /apps/setup/system/metadata/objectsys-datasources那一行自 导航仍有 4 处生产端在生成已废弃的 component/metadata 别名(SystemHub 两张卡片 + 两个 sidebar),各多绕一跳 #3660(d2fd044b7)起不再成立;sys-objects那一行自 console: #3660 把 sys-datasources 改指规范路由,却漏了紧挨一行的 sys-objects 与 QuickActions —— 三个调用点仍走 legacy 别名,每次点击多绕一跳 #3739(PR fix(app-shell): sys-objects 的三个生产端直发规范 metadata 路由,不再绕 system/metadata 别名 (#3739) #3748)起不再成立。两个it(...)标题也仍以生产端命名('sys-datasources: …'、'sys-objects: …'),而它们实际量的是别名路由的行为 —— 别名保留,所以测试本身没问题,只是名字指错了主体。 -
packages/app-shell/src/console/__tests__/AppContent.pseudoRouteSegments.test.tsx:41-46的生产端表格同理:* navigation AppSidebar / UnifiedSidebar `/apps/setup/system{,/apps,/marketplace, * /metadata/object,/users,…}` * `/apps/setup/component/metadata/resource?type=` * QuickActions / HomePage / `/apps/setup/system/{metadata/object,marketplace, -
packages/app-shell/src/console/AppContent.tsx:645-661(console: 零应用下 sys-objects / sys-datasources 落到 /apps/setup/component/... 渲染空白屏——无-activeApp 分支既无 component/* 路由也无 catch-all #3610 那段)结尾一句只提到「导航仍有 4 处生产端在生成已废弃的 component/metadata 别名(SystemHub 两张卡片 + 两个 sidebar),各多绕一跳 #3660 re-pointed it anyway」,现在该补上sys-objects也已重指(console: #3660 把 sys-datasources 改指规范路由,却漏了紧挨一行的 sys-objects 与 QuickActions —— 三个调用点仍走 legacy 别名,每次点击多绕一跳 #3739)。这一段前半是过去时叙述,依然准确;不准确的是这句收尾。
为什么值得记一笔
这一族的注释是跨 project 转写的指针:app-shell 不能 import apps/ 的路由片段,所以 MetadataRedirect 是逐字抄进测试的,靠注释指回原件。同一族的转写已经陈旧过一次,代价是真实的 —— #3661 / #3669 就是「#3658 把 host 改指规范路由、测试里的副本继续发废弃别名,于是两个 case 一直在量生产早已不产生的两跳链,而什么都没红」。现在陈旧的是「谁在发这个 URL」这一层叙述,下一个按 grep 找生产端的 agent 会把它读成现状。
建议范围
纯注释改写,零行为改动:把三处叙述改成「历史 + 现状」两段(#3610 当时是这样、#3660/#3739 之后是这样),并把两个 it 标题从生产端名改成它们真正量的东西(别名路由仍能解析且只跳一次)。参照 #3666 —— #3660 把同类「被自己证伪的 docblock」单独立为一个 issue 并在同一 PR 里以独立 commit 修掉。
复核脚本:
sed -n '1,20p' packages/app-shell/src/console/__tests__/AppContent.noAppComponentRoutes.test.tsx
sed -n '35,50p' packages/app-shell/src/console/__tests__/AppContent.pseudoRouteSegments.test.tsx
sed -n '645,662p' packages/app-shell/src/console/AppContent.tsx
git grep -n "system/metadata/object\|component/metadata/resource?type=datasource" -- packages/app-shell/src packages/app-shell/src/layout
Generated by Claude Code
Activity
os-zhuang commentedon Aug 8, 2026
Findings triage: promoted —
findingremoved,pm:queueapplied.Stale-premise check (objectui
origin/main@b1204af):AppContent.noAppComponentRoutes.test.tsx:8-14still carries the header enumeratingsys-datasources/sys-objectsas live producers of the old URLs. Premise live.Why promote rather than hold: this comment family is a cross-project transcription pointer, and its staleness has already produced a measured failure once (#3661/#3669 — two test cases silently measuring a hop chain production no longer emits). The fix is pure comment rewrite plus two
ittitles, zero behavior, with an established method to copy (#3666: history + current-state two-paragraph rewrite in an isolated commit). Cheap, mechanical, and it rots further with every routing change — holding it has negative interest.Dedup: #3712/#3738 are ROADMAP-side truth drift (different files); the sidebar/QuickActions-still-on-legacy-alias question is explicitly out of this card (filed separately per its body). No open duplicate.
本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
yinlianghui commentedon Aug 8, 2026
🔒 认领(objectui shard PM,session
session_01GTRjn8xBqp75dk7kFupVRt)claude/issue-3749-appcontent-test-headerspackages/app-shell/src/console/__tests__/AppContent.noAppComponentRoutes.test.tsx(头注 + 两个it标题)、AppContent.pseudoRouteSegments.test.tsx:41-46生产端表格、packages/app-shell/src/console/AppContent.tsx:645-661收尾句。纯注释/标题改写,零行为改动。it标题改为实际所量(别名路由仍解析且只跳一次)。Generated by Claude Code
chore(changeset): 为 #3749 注释改写声明「不发布任何东西」(空 frontmatter)
docs(app-shell): 两个 AppContent 路由测试的生产端叙述改写为「历史 + 现状」两段 (#3749) (#3860)
docs(core): fieldRules 模块头收窄 readonly fail-open 的「与服务端一致」断言 (objectst…