Skip to content

[REQ-126][CODE] 新对话改由 alpha 直接建 draft,不再经上游 legacy admission 路由 #656

Description

@jinjunnn

Covers

AC1、AC5(父票 #653)。基线(rev3)小节:§1.1 / §1.4 / S1 / §4 序 3。

Boundary

  • packages/ui-mac/src/renderer/sidebar/alpha-sidebar.tsx —— newChat() 与冷启动落地(didLaunchNav)收敛到单一 startDraft({ server, directory })
  • packages/ui-mac/src/renderer/alpha-ui/providers.ts —— 转口 useTabs / useServer(ADR-016 借用面单点)
  • packages/ui-mac/src/renderer/sidebar/use-projects.ts:284-299 —— ensureDefaultWorkspace 检查 {ok:false} 返回值(IPC 不 throw,main/ipc.ts:186-189)

Out of scope

Exit condition

合并 PR + bin/check 绿。可观察结果:

  1. 点「新对话」与冷启动落地都不经 session-admission;
  2. tabs.ready() 后再建 draft;
  3. {server, directory} 同源:宿主机默认对话目录 ~/Alpha(main/alpha-user-workspace.ts 供给)只配本地 sidecar server;当前 server 为 WSL/remote 时只能用该 server 上已知项目,取不到则要求显式选择 —— 不得把宿主机路径配到远端 server;
  4. 连点两次只产生一个 draft;
  5. 未显式选择目录时目录 = 默认对话目录,建 draft 先 ensure,ensure 失败有提示且不建 draft。

闸门形制(基线 §3.7):挂真实 AppInterface + AlphaSidebar,点新对话后断言在 data-alpha-new-session 出现之前从未出现 legacy sidebar 或 session workspace DOM。

实现第一步:先运行时捕获(DOM mutation / 逐帧)确认 owner 看到的「最左侧内容」到底是 legacy SidebarContent 还是 alpha session workspace 空态 —— 基线把归因标为 UNVERIFIED,不要把推测写成结论。修法对两者都成立。

Parent

Refs #653

Metadata

Metadata

Assignees

Labels

area:productUser-facing product behaviortype:bugSomething is incorrect or regressed

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions