Skip to content

console: #3660 把 sys-datasources 改指规范路由,却漏了紧挨一行的 sys-objects 与 QuickActions —— 三个调用点仍走 legacy 别名,每次点击多绕一跳 #3739

Description

@yinlianghui

越界发现,记录于 #3712(ROADMAP.md 单文件改写)期间,只报不改,单独立单,未认领

基线:origin/main @ 4e93e40d7

事实

#3660 把两个侧边栏的 sys-datasources 从 legacy 别名改指引擎的规范路由,并在代码里留了完整判词——packages/app-shell/src/layout/AppSidebar.tsx:330-337:

#3660sys-datasources names the metadata-admin engine's CANONICAL route /apps/setup/metadata/datasource, not the legacy …/component/metadata/resource?type=datasource alias it used to carry. That alias is not a page: its route element is LegacyMetadataRedirect, which Navigates onto exactly the URL spelled here, so every click paid a redundant hop plus a re-render.

同一个数组里紧挨上一行sys-objects 没有一起改。今天仍有三个调用点发出 legacy 别名:

packages/app-shell/src/layout/AppSidebar.tsx:329       url: '/apps/setup/system/metadata/object'
packages/app-shell/src/layout/UnifiedSidebar.tsx:335   url: '/apps/setup/system/metadata/object'
packages/app-shell/src/console/home/QuickActions.tsx:39  href: '/apps/setup/system/metadata/object'

system/metadata/:metadataType 正是别名:

  • console host 侧 apps/console/src/AppContent.tsx:190 的 route element 是 MetadataRedirect;
  • app-shell 侧同名别名亦为重定向(packages/app-shell/src/console/AppContent.tsx:645-662 的注释自述这些别名「serving bookmarks and external links, the arrivals that can never be re-pointed」)。

规范目标是 /apps/setup/metadata/object(packages/app-shell/src/console/AppContent.tsx:641metadata/:type,元素 MetadataResourceListPage)。apps/console/src/__tests__/AppContent.legacyRedirects.test.tsx:105-113 已把这条改写钉成「ONE hop」:/apps/x/system/metadata/object/apps/x/metadata/object

所以现状是:内部导航自己把流量喂进为「无法改指的外部到达」保留的别名——正是 #3639#3660 分别为 console host 的两个 redirect、以及 System Hub 卡片消除掉的形态(SystemHubPage.tsx:180-188 的注释:「this only stops the hub feeding its own traffic through them」)。

血缘(为什么是漏掉而不是有意保留)

git log -L 显示这三处的拼法都早于那轮清理、之后未被触碰:

  • AppSidebar.tsx:329 最后一次改动是 97c68317c(i18n polish,只包了 t(),URL 原样);
  • QuickActions.tsx:39 最后一次改动是 152bd4561(setup app,只加了 /apps/setup 前缀),其上一次是 f9f9f5157,即把 /system/objects 改成 /system/metadata/object 的那次。

代码里没有任何注释为 sys-objects 保留别名拼法作辩解——与它下一行 sys-datasources 的长注释形成对照。

复核方式

grep -rn "system/metadata/object" --include='*.ts' --include='*.tsx' apps/ packages/ | grep -v __tests__
sed -n '320,345p' packages/app-shell/src/layout/AppSidebar.tsx
sed -n '328,345p' packages/app-shell/src/layout/UnifiedSidebar.tsx
sed -n '30,45p' packages/app-shell/src/console/home/QuickActions.tsx
sed -n '105,113p' apps/console/src/__tests__/AppContent.legacyRedirects.test.tsx

影响面

用户可感,但轻:点「Object Manager」/「Manage Objects」会先落别名再 Navigate 到规范 URL —— 多一跳、多一次 re-render,浏览器历史里多一格(Back 键行为因此与 sys-datasources 不一致)。落地页正确,所以不是死链。

严重度按纪律不自评,留给分诊:#3660 已经把同一形态判为值得修,而这三处是它围栏外的同族残余。

关联

已就关键词(sys-objectssystem/metadata/objectQuickActionsredundant hop、sidebar / 别名)搜过本仓 issue:相关单(#3610 / #3639 / #3661 / #3669)均已关闭,无同源开放单。


Generated by Claude Code

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions