fix(frontend): refine settings dialog layout
Independent Staging Quality Gate / validate (push) Failing after 8m47s
Independent Staging Quality Gate / publish (push) Skipped

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
jesse-ux
2026-09-19 11:32:27 +08:00
co-authored by Claude Code
parent c2ecbc74cd
commit eb8f5147f4
12 changed files with 135 additions and 48 deletions
+16
View File
@@ -12781,3 +12781,19 @@
- 关联记录:BUG-525(题干经 asked_turn_id 挂上)、BUG-930(回答钉顶:只见最后一轮是设计)、BUG-965
- 复发自:待确认
- 修复版本:`824ecff0`
## BUG-970 | 设置弹窗内容区留白过大、导航入口语义像页面跳转
- 状态:investigating
- 首次发现:2026-09-19
- 最近更新:2026-09-19
- 影响面:设置弹窗的桌面布局、个人资料头像区、星盘资料列表入口。
- 用户现象:设置弹窗左侧导航过窄,右侧内容贴边且留下较大空白;分区按钮尾部箭头暗示会进入下一页;个人资料头像锚点偏小;星盘资料的添加入口位于列表末尾,资料较多时不稳定。
- 触发条件:登录后打开设置弹窗,在桌面宽度切换四个设置分区,查看个人资料或星盘资料列表。
- 根因:旧布局使用 176px 导航、三列导航按钮(为同弹窗内切换保留无实际用途的箭头列)、内容区没有明确内边距,表单子内容上限为 440px;头像编辑仍以 48px 预览布局;添加入口与列表内容耦合在列表底部。
- 修复:导航调整为 200px 并增加 hairline 边界,移除误导性尾部箭头;内容区增加 32px 桌面内边距,表单阅读上限调整为 560px;个人资料头像预览调整为 56px;“添加其他人”移动到“其他人”分组标题操作区。保留四分区共享 `.settings-modal``vh` + `@supports (height: 1dvh)` 回退契约。
- 验证:`./node_modules/.bin/tsc --noEmit` 安装依赖后退出码 0`npm run lint` 退出码 00 errors、120 warnings);设置相关定向测试 21/21 通过。广泛测试筛选命令为 3481 tests / 3402 pass / 79 fail,失败集中在重复迁移、Windows 路径、Docker/数据库和技能 symlink 等环境或基线问题,不能作为本轮 UI 回归归因。`npm run build` 已完成编译和 TypeScript,但在收集 `/api/daily-starlanguage` 页面数据时因 Windows 禁止创建 Skill runtime symlink`EPERM`)失败,因此尚未确认 `/` Static 或首屏 gzip;登录态浏览器走查仍待受控环境。
- 防复发:设置导航继续使用 icon + label 的两列结构且不添加页面跳转箭头;右侧滚动容器负责内边距,表单 cap 只作用于其子内容;列表视图默认不渲染表单,添加入口固定在“其他人”标题操作区;`frontend/DESIGN.md` 与合同测试同步锁定这些关系。
- 相关记录:BUG-554、BUG-698
- 复发自:无
- 修复版本:待发布
@@ -0,0 +1,43 @@
# 设置面板 UI 改造进度
- 日期:2026-09-19
- 基线:`origin/staging` / `4f4cd684`
- 分支:`codex/settings-ui-20260919`
- 范围:设置弹窗布局、个人资料、星盘资料列表入口;不修改账户 API、星盘 API、数据库或工作流。
## 已完成
- 设置弹窗保留四个分区共用 `.settings-modal`,桌面左侧导航从 176px 调整为 200px,并增加导航与内容之间的 hairline 分隔。
- 设置导航移除误导性的尾部右箭头,保留图标 + 分区名称;标题增加“设置”眉标题并保留当前分区标题。
- 右侧内容区增加桌面 32px 内边距,表单阅读宽度上限从 440px 调整为 560px;移动端使用 16px 内容内边距。
- 保留 `vh` 基线与 `@supports (height: 1dvh)` 升级,不回退到会被压缩器吃掉的重复声明写法。
- 个人资料头像文案改为“账户头像”,Beam 说明收紧,预览从 48px 改为 56px;同步桌面与移动端 CSS。
- “添加其他人”移动到“其他人”分组标题右侧,列表继续默认不展开表单。
- 更新 `frontend/DESIGN.md`、设置布局合同测试、资料面板测试和星盘资料合同测试。
## 断言变更记录
| 文件 | 原值 | 新值 | 原因 |
| --- | --- | --- | --- |
| `frontend/tests/profile-panel.test.ts` | `size={48}` | `size={56}` | 头像预览需要更清晰的视觉锚点,并与账户身份区留出稳定间距。 |
| `frontend/tests/account-dialog-overlay.test.ts` | 表单 cap 420460px | `max-width: 560px` | 内容区已有明确内边距,资料表单需要舒适阅读宽度,避免右侧留下过大的空白。 |
## 测试结果
已执行结果:
- `npm run lint`:退出码 0120 warnings、0 errors;警告与本轮改动无关,未顺手修改。
- `./node_modules/.bin/tsc --noEmit`:安装当前 worktree 依赖后无输出并以退出码 0 结束。
- 设置相关定向测试:21 tests / 21 pass / 0 fail,覆盖设置导航、固定外框、两列导航、内容内边距、560px 表单 cap、头像 56px、星盘资料列表入口与详情动作。
- 全量 `npm test -- --test-name-pattern=...`:退出码 13481 tests / 3402 pass / 79 fail;失败集中包含重复迁移文件、Windows 路径拼接、Docker/数据库和技能 symlink 权限等环境或基线问题,不能宣称全量通过,需与基线逐条比对。
- `npm run build`:编译与 TypeScript 阶段通过,但在收集 `/api/daily-starlanguage` 页面数据时因 Windows 禁止创建 Skill runtime symlink 失败;这是环境权限缺口,不是本轮设置 UI 编译错误。构建未形成可用于确认 `/` Static 或首屏 gzip 的完整产物。
## 浏览器验收环境缺口
尚未进行登录态下的浏览器截图级走查。需要受控账号、Chrome/真实设备和真实设置内容,按 `docs/testing/settings-dialog-20260916.md` 复核四分区切换、深色主题、移动端四栏、个人资料头像和星盘资料列表。没有受控登录态或 Chrome 时,不把该项写成通过。
## 未完成事项
- 浏览器/真实设备验收仍待具备受控登录态与 Chrome 的环境执行;BUG-970 继续保持 `investigating`
- 构建因 Windows Skill runtime symlink 权限缺口未完成页面数据收集,需在允许 symlink 的环境复跑,才能确认 `/` Static 与首屏 gzip。
- 完整测试的 79 个失败需在可用环境与基线逐条比对;本记录不把它们归因于本轮 UI 改动。
+1
View File
@@ -283,6 +283,7 @@
| `TASK-sidebar-unify-20260916.md` | `PROGRESS-sidebar-unify-20260916.md` | **侧栏统一成一个组件 + 次级页共享外壳 + 跳转不整页刷新(纯前端)**:`/` 用 `AppSidebar`、四个次级页用另写的 `AppNavRail`,两套标记结构共用一份 CSS,会话行少 `.session-main` 一层(无内边距 / 44px 高 / 当前项标记、留 44px 空列)、页脚 56px 菜单 vs 44px 文字;首页进次级页是 `window.location.assign` 整页刷新,次级页各自在组件里挂 `SecondaryShell`、无共享 layout 无缓存,每次跳转重拉 `/api/sessions` + `/api/account`;折叠状态不持久。产品拍板 D1 只留一个 `AppSidebar`(操作回调可选 = 只读模式,D9「不带写操作」维持)、D2 路由组 `app/(secondary)/` layout 承载外壳、D3 改 `<Link>`、D4 模块级 60 s 缓存 + 首页写操作失效、D5 折叠状态存 cookie、D6 回首页慢的启动链另开一单。实测:接口 TTFB 0.630.90 s,回 `/` 启动链串行 ≥4 次往返 + 揭幕闸门 4 s。BUG-744746 | 已验收(2026-09-16Opus 子代理实现 `22edabbc`,门禁全绿、失败清单与基线逐条相同;折叠状态取 localStorage 触发让步 1;真机清单待走) | `codex/sidebar-unify-20260916` |
| `TASK-rectification-precision-gate-guided-collect-fix-20260916.md` | `PROGRESS-rectification-precision-gate-guided-collect-fix-20260916.md` | **验收修复单**F1 `decision_receipt` 新增 `guided_collect_windows` 让 `test_rectification_engine_memoization` golden 红(在 CORE_PYTEST_TARGETSstaging 未部署 cfb41daf);F2 16 条既有校正断言红未按三栏改;F3 `mayDeliverOnPrecision` 缺省即放行、短路 BUG-654 且 `guidedCollectExhausted` 不含 refresh;F4 无领域轨道窗口轮询贴领域、一窗只问一领域;F5 离线回放注入 month_lo 非真值方向、0/20 不作数;F6 录入卡合成「或」列表句走模型轮;F7 page.tsx +1、手造 fixture。D6 产品已拍板:门槛只是必要条件,仍问完线再出。BUG 段 744 起 | **已验收通过,已合入 staging**;合入后 run `2697` 仍红 capability audit`(secondary)/chart`),跟进 BUG-753 | `dc732825`Opus 子代理实现,Claude 独立验收):tsc 0 / lint 0 error / npm test 3405 条 31 红与基线 a396bbe0 逐条一致(16 条校正红转绿、0 新红)/ pytest 193 通过 / `○ /` Static / gzip 582,552 → 582,800+0.04%/ page.tsx 1836 → 1835 / golden diff 仅加 `guided_collect_windows` 一键 / Skill 10.0.28。F5 真值方向回放三档仍 0 例靠引导件达标,作研究结论记录。D2+D6 合并后 10 分钟门槛只上报不改出卡时机 |
| — (产品口头拍板,无任务书) | `PROGRESS-agent-voice-20260917.md` | **对话口气改形状(纯提示词与文案,无 BUG 号)**:产品判定现有人设出来的是顾问报告。人设改成「把人当一个人认真对待 / 行动力很强、嘴有点毒但靠谱的同事」;开场从「一句结论 + 2–3 条短要点 + 一句下一步」换成固定形状——**反差**(表面 A 底下 B,命名成一个格局)→ **谁在推谁在修**(大运主星推、行运修体面)→ **别去应 X 的象,去扮演 Y 的象** → **最多三条短行动**(各 ≤ 20 字),仍无标题、≤ 400 字。新增希望纪律:有转机且允许精确应期就说到月份,没有就说这段时间拿来干什么、能扮演哪个象,禁「一切都会好 / 相信自己 / 加油 / 你值得更好的 / 宇宙自有安排」。申报时段与无出生分钟两条降级路线形状照给、不编月份。改 `product-voice.ts` / `consult/route.ts` 用户回合文案 / 三处复述旧形状的系统指令 / `VOICE.md`(五条原则→七条)/ `CHANGELOG.md`。零业务逻辑改动,Skill 版本不变 | 已实现,待验收 | `codex/agent-voice-20260917`tsc 0 / lint 0 error118 warning 不变)/ npm test 3468→3471 条、36 红与基线 `ff0427cf` 逐条相同、0 新红 / `○ /` Static / 首屏 gzip 1,416,965 两侧**字节相同**(改动全在服务端模块,客户端 chunk 无该文本)。真机口气走查欠 |
| — (产品口头拍板,无任务书) | `PROGRESS-settings-ui-20260919.md` | **设置面板布局与资料入口整理**:基线 `4f4cd684`;四分区继续共用固定 `.settings-modal`,桌面导航 176px→200px 并加分隔,内容区增加内边距,表单 cap 440px→560px,导航移除误导性右箭头;账户头像 48px→56px;“添加其他人”移到分组标题操作区。已同步 `frontend/DESIGN.md` 与合同测试;tsc 0、lint 0 error、定向测试 21/21build 被 Windows Skill runtime symlink 权限阻塞,浏览器走查待受控环境;BUG-970 保持 `investigating` | 待验收 | `codex/settings-ui-20260919` |
## 命名与归档