Skip to content

setup: 侧边栏「数据源」点击无跳转,URL 停留在 system_overview #3419

Closed as not planned

Description

@os-zhuang

现象

在系统设置(Setup)里点击侧边栏「数据源」导航项,页面不跳转,URL 始终停留在 /_console/apps/com.objectstack.setup/dashboard/system_overview。重复点击两次结果一致(a11y 树确认点中的是 link "数据源")。

复现

  1. pnpm -C examples/app-showcase exec objectstack dev --ui --seed-admin -p 3777(main,2026-07-23)
  2. dev admin 登录 Console → 首页点「系统设置」→ 落在 system_overview
  3. 点侧边栏「数据源」→ URL 与页面均不变

同页的「浏览应用市场」链接跳转正常(→ /_console/apps/setup/system/marketplace),说明不是侧边栏整体坏,是该导航项的绑定。

影响

外部数据源管理是 ADR-0062 的门面能力,管理员核心路径不可达;dogfood 时想演示 Setup → Datasources 页面直接做不到。

根因线索

建议

  1. 修复绑定本身;
  2. 导航项目标解析失败时 fail-loud(至少 console warn),不要渲染成看起来可点的死链接;
  3. e2e 给 Setup 每个 nav 项加「点击后 URL/surface 变化」断言。

来源:内部培训 PPT 制作过程中的 dogfood(浏览器实测,非代码走读)。

Activity

  1. os-zhuang commented on Jul 24, 2026

    @os-zhuang
    ContributorAuthor

    复现结论:当前 main 上导航正常,无法复现

    在当前 main(showcase os dev --ui --seed-admin,dev admin 登录)逐步实测 Setup → 侧边栏「数据源」:

    • 该项 DOM href = /_console/apps/setup/component/metadata/resource?type=datasource(即框架 service-datasource 插件 type:'url' 贡献的 nav)。
    • 点击后 URL 确实变化:…/dashboard/system_overview → …/component/metadata/resource?type=datasource → 经 LegacyMetadataRedirect 一跳落到规范 REST 列表页 /_console/apps/setup/metadata/datasource。
    • 页面正常渲染 "Datasources" 标题 + 真实列表(External Analytics (SQLite) / showcase_external / sqlite,含 Test / Sync objects 按钮)。

    即:该 type:'url' 目标 component/metadata/resource 是有效(legacy)路由,会重定向到规范页,不是死链。承载该 REST 路由/重定向的改动(objectui refactor: migrate metadata admin to REST-style /metadata routing)早在 2026-05-27 就已合并,先于本 issue 的 2026-07-23 dogfood 观察——所以当时理论上也是通的。

    原始观察「URL 停留在 system_overview、重复点两次一致」目前无法复现,最可能是当时的瞬态(未等到重定向那一跳就判定 no-op)。

    建议

    1. 倾向关闭为 not-reproducible;若能提供当时的 console/network 记录或更精确复现步骤则重开。
    2. 附带的一个小改进(非 bug 修复)已在本地备好并测试:把该 nav 从手写 legacy URL 收敛成规范形 type:'component' + componentRef:'metadata:resource' + params:{type:'datasource'}(与 studio.app.ts 对所有元数据类型的写法一致,SystemHubPage 的权威指引也是这个),这样不再依赖 legacy 重定向那一跳。如需要可单独提 PR。
    3. issue 建议 Implement ObjectStack protocol specification with Zod schemas and TypeScript interfaces #3 仍成立且有价值:给 Setup 每个 nav 项加「点击后 surface 变化」的 e2e 断言,把这类(即便是瞬态的)导航回归拦在发布前。

    来源:#3419 排查(浏览器逐步实测,非静态走读)。

  2. os-zhuang commented on Jul 24, 2026

    @os-zhuang
    ContributorAuthor

    关闭为 not-reproducible:当前 main 实测该导航正常(点击→重定向→渲染 Datasources 列表,见上方评论的逐步证据),原始「无跳转」无法复现,承载路由早于观察时间已合并。若日后能提供当时的 console/network 记录或稳定复现步骤,欢迎重开。issue 建议 #3(Setup nav 点击后 surface 变化的 e2e 断言)作为独立的发布前护栏仍有价值,可另开跟踪。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions