35 lines
2.7 KiB
Markdown
35 lines
2.7 KiB
Markdown
# 进度 · 开始聊天选择人物(2026-09-22)
|
||
|
||
基线:`6d06fca0d878403dc1fab646a20c5b8ef7447fd5`(开工时 `origin/staging`)。分支 `codex/chat-subject-picker-20260922`。未推送,未部署。
|
||
|
||
## 做了什么
|
||
|
||
- 普通咨询顶栏的静态人名改成 `ChatProfilePicker`。读屏名称是「当前星盘:人物名」,看见的字只有当前人物名。
|
||
- 新对话默认本人,不读 `activeChartId`。空会话里点另一个人,只改这一段还没开口的绑定。还没落库的空会话把 id 留在本地,第一条消息的 `POST /api/sessions` 带上它,姓名和角色由服务端填写。已经落库、仍没有消息的空会话只 `PATCH` id 和角色,不提交客户端姓名,再读回服务端姓名。
|
||
- 已经有消息的会话不改绑。点另一个人只有「新建会话并使用此人物」。回答还在进行时这个动作不执行。
|
||
- 打开历史会话不再把该人物写回账户级 `activeChartId`。深链和刷新仍只用库里的绑定。
|
||
- 人物列表加载中或失败时不创建绑定,也不把缺列表说成「资料已删除」。资料确认已删除后,旧会话还能看,发送被挡住,不退回本人。资料改名后,选择器显示资料里的现名,不改写已锁定会话的快照。
|
||
- 报告、每日星语入口和生时校正不挂这个选择器。校正顶栏仍是原来的静态 chip。
|
||
|
||
## 断言变更
|
||
|
||
没有改既有断言的期望值,也没有删测试名。`chart-library-session`、`session-open-preserves-identity`、`chat-session-write`、`chat-session-authority` 各加了一条,原断言仍在。
|
||
|
||
| 测试 | 原值 | 新值 | 原因 |
|
||
| --- | --- | --- | --- |
|
||
| 无 | — | — | 本轮只加断言,没有把旧期望改松 |
|
||
|
||
## 验证
|
||
|
||
- `tsc --noEmit`:通过。
|
||
- `npm run lint`:0 error。既有 warning 未改。
|
||
- `npx tsx --test` 定向:`chat-profile-picker` 10、`chart-library-session` 6、`session-open-preserves-identity` 5、`chat-session-write` 17、`chat-session-authority` 10、`home-shell-growth-contract` 4,加上同批的 `chat-session-url`、`composer-isolation-contract`、`consultation-subject-binding`。合计 79 pass / 0 fail;收尾再跑前六个文件 52 pass / 0 fail。
|
||
- 未跑全量 `npm test`,未跑 `next build`。
|
||
- `Home()`:`useState` 34(上限 36),`useRef` 37(上限 37),都没有新增调用。`page.tsx` 1844 行,低于 1846 + 150 的粗护栏。
|
||
- 没有登录态。浏览器点击未验收,见 `docs/testing/chat-subject-picker-20260922.md` 和 `BLOCKED.md`。
|
||
|
||
## 没动
|
||
|
||
- `starter-home.tsx`、starter-entry CSS、`consult/route.ts`、`docs/tasks/README.md`。
|
||
- 没有改表,没有改服务端 resolver 的失败即关闭语义。
|