fix(web): 会话列表合同跟着外壳搬家,无活跃会话不再静默吞发送
四条源码合同改到 (app)/layout 与注册载荷两端对断。列表只剩校正会话时普通输入框锁定,发送会打开校正或给出提示。
This commit is contained in:
+50
-1
@@ -12096,7 +12096,7 @@
|
||||
- 根因:`/` 不在 `(secondary)` 路由组,离开即卸载 Home;次级页另用 `useSidebarData` 再拉一遍。
|
||||
- 修复:四个页面进 `(app)` 路由组。一份 `SessionListProvider` 拉 `/api/sessions` 与 `/api/account`。首页不再自己 `fetchSessions`/`fetchAccount`。侧栏不随切页卸载。按任务书让步,改名/置顶/删除仍由首页注册,未注册时侧栏只读。
|
||||
- 验证:`session-list-provider.test.ts`、`sidebar-contract.test.ts`、`chart-page-view.test.tsx`。
|
||||
- 防复发:`app/` 里 `SidebarProvider` 只许出现在 `(app)/layout.tsx`。
|
||||
- 防复发:`app/` 里 `SidebarProvider` 只许出现在 `(app)/layout.tsx`。外壳搬家必须同步搬走针对 `page.tsx` 的源码合同,且交付前必须跑全量 `npm test` 与 `tsc --noEmit`,不得只跑定向。
|
||||
- 相关记录:BUG-745、BUG-926
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
@@ -12180,3 +12180,52 @@
|
||||
- 相关记录:BUG-930
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-933 | 四条源码合同没跟着外壳搬家,门禁卡住
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-17
|
||||
- 最近更新:2026-09-17
|
||||
- 影响面:`chat-navigation-a11y-contract.test.ts`、`rectification-history-open-20260909.test.ts`、`rectification-surface-contract.test.ts`、`chat-session-url.test.ts`
|
||||
- 用户现象:会话列表单实现已落地,但 staging 门禁 `npm test` 必红,今天的代码提交上不了线。
|
||||
- 触发条件:`e4e73f56` 把 `<main className="chat-app">` 和侧栏 props 搬到 `(app)/layout.tsx`,启动改成 `sessionListReady`。
|
||||
- 根因:四条合同仍按搬家前的 `page.tsx` 形状断言。被保护的性质都还在,是合同陈旧。执行方只跑了定向测试。
|
||||
- 修复:四条按「原值 / 新值 / 原因」改写,分别断 layout 与 homepage 注册两端,不得删测试。
|
||||
- 验证:上述四文件;全量 `npm test` 相对 `cc1a8980` 少这 4 条红。
|
||||
- 防复发:见 BUG-927。
|
||||
- 相关记录:BUG-927、BUG-745
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-934 | 今日星语 / 生时校正入口合同仍找已删除的卡片类名
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-17
|
||||
- 最近更新:2026-09-17
|
||||
- 影响面:`tests/test_daily_and_rectification_entrypoints.py`
|
||||
- 用户现象:Python 定向跑这两条必红。不在 `CORE_PYTEST_TARGETS`,不挡门禁。
|
||||
- 触发条件:断言 `daily-starlanguage-card` / `birth-rectification-card`。
|
||||
- 根因:`62903b7a` 把空状态改成问候 + 输入框 + 两枚 pill,类名已全仓删除。既有欠账,不是会话列表单引入。
|
||||
- 修复:改为断言 `starter-entry` pill 与 `startDailyStarlanguageConsultation` / `openRectificationFromHomepage`,并断言旧类名不存在。
|
||||
- 验证:`pytest tests/test_daily_and_rectification_entrypoints.py`。
|
||||
- 防复发:入口形态变了必须改这条合同,不得把已删除的卡片类名当存在。
|
||||
- 相关记录:无
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-935 | 列表只剩校正会话且无活跃会话时,普通输入框静默吞发送
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-17
|
||||
- 最近更新:2026-09-17
|
||||
- 影响面:`page.tsx` `activeSession` 回退、`send()`、普通 `ChatComposer`
|
||||
- 用户现象:账号里只有校正会话时,普通输入框能打字;发送没有任何提示,字消失。
|
||||
- 触发条件:`activeSession` 为 `undefined`(列表全是校正,找不到非校正回退),校正面正在打开或打开失败。
|
||||
- 根因:校正守卫把 `?? sessions[0]` 改成 `find(非校正)`。无活跃会话时 `activeRectificationSession` 为假,输入框可用;`send()` 因 `!currentSession` 直接 `return false`。
|
||||
- 修复:`composerLocksAsRectification`:无活跃会话但列表有校正会话时按校正占位锁定。`send()` 无活跃会话时打开校正或提示「请先选一条对话」。
|
||||
- 验证:`rectification-session-composer-guard.test.ts`。
|
||||
- 防复发:无活跃会话不得静默吞发送;列表全是校正时普通输入框不得可用。
|
||||
- 相关记录:BUG-924
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
|
||||
Reference in New Issue
Block a user