Skip to content

fix(chat): 按完整底部操作区高度避让会话正文 - #1149

Merged
AlphaCatMeow merged 1 commit into
Stack-Cairn:mainfrom
AlphaCatMeow:fix-chat-bottom-ui-reserve
Nov 3, 2026
Merged

AlphaCatMeow merged 1 commit into
Stack-Cairn:mainfrom
AlphaCatMeow:fix-chat-bottom-ui-reserve

Conversation

@AlphaCatMeow

@AlphaCatMeow AlphaCatMeow commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

等待队列和任务胶囊原先没有计入正文底部预留。队列展开或输入框增高后,滚到底部的最后一段答复会被底部控件覆盖。此次改为测量整个操作区的可见高度,桌面和 WebUI 使用同一结果。

Closes #1146
Depends-On: none
Stack-Root: #1149

改动

  • 队列、目标栏、审批栏、输入框和状态栏随输入区一起测量;绝对定位的任务胶囊及间隔也计入高度。
  • 回到底部按钮直接使用完整预留高度,移除原先独立的浮动偏移,避免重复避让。
  • 共享组件用 ResizeObserver 和按帧合并测量处理高度变化,并在卸载时清理。全屏编辑期间保留常规占位,收起后重测。
  • 清理桌面宿主、正文属性和绑定类型中已删除的浮动偏移;WebUI 两个宿主继续通过各面板的 CSS 变量取得高度。

契约已核对:共享几何模块 → ChatComposerBar → 桌面高度回调及正文 spacer/按钮,或 WebUI 面板 CSS 变量及两个宿主的 spacer/按钮。没有新增 Gateway 协议、K-brain 依赖或发布锁变更。共享实现适用于 Windows、macOS、Linux 桌面及 WebUI;本机实际验证 Windows 和浏览器,未做 macOS/Linux 原生打包验收。

截图 / 预览

image

已保留真实界面的文字和 DOM 几何记录:宽屏常规预留 210 px,1/2/3 条队列为 271/301/331 px,折叠后为 241 px,多行草稿加三条队列为 431 px;390 px 宽度下三条队列与折叠状态分别为 325/235 px。任务胶囊显示时为 254 px,消失后恢复 210 px。

验证

基线为 upstream/main 的 3e0f1869b46499a3a79658310b5bacae20062f7f,从原验收基线安全快进,未覆盖已有用户改动。

  • pnpm --dir crates/agent-gui test:frontend:七批共 3916 项,3915 通过、1 跳过、0 失败。
  • pnpm --dir crates/agent-gateway/web test:两批共 866 项,866 通过、0 失败。此前记录的 334 项只是最后一批,现已更正。
  • 三端 typecheck、两端生产 build、两端全量 linter(关闭 formatter)、六个修改源码文件的 LF 完整 Biome 检查、Mirror Check、git diff --check 均通过。标准 lint 在本机受已有 LF/CRLF 混用影响,未批量改写无关文件。
  • composer-overlay-metrics.test.mjs 覆盖完整占位、队列与胶囊组合、动态增减、隐藏、分数、窄列/分屏偏移和按钮避让。真实模块对照中,上游在两个场景均返回 100 px;修复后分别为预期的 160 px、204 px。
  • 使用上游发布锁中的官方 K-brain v0.107.11 与 computer helper,均已校验 SHA256;前端测试使用 Git Bash,并清空继承的后端认证变量。
  • 当前工作区 start-tauri-dev.bat 启动桌面源码后完成真实交互;WebUI 连接真实 Gateway 50053 和供应商。桌面已覆盖 12 个动态状态,WebUI 覆盖宽窄视口、队列编辑/折叠/清空、多行输入、全屏编辑、流式跟随、历史阅读、回到底部、切换会话、刷新重连、分屏、取消后恢复及工具失败后的胶囊布局。
  • 用户于 2026-11-03T13:08:22Z 确认桌面验收通过,于 14:03:35Z 在获知限制后确认 WebUI 验收通过。

补充预检的首次根目录扫描跑完 8 批,共 4493 项,4488 通过、3 失败、2 跳过。两项依赖包目录的相对路径测试改在桌面包目录复测,13/13 通过。Rust smoke 的 Cargo 路径、运行中 sidecar 占用和 180 秒包装器超时均已定位;随后直接 Cargo 的结果为 1175 项,1157 通过、14 失败、4 忽略,在 Rust 包目录单线程重跑结果相同。失败涉及 Hook 继承 Bash 后执行 PowerShell 文本、Unix 路径断言、Windows MSYS 受限令牌/DLL 初始化及用户原有 Git worktree 测试。本任务没有 Rust 改动,保留已有 git.rs;未在干净 Rust 基线重跑,未将完整 Rust suite 声称为通过。

未覆盖与独立问题

  • 胶囊与队列同时可见的稳定组合只有几何回归覆盖,真实请求未形成可稳定观察的组合;未记为人工通过。
  • 当前 WebUI 宿主没有目标栏和队列暂停入口,无法从该界面验收这些控件。
  • 一次取消后恢复请求超出 45 秒观察窗口,最终完成;未声称请求时延通过。未自然触发供应商错误,工具读取失败的布局已验证。
  • 离线完成的桌面会话在 Gateway 重连后一度被报为 running,随后收敛为空闲。这是另外的终态同步问题,本 PR 保留记录并不修改同步逻辑。
  • 本机已有的 Rust Git 功能改动、其它设计/计划文档及未跟踪文件均未纳入本 PR;本地启动脚本保持未跟踪。

完整验收步骤、实测高度、失败记录和范围说明见 docs/plans/2026-11-03-chat-bottom-reserve.md。

@AlphaCatMeow
AlphaCatMeow marked this pull request as ready for review November 3, 2026 14:41
@AlphaCatMeow
AlphaCatMeow merged commit 274de94 into Stack-Cairn:main Nov 3, 2026
15 checks passed
@AlphaCatMeow
AlphaCatMeow deleted the fix-chat-bottom-ui-reserve branch November 3, 2026 23:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] 会话底部预留未包含等待队列和任务胶囊,遮挡最后一段答复

1 participant