提问卡片(ask_user_question)仍然挤占/遮挡对话面板
关联:#285(已关闭的"挡字"问题)
背景
#285 关闭时上游的修复是把卡片限制为 max-h-[88svh]、正文内部滚动。但在实践中,卡片悬浮在输入框上方时仍然会挤压消息列表的可见区域,长对话时用户看不到自己正在回复的消息流;卡片本身也没有任何办法收起或移开,只能等 Agent 提交/跳过。
本 fork 的改进方案(已实现,见对应 PR)
在 AskQuestionCard 上增加了两个互不影响的布局控制,把"面板所有权"交还给用户:
- 折叠 (Collapse) — 一键把实时卡片收缩成仅标题行(带展开箭头),问题保持 pending 可见,Agent 阻塞在回答上时用户不会被蒙在鼓里;
- 浮窗 (Float / Picture-in-Picture) — 用
createPortal 把卡片从消息流中取出,变成视口固定、可拖拽的迷你窗口,拖拽全程 clamp 在视口内(8px 安全边距);再点一次"停回面板"恢复原位。
其他细节:
- 折叠/浮窗状态在同一个实例被换题时保留(用户选择的布局不因新题目渲染而重置);
- 只读/已作答视图(消息流里的记录卡片)不显示这两个控件;
- 13 个语言文件同步新增
collapse / expand / float / dock 文案;
- 30 个单测覆盖折叠、浮窗、拖拽 clamp、换题状态保留等行为,全部通过。
期望
- 若方案被采纳:折叠/浮窗成为提问卡的通用交互,替代"整个卡片固定在输入框上方"的现状;
- 若作者有不同设计取向(比如只做折叠、或改挂到侧边栏),也欢迎以本 PR 为讨论起点。
截图/演示视频可按需补充。
提问卡片(ask_user_question)仍然挤占/遮挡对话面板
关联:#285(已关闭的"挡字"问题)
背景
#285 关闭时上游的修复是把卡片限制为
max-h-[88svh]、正文内部滚动。但在实践中,卡片悬浮在输入框上方时仍然会挤压消息列表的可见区域,长对话时用户看不到自己正在回复的消息流;卡片本身也没有任何办法收起或移开,只能等 Agent 提交/跳过。本 fork 的改进方案(已实现,见对应 PR)
在
AskQuestionCard上增加了两个互不影响的布局控制,把"面板所有权"交还给用户:createPortal把卡片从消息流中取出,变成视口固定、可拖拽的迷你窗口,拖拽全程 clamp 在视口内(8px 安全边距);再点一次"停回面板"恢复原位。其他细节:
collapse / expand / float / dock文案;期望
截图/演示视频可按需补充。