# 2026-04-16 桌面端专家入口问题交接

## 背景

本轮处理的是桌面端以下问题：

1. 小红书和抖音专家页不显示
2. 内容账号规划专家、知乎专家是否为独立专家要按项目事实核查
3. 左侧栏多数专家点不了，要求除独立专家外其余专家点击后跳首页对话
4. 左侧专家列表过长，挤占会话管理，需要独立滚动
5. 首页对话发送“你好”仍路由到抖音，且消息马上消失

## 已完成

### 1. 修复首页快捷专家不可点击

文件：

- `apps/desktop/src/main/services/expert-catalog.ts`

改动：

- `promptAvailable` 由“仅检查 promptFile 是否存在”改为：
  - 有 `starterPrompt` 即可用
  - 或 `promptFile` 文件存在也可用

影响：

- 公众号专家、X 专家、Tiktok 专家、海报专家、GEO 专家、平台精准线索专家恢复可点击

### 2. 修复首页对话串到抖音、消息消失

文件：

- `apps/ui/src/App.tsx`

改动：

- `chat` 视图发送时，优先使用 `home-chat` 的 `sessionScopeProjectId`
- 不再优先使用 `workspace.currentProjectId`
- 新增 `openHomeChat()`，保证切回首页对话时同步归一到 `home-chat`
- 左侧“对话”导航点击改为走 `openHomeChat()`
- 首页快捷专家点击也改为走 `openHomeChat(true)`

影响：

- 首页对话不再把消息建进抖音项目
- 消息不会因为会话作用域错位而“发送后消失”

### 3. 恢复专家页真实项目来源

文件：

- `apps/ui/src/App.tsx`

改动：

- 新增 `buildProjectExpertDefinition()`
- 新增 `projectExpertEntries`
- `expertPageProjects` 不再只取 `standaloneExpertEntries`
- 改为基于真实 `visibleProjects` 生成专家页项目

影响：

- 仓库里真实存在的 `xhs` / `douyin` 项目可以重新进入专家页
- 左侧专家栏也改为优先显示真实项目专家，再拼首页快捷专家

### 4. 修复左侧栏滚动布局

文件：

- `apps/ui/src/styles.css`

改动：

- `sidebar-bottom` 改为两段式布局
- 新增 `.sidebar-expert-scroll`
- 新增 `.sidebar-session-section`
- 让专家区和会话区分别滚动

影响：

- 专家列表过长时，不再把会话管理区整体挤没

### 5. 补齐 smoke 类型定义

文件：

- `apps/ui/src/App.tsx`

改动：

- `SmokeUiSnapshot` 新增 `sessionScopeProjectId`

目的：

- 修复 `typecheck` 因 smoke 快照字段缺失导致的编译错误

## 已验证

已通过：

- `corepack pnpm typecheck`
- `powershell -ExecutionPolicy Bypass -File build/scripts/default-chat-smoke.ps1`
- `powershell -ExecutionPolicy Bypass -File build/scripts/project-routing-smoke.ps1`
- `powershell -ExecutionPolicy Bypass -File build/scripts/desktop-expert-entry-smoke.ps1 -SkipMaterializeRuntime`

`desktop-expert-entry-smoke` 已覆盖：

- `content-account-planning`
- `zhihu`
- `wechat-official-account`
- `x-platform`
- `tiktok`
- `poster`
- `geo`
- `precision-leads`

## 关键事实结论

### 1. 小红书 / 抖音专家页消失的主因

不是项目没了，是前端把专家页数据源改成只看 `standalone` 专家定义，导致真实项目 `workspace/xhs`、`workspace/douyin` 被过滤掉。

### 2. 其他专家点不了的主因

不是按钮组件坏了，是可用性判定错了。首页快捷专家只有 `starterPrompt`，没有 `promptFile`，因此被错误判成不可用。

### 3. 内容账号规划专家 / 知乎专家当前状态

按仓库事实，它们当前仍不是“仓库内已落地的真实独立专家项目”。

说明：

- 当前仓库 `workspace/` 下没有它们对应真实项目目录
- 但 smoke 已经证明：当用户数据里存在对应项目时，UI 入口和会话隔离链路可以工作

结论：

- 现在更准确的说法是：入口机制和隔离路由已支持
- 但仓库内真实项目包还没补齐

## 当前未完成

### 1. 肉眼页面确认未完成

原因不是代码未生效，而是本机存在一个旧的 Electron 进程：

- `PID 20424`

表现：

- 我已执行 `corepack pnpm build`
- 新的 renderer 已成功输出到 `apps/desktop/dist/renderer`
- 但旧进程无法被我当前环境结束，导致用户看到的仍可能是旧界面

### 2. 旧进程状态

用户侧执行过：

```powershell
taskkill /PID 20424 /F /T
```

结果：

- 失败
- 提示该进程属于父进程 `23116` 的子进程
- 原因是 `拒绝访问`

结论：

- 最稳妥处理是重启机器

## 已完成但需要用户重启后确认的点

重启后需要肉眼确认：

1. 左侧或专家页是否能看到“小红书专家”“抖音专家”
2. 点击公众号/X/Tiktok/海报/GEO/平台精准线索，是否跳转首页对话，而不是进入专家页
3. 首页发送“你好”，是否仍会跑到抖音
4. 发送后的消息是否还会消失
5. 左侧专家区和会话区是否都可以独立滚动

## 重启后继续执行顺序

1. 先启动桌面端
2. 先看小红书 / 抖音专家是否出现
3. 再测首页快捷专家跳转是否正确
4. 再测首页发送“你好”
5. 若页面仍不对，先确认是否真的是新进程和新包

## 如果重启后仍异常，优先检查

### A. 是否加载了新 renderer

重点看：

- `apps/desktop/dist/renderer/index.html`
- `apps/desktop/dist/renderer/assets/index-*.js`

### B. 是否仍有旧 Electron 残留

命令：

```powershell
Get-Process | Where-Object { $_.ProcessName -match 'electron|QianjiangClaw' } | Select-Object Id,ProcessName,Path
```

### C. 如果页面还是没有小红书 / 抖音专家

继续检查：

- `workspace.getSummary()` 返回的 `workspace.projects`
- `visibleProjects`
- `projectExpertEntries`
- `expertPageProjects`

## 相关文件

- `apps/ui/src/App.tsx`
- `apps/ui/src/styles.css`
- `apps/desktop/src/main/services/expert-catalog.ts`

## 备注

本轮没有继续接“龙虾密钥真实绑定态页面验证”，因为用户当前首先反馈的是“小红书和抖音专家在页面上仍没看到”，而该现象与旧 Electron 残留更直接相关。后续等重启后再继续做真实页面 smoke。
