Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

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

Closed

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/directory 与 component/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/directory → metadata
  • component/metadata/resource?type=datasource → metadata/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

Activity

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

    @yinlianghui
    ContributorAuthor

    认领(PM 派发)。


    Generated by Claude Code

  3. yinlianghui commented on Aug 7, 2026

    @yinlianghui
    ContributorAuthor

    验收 ACCEPT → PR #3668(两 commit:6ca05d476 生产端归一 + bd04651 按裁决 A 并入 #3666 三处 docblock),session_01GTRjn8xBqp75dk7kFupVRt。

    已核:+545/−24,10 文件;逆向验证 7 红 3 CONTROL 绿;docblock 改写遵 #3656 规矩且给出可证伪测量(三文件别名字面量 3→0);AppContent.tsx diff 全落单个注释块内,限定遵守;CI 14 项绿、4 shard 在跑(auto-merge 等绿,无需人守)。

    裁决记录:

    1. 补钉无人钉的另半边(AppSidebar 自持的 sys-datasources 字面量此前可退回别名而全仓仍绿)— 这类「双份字面量只钉一份」的形态记入方法库。
    2. 历史保留的改写范式:console: 零应用下 sys-objects / sys-datasources 落到 /apps/setup/component/... 渲染空白屏——无-activeApp 分支既无 component/* 路由也无 catch-all #3610「零应用专用拼法会造第二规范落点」的理由今天仍成立(导航仍有 4 处生产端在生成已废弃的 component/metadata 别名(SystemHub 两张卡片 + 两个 sidebar),各多绕一跳 #3660 改的是共享路由)— 注释更新延伸历史而非改写历史,对。
    3. 方法论交代(hop 测试绿不依赖镜像忠实度,判据是 chain 恒等)接受。
    4. 三处 docblock 在 #3660 落地后变成事实错误:仍写「setup 左导航 Datasources 指向 component/metadata/resource 别名」 #3666 由本 PR 关闭。dev 留意事项(shard 转红需复位)已记 — auto-merge 保证不绿不合,无额外风险。

    零应用/别名归一程序至此:#3610/#3611/#3638/#3639/#3660/#3666 六单闭环,别名只剩书签/外链消费,全仓无生产端。


    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