Skip to content

console: 空态「Create Your First App」CTA 跳向未声明的 /create-app,被 catch-all 弹回落地页 #3573

Description

@yinlianghui

越界发现,记录于 #3543(清理 console-architecture.md / console.md 的过期陈述)期间。按纪律只报不改,单独立单,未认领,留给 PM 分诊。

实测基线:origin/main @ b785a77b3

现象

一个应用都没有的用户,在 console 里看到的唯一主 CTA「Create Your First App」点下去不会打开建应用向导,而是被重定向回落地页 /

实测链路

  1. 空态渲染点(活的):packages/app-shell/src/console/AppContent.tsx:577

    Button onClick={() => navigate('/create-app')} data-testid="create-first-app-btn"

    前置条件是 !activeApp && !isCreateAppRoute && !isSystemRoute && !isMetadataRoute(同文件 568 行)。

  2. '/create-app' 带前导斜杠,是绝对路径,因此从根路由树解析,而不是当前 /apps/:appName/* 子树。

  3. apps/console/src/App.tsx 的根路由树里没有 /create-app:

    grep -n "create-app" apps/console/src/App.tsx apps/console/src/AppContent.tsx
    # 零命中
    
  4. 于是落到根路由树最后一条兜底(apps/console/src/App.tsx:354):

    Route path="*" element={ Navigate to="/" replace }

    → 用户被弹回 /(RootLandingRedirect)。

真正声明 create-app 的是 shell 的 AppContent.tsx(path="create-app"),它挂在 /apps/:appName/* 子树内部 —— 包括同文件里那条「无 activeApp 时仍可进 create-app」的分支。也就是说目标路由存在,只是 CTA 指错了层级:应当指向该子树内的路径,而不是根路径。

影响

这是新用户的第一屏、且是该空态里唯一指向「建应用」的按钮(旁边的 go-to-settings-btn/apps/setup 是好的,因为它落在 /apps/:appName/* 内)。点击后无声地回到落地页,没有任何报错,表现像「按钮没反应」。

备注

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions