Skip to content

导航仍有 4 处生产端在生成已废弃的 component/metadata 别名(SystemHub 两张卡片 + 两个 sidebar),各多绕一跳 #3660

Description

@yinlianghui

越界发现,记录于 #3639(宿主重定向改发规范拼法)期间,该单明确要求「枚举仓内还有谁在生成 component/metadata/...」。这 4 处落在 #3639围栏外(其文件面只有 apps/console/src/AppContent.tsx),按纪律只报不改未认领,留给 PM 分诊。

观察类:这些链接今天都能走通(别名 302 到规范路由),用户看不到任何异常,代价只是每次点击多一个 Navigate + 一次 re-render。故打 finding、不打 pm:queue

实测基线:origin/main @ 54dd7ec1

事实

packages/app-shell/src/console/AppContent.tsx:775-776(有 activeApp 分支)与 :646-647(零应用分支)把 component/metadata/directorycomponent/metadata/resource/* 声明为旧别名,element 是 LegacyMetadataRedirect —— 它把这两个拼法翻译成规范的 metadata[/:type[/:name]]规范拼法是 metadata/:type

PR #3658(修 #3639)已把 apps/console 的两个宿主重定向改成直发规范拼法。全仓 grep 后,仍在生成别名 URL 的还剩 4 处:

# 位置 产出的 URL
1 apps/console/src/pages/system/SystemHubPage.tsx:118 ${basePath}/component/metadata/directory
2 apps/console/src/pages/system/SystemHubPage.tsx:126 ${basePath}/component/metadata/resource?type=datasource
3 packages/app-shell/src/layout/AppSidebar.tsx:330 /apps/setup/component/metadata/resource?type=datasource(sys-datasources)
4 packages/app-shell/src/layout/UnifiedSidebar.tsx:336 同上(sys-datasources)

1 和 2 是 SystemHub 的 "Metadata" / "Datasources" 两张卡片的 href;3 和 4 是两份系统导航里同一个 sys-datasources 条目(两个 sidebar 实现各持一份字面量)。

对应的规范落点(按 LegacyMetadataRedirect 的翻译逻辑推出,与 #3658 的做法一致):

  • component/metadata/directorymetadata
  • component/metadata/resource?type=datasourcemetadata/datasource

为什么不在 #3658 里顺手改

另注:PR #3636(修 #3610)的 changeset 明写「with no navigation URL changed」—— 当时是刻意不动导航、只在路由侧补别名声明,不是认定这些 URL 正确。

需要一并考虑的两件事

  1. packages/app-shell/src/layout/__tests__/systemNavSettingsTarget.test.tsx:162 钉住了 3/4 的现有形态(['Datasources', '/apps/setup/component/metadata/resource?type=datasource'])。改导航 URL 必须同步改这条钉,否则红。
  2. 别名路由本身仍应保留 —— 书签与外链需要它。本单只主张「自家导航不再喂别名」,不主张删别名(与 console(apps/console): MetadataRedirect / ObjectRedirect 改写到已废弃的 component/metadata/resource 别名,多绕一跳且 docblock 已过期 #3639 裁决第 3 条一致)。

关联

已就关键词(component/metadata / sys-datasources / SystemHubPage / AppSidebar / UnifiedSidebar / legacy alias / double redirect)与上述文件路径搜过本仓开放 issue 与 PR,除 #3639 外无同源单。


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