Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
44 lines
2.9 KiB
Markdown
44 lines
2.9 KiB
Markdown
# TASK · 最后一轮回答与点赞 / 踩按钮之间的大段空白(2026-09-26)
|
||
|
||
## 基线
|
||
|
||
- `origin/staging` 当前 head。分支 `codex/latest-turn-actions-gap-20260926`。
|
||
- 只改 `frontend/src/app/globals.css` 与相关合同测试;不碰 `useConversationScrollAnchor` 的逻辑。与其它在途单不交叉。
|
||
|
||
## 事故实证(产品 09-26 真机,iPhone Safari,生时校正会话)
|
||
|
||
助手正文结束后,点赞 / 踩 / 复制 / 重试一排按钮被推到屏幕下部,中间空出大半屏。
|
||
|
||
- `frontend/src/app/globals.css`:
|
||
```css
|
||
/* Last turn fills the remaining viewport so a short reply can still pin its
|
||
head at the top. Variables are written by useConversationScrollAnchor. */
|
||
.conversation .message-list > :last-child .message-assistant {
|
||
min-height: calc(var(--conversation-viewport, 0px) - var(--latest-turn-head-height, 0px));
|
||
}
|
||
```
|
||
- `.message-actions` 是 `.message-assistant` 之后的兄弟节点(`margin: -4px 0 8px 42px`),因此最小高度把它顶到留白之后。普通咨询与生时校正共用同一规则,回答越短空白越大。
|
||
- 该留白来自 BUG-930「新一轮开头钉顶」:必须保留,否则短回答时无法把本轮开头停在视口顶部。
|
||
|
||
## 根因
|
||
|
||
留白加在了"助手消息"上,而不是加在"整轮(消息 + 操作按钮 + 追问建议)"之后。
|
||
|
||
## 决策记录
|
||
|
||
- D1 保留 BUG-930 的钉顶留白,**只改位置**:最小高度改加在最后一轮的外层(包含助手消息、`.message-actions`、`.conversation-follow-ups` 的那个 `:last-child` 容器),使操作按钮紧跟正文,空白落在按钮与追问建议之后。
|
||
- D2 如果外层容器还包含用户行(按实际 DOM 核对),计算式里需扣除的高度保持由 `useConversationScrollAnchor` 写入的 `--latest-turn-head-height` 口径,不改 hook。
|
||
- D3 普通咨询与生时校正两处表现一致。
|
||
|
||
## 硬红线
|
||
|
||
1. 不改 `useConversationScrollAnchor` / `JumpToLatestButton` 行为;BUG-930 / 931 / 932 的钉顶、跳到最新、闲置不写留白全部保持(其测试不得弱化)。
|
||
2. 只用现有 token;首页 `○ Static`、gzip ±2%。
|
||
3. **真实浏览器验证**(本机 Chrome,CDP 假数据):375 与 1280 宽度,普通咨询与生时校正各一条短回答——操作按钮与正文间距为 `.message-actions` 自身间距;新一轮开头仍钉在视口顶部;长回答时「跳到最新」正常。截图写进 PROGRESS。
|
||
4. 全量测试与基线逐条一致、新增 0;改动断言写三栏(写在测试文件里);更新 `frontend/DESIGN.md` 中对应说明。
|
||
|
||
## 任务分解
|
||
|
||
- T1 CSS 调整(D1–D3)+ 合同测试更新(原断言锁的是 `.message-assistant` 选择器,按三栏改为外层容器)。
|
||
- T2 浏览器截图与 PROGRESS;BUG 记录:开工时取下一个空号,关联 BUG-930,写明为何当时的骨架页验证没发现(验证只看了开头钉顶,没看操作按钮位置)。
|