#111 第 3 轮:建档不退回加载、右栏能拖宽、清单不迟到、月亮问句与别人的上升句(BUG-1455~1459)

- 建档重读人物名单时保留旧名单,失败也不卡在加载画面(BUG-1455)
- 对话右栏改用自己的拖宽把手,侧栏与右栏都能用方向键(BUG-1456/1457)
- 启程清单胶囊和首页一起出来,读状态时用上次的样子占位(BUG-1458)
- 起步第一问与别人的天空过场读一次已算好的星盘取星座,上升只在不会换座时用(BUG-1459,产品 10-27 同意)
- 补回删减的断言与三栏说明;登录代码改回原样,替身放进测试;删旧校正画面的无用样式
- 首屏 +7.54% 产品已接受,写进 DESIGN

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
This commit is contained in:
Jesse_Chen
2026-10-27 10:24:57 +08:00
co-authored by Claude Opus 5.5
parent 75cf7ad0e0
commit de9d4826c1
35 changed files with 1005 additions and 183 deletions
@@ -0,0 +1,50 @@
# 进度:组件库修复第 3 轮(issue #111,Claude 直接执行,2026-10-27)
- 修复清单:`TASK-ui-kit-onboarding-fix-20261026.md` 末尾「第 2 轮验收」第 1~7 条,加 U11 第 2、3 项。
- 产品决定(#111,2026-10-27):由 Claude 来修;首屏 +7.54% 接受;为 U11 第 2、3 项允许多读一次已算好的盘。
- 分支 `codex/ui-kit-fix3-20261027`,从 `codex/ui-kit-onboarding-fix-20261026`(`365a623fc`)开出,先合并 `origin/staging`(`9ca933968`,含 #112)。
- BUG 编号:#112 已占 1444~1447。#111 分支原来的 1444~1450 合并时顺延为 1448~1454,本轮新增 1455~1459。
## 逐条
| # | 内容 | 结果 | BUG |
| --- | --- | --- | --- |
| 1 | 建档后整页退回「正在载入账户」 | 建档改用 `refreshSubjectCatalog()`:旧名单保留到新名单到;重读失败保留原来的完整名单。换账户仍用 `invalidateSubjectCatalog()` | 1455 |
| 2 | 对话右栏拖不动 | 右栏不再用分栏组,左缘换成 `useDragWidth` 把手;拖到最窄以下收起。聊天列仍在右栏外,不重挂 | 1456 |
| 3 | 侧栏把手没有键盘 | 侧栏和右栏共用 `useDragWidth`:左右方向键 16px、Home / End,键盘不收起;`role="separator"` 带宽度 | 1457 |
| 4 | 删减断言没写三栏 | 「关闭导出」点按补回;选盘型的源码守卫补回;旧校正组件那条删除补写三栏 | — |
| 5 | 为测试改了线上登录代码 | `modules/identity/client.ts`、`email-otp-login.tsx` 改回合并基线原样。测试替身放进 `login-code-entry.test.tsx`:加载钩子把 `next/image` 换成组件本身;先装好 fetch 替身再动态导入登录页 | — |
| 6 | 清单揭幕后才冒出来 | 新增 `OnboardingChecklistSlot`:胶囊不等弹层代码;读启程状态期间用本机上次的胶囊占位 | 1458 |
| 7 | 无用样式 | 删除旧校正组件独有的 30 个类的规则(`globals.css`、`birth-time-choice.css`),逐个确认 `src/` 无引用、测试无断言 | — |
| U11-2 | 起步第一问「只有月亮」档 | 没有今日星语时读一次星盘页同一份结果;上升只在 `lagnaPrecheck.state === "fixed"` 时用 | 1459 |
| U11-3 | 别人的天空过场上升句 | 过场开始时为别人读同一份结果;上升会换或读不到就不写这句 | 1459 |
## 改动的既有断言(原值 / 新值 / 原因)
| 文件 | 原值 | 新值 | 原因 |
| --- | --- | --- | --- |
| `tests/chat-chart-panel-state.test.ts` | split 里要有 `ResizablePanelGroup`、`collapsible` | split 用 `useDragWidth(`,`onCollapse` 调 `onOpenChange(false)` | 组里只剩一个面板时把手拖不动;聊天列不能进组(BUG-1448),改成不依赖分组的把手 |
| `tests/class-name-definition-contract.test.ts` | 白名单含 `chat-chart-resize-handle` | 删掉这一项 | 这个类现在有自己的样式规则 |
| `tests/onboarding-checklist-20261022.test.ts` | 首页 `<OnboardingChecklistEntry />`,page.tsx 里 dynamic 引入且不给占位 | 首页 `<OnboardingChecklistSlot />`;dynamic 引入在 slot 文件里,带 `loading` | 不给占位导致揭幕后才冒出来(第 6 条) |
| `tests/report-export-drawer.test.tsx` | (365a623fc)没有「关闭导出」点按 | 补回,点了再关一次 | 按钮还在,是最常用的关法 |
| `tests/chart-type-picker.test.tsx` | (365a623fc)没有源码守卫 | 补回 `doesNotMatch(/<dialog\|<button\|ToggleGroup\|role="tablist"/)` | 点按测试拦不住退回手写控件 |
| `tests/birth-time-guided-review-fixes.test.ts` | (365a623fc)整条删除,没写说明 | 补写三栏注释 | 四个旧校正组件已删除,见注释 |
| `tests/onboarding-hint-observer.test.tsx`、`tests/onboarding-motion-gate.test.tsx` | 夹具没有新字段 | 加 `checklistPending: false`、`userId: ""` | 类型新增字段;断言不变 |
## 验收数字(Linux,Node 22)
| 检查 | 结果 |
| --- | --- |
| `tsc --noEmit` | 0 错(构建前后各一次) |
| `npm run lint` | 0 error,122 warning(与 staging 相同) |
| `npm test` 全量 | 5219 项,通过 5143,失败 25,取消 0。25 条与 staging 已知名单逐条同名,没有新增 |
| `next build` | `/` 仍 `○ Static`。第一次构建在本机内存紧张时报「Failed to type check.」且没有任何类型错误,单独重跑通过 |
| 首屏 gzip-9 | 699,664。产品已接受的新基线 694,941(+0.68%);当前 staging 727,735(−3.9%) |
| 隐私标记 `tests/test_repo_privacy_markers.py` | 通过 |
| 数据库 / Python 快速门 | 本轮没动表、没改 `scripts/**` 与根目录 `tests/**`,未跑 |
首屏多出来的约 4.7 KB:合并了 staging 的 #112 页头一句,清单胶囊(进度圈)和拖宽钩子现在在首屏。读星盘那段代码用到时才载入,不在首屏。
## 留给真机
浏览器手感(拖宽、方向键、清单胶囊不跳、建档不退回加载、月亮问句和别人的上升句)写在 `docs/testing/ui-kit-migration-20261023.md`「第 3 轮修复」。
+2 -1
View File
@@ -40,7 +40,8 @@
| `TASK-rectification-explicit-open-20261023.md` | `PROGRESS-rectification-explicit-open-20261023.md` | **明说要校正只回一句话(issue #103)**:找会话直接读一张对服务角色撤权的表、必然失败被吞(真正进行中的也续不上);`candidate_accepted` 被算作进行中挡住入口和提议卡;兜底只给一句话。产品选 C;只改入口口径、经 RPC 找会话、删兜底,不改共享状态集合、不动表。BUG-1423 | 已合入 staging | 分支 `codex/rectification-explicit-open-20261023` |
| `TASK-chart-table-span-20261023.md` | `PROGRESS-chart-table-span-20261023.md` | **星盘页本命 / 月亮行星表挤进左栏(issue #102)**:#87 给表包了 `ChartSymbolHelp` 后跨栏规则失配;根因修法是 `VedicLayout` 用固定整行容器承载表格,跨栏只认容器;加结构断言防复发。BUG-1422 | 已合入 staging | 分支 `codex/chart-table-span-20261023` |
| `TASK-ui-kit-migration-20261023.md` | `PROGRESS-ui-kit-0-base-20261023.md`;`PROGRESS-ui-kit-1-shell-20261023.md`;`PROGRESS-ui-kit-2-chat-20261023.md`;`PROGRESS-ui-kit-3-chart-20261023.md`;`PROGRESS-ui-kit-4-people-20261023.md`;`PROGRESS-ui-kit-5-pages-20261023.md`;`PROGRESS-ui-kit-6-rectification-20261023.md`;`PROGRESS-ui-kit-7-cleanup-20261023.md` | **界面统一换成组件库**:shadcn base-nova(补 `shadcn/tailwind.css`)· Lucide · Motion · react-resizable-panels · dnd-kit · Zustand;lint 拦手写控件(白名单只减不增);对话旁星盘面板;会话、档案拖动排序(动表);长相不变。产品 2026-10-23 拍板 D1~D8;8 个 issue(K0~K7)串行,取代全站动效 #98 #100 #101 | K0–K7 已在测试环境,待验收 | 原型 https://claude.ai/artifact/PGnWsjHhu38KJseEfEMNWG |
| `TASK-ui-kit-onboarding-fix-20261026.md` | `PROGRESS-ui-kit-onboarding-fix-20261026.md` | **组件库 K0~K7 与启程(二)~(四)事后验收**:桌面首屏后整页重挂、中英切换看不出选中、提示层每次 DOM 变化全页扫描、启程动效对所有人生效且会藏内容、清单数据只拉一次、拖动排序 N 个请求与部分失败、缺真库重读测试、首屏超 2%、依赖卫生、补回削弱的测试、启程(二)三处未做 | 执行中(#111,U1–U6、U9、U10、U11 与顺手项已提交;类型检查和 lint 已过) | `codex/ui-kit-onboarding-fix-20261026` |
| `TASK-ui-kit-onboarding-fix-20261026.md` | `PROGRESS-ui-kit-onboarding-fix-20261026.md` | **组件库 K0~K7 与启程(二)~(四)事后验收**:桌面首屏后整页重挂、中英切换看不出选中、提示层每次 DOM 变化全页扫描、启程动效对所有人生效且会藏内容、清单数据只拉一次、拖动排序 N 个请求与部分失败、缺真库重读测试、首屏超 2%、依赖卫生、补回削弱的测试、启程(二)三处未做 | 第 2 轮验收未过,产品 10-27 定由 Claude 修(#111),见下一行 | `codex/ui-kit-onboarding-fix-20261026` |
| `TASK-ui-kit-onboarding-fix-20261026.md`「第 2 轮验收」 | `PROGRESS-ui-kit-fix3-20261027.md` | **#111 第 3 轮(Claude 直接执行)**:建档后整页退回加载(BUG-1455)、右栏拖不动(1456)、把手无键盘(1457)、清单揭幕后才冒出(1458)、月亮档与别人的上升句多读一次星盘(1459);补回删减的断言、登录代码改回、删无用样式;首屏 +7.54% 产品接受 | 待 Claude 独立验收 | `codex/ui-kit-fix3-20261027` |
| —(门禁修复,无新任务书) | `PROGRESS-birth-journey-contract-20261025.md` | **测试分支过不了门禁,网站停在完整数据版(二)**:BUG-1439 出生时间合同;BUG-1440 测试画布;BUG-1441 侧栏流式检查等第一次补画结束再数帧。页面不改 | 已合入 staging,等门禁 | `codex/gate-birth-journey-contract-20261025` |
| `TASK-onboarding-journey-20261022.md` | `PROGRESS-onboarding-1-data-20261022.md`;`PROGRESS-onboarding-2-intake-20261022.md`;`PROGRESS-onboarding-4-motion-20261022.md` | **新用户启程**:建档加「先看谁的盘」(自己 / 帮别人看,本人资料可后补)、人物关系字段、首问免费(服务端原子)、起步三问、启程清单(七项从数据推导,收费项标价,老用户可见)、八条一次性提示(含星盘四页签)、启程流程专用动效。产品 2026-10-22 拍板 D1~D6;动表经产品同意进循环,拆四个 issue 串行。BUG-1420 已被文档去重占用,本轮首问免费记 BUG-1421。(一)T1+T2 在 `codex/onboarding-1-data-20261022`。(二)T3+T4 记 BUG-1431,在 `codex/onboarding-2-intake-20261022`。(四)T7 在 `codex/onboarding-4-motion-20261022` | (一)(二)(三)已在 staging;(四)本分支待验收 | 原型 https://claude.ai/artifact/PcTwMVb9RD611R3qStxv3U |
| `TASK-site-motion-20261022.md` | — | **全站动效**:换页按侧栏方向滑入、选中块跟随、页签、盘型切换星体移宫、换人、翻日期、列表补位、弹窗从触发处长出、抽屉、顶部提示、点数滚动、中英交叉淡入;重写 DESIGN §6(推翻 180 ms 上限与 Spatial Instant),不引动画库,先验证 View Transitions。产品 2026-10-22 拍板;三个 issue,排在启程(三)之后、启程(四)之前;**2026-10-23 被 ui-kit-migration 取代** | 已取代 | 原型 https://claude.ai/artifact/7u9goivnmTNSGTNWNeVMQd |