Files
Jyotisha/docs/tasks/PROGRESS-ui-kit-fix3-20261027.md
T
Jesse_ChenandClaude Opus 5.5 8e05e4114b
Independent Staging Quality Gate / validate (push) Successful in 29m5s
Independent Staging Quality Gate / publish (push) Successful in 5m29s
起步问句只在今日星语没带星座时才读盘(BUG-1459 复验补修)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
2026-10-27 10:29:29 +08:00

5.4 KiB
Raw Blame History

进度:组件库修复第 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 轮修复」。

复验补修(Claude 独立复验,2026-10-27)

  • 起步问句读盘原本在「今日星语」还没回来时就发起:有出生分钟的新用户每次进首页都会多读一次盘。改为只在今日星语已经结束、却没带星座(没有出生分钟或请求失败)时才读(StarterQuestions 的 chartSignsFallback,页面传 dailyStarlanguage.kind === "unavailable",不新增状态)。BUG-1459 补记。测试:starter-chart-signs-20261027.test.ts 锁住这道门。