2.7 KiB
2.7 KiB
进度 · 开始聊天选择人物(2026-09-22)
基线:6d06fca0d878403dc1fab646a20c5b8ef7447fd5(开工时 origin/staging)。分支 codex/chat-subject-picker-20260922。未推送,未部署。
做了什么
- 普通咨询顶栏的静态人名改成
ChatProfilePicker。读屏名称是「当前星盘:人物名」,看见的字只有当前人物名。 - 新对话默认本人,不读
activeChartId。空会话里点另一个人,只改这一段还没开口的绑定。还没落库的空会话把 id 留在本地,第一条消息的POST /api/sessions带上它,姓名和角色由服务端填写。已经落库、仍没有消息的空会话只PATCHid 和角色,不提交客户端姓名,再读回服务端姓名。 - 已经有消息的会话不改绑。点另一个人只有「新建会话并使用此人物」。回答还在进行时这个动作不执行。
- 打开历史会话不再把该人物写回账户级
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-picker10、chart-library-session6、session-open-preserves-identity5、chat-session-write17、chat-session-authority10、home-shell-growth-contract4,加上同批的chat-session-url、composer-isolation-contract、consultation-subject-binding。合计 79 pass / 0 fail;收尾再跑前六个文件 52 pass / 0 fail。- 未跑全量
npm test,未跑next build。 Home():useState34(上限 36),useRef37(上限 37),都没有新增调用。page.tsx1844 行,低于 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 的失败即关闭语义。