9.3 KiB
对话 - 发送草稿箱(消息排队交互优化)
本文档聚焦「AI 回复期间的消息排队」这一块的交互优化,是对现有排队能力的体验升级。 涉及范围:对话输入区上方的排队面板。不改后端,全部在渲染层完成。
背景与目标
现状:AI 正在回复时,用户仍可继续输入并发送消息,这些消息进入一个「排队面板」等待发出。这个能力已经存在——支持入队、编辑、删除、清空、当前 turn 结束后自动发送,也支持拖拽调整顺序。
问题(来自微信群用户反馈):
- 每条排队消息只有「删除」是直接可见的,「编辑」被折进「⋯」更多菜单,要点两下才找得到。
- 没有「立即发送」——排队的消息只能等 AI 回完后被动等待,用户想让某条马上发出去做不到。
- 排队面板缺少一个「是否自动发送」的总控,用户无法选择「我先攒着、想发再发」。
目标:把排队面板重新定位成一个「发送草稿箱」——AI 忙时你写的消息先存在这里,你能清楚看到、随手操作(立即发送 / 编辑 / 删除 / 调序),并能选择让草稿箱自动依次发出、还是手动由你逐条发。
名词说明:
- 发送草稿箱:面板的新名字。指 AI 回复期间用户已发送、正在等待发出的消息集合。下文沿用旧代码里的「排队 / 队列」时,指的是同一个东西。
- 草稿:草稿箱里的单条待发消息(含文字与文件)。
- 自动 / 手动:草稿箱的两种发送模式,见 F-DRAFT-03。
(F-DRAFT-01) 每条草稿的三个常驻操作 [优化]
用户故事:作为用户,我希望每条排队的消息都能一眼看到「立即发送 / 编辑 / 删除」三个操作,随手就能点,不用翻菜单。
正常流程(用户视角):
- AI 回复期间,用户发送的消息进入发送草稿箱,逐条列在输入框上方。
- 每条草稿右侧常驻三个操作按钮,鼠标不悬停也始终可见:
- 立即发送:见 F-DRAFT-02。
- 编辑:把这条草稿的文字与文件放回输入框供修改,该草稿从箱中移除,改完重新发送即重新入箱。
- 删除:把这条草稿从箱中移除,不再发出。
- 三个操作在移动端、窄栏下同样常驻可点(不依赖 hover)。
异常情况:
- 草稿箱为空:面板整体不显示。
验收标准:
- 每条草稿右侧常驻显示「立即发送 / 编辑 / 删除」三个按钮,无需 hover 或展开菜单。
- 「编辑」不再藏在「⋯」菜单里。
- 「删除」将该条从草稿箱移除。
- 「编辑」将该条内容与文件回填输入框并从箱中移除。
- 三个按钮在移动端 / 窄栏下均可直接点击。
(F-DRAFT-02) 立即发送(打断当前回复插队发出)[新增]
用户故事:作为用户,当我发现某条消息在排队、但我想它马上就走,我希望点一下就让它立刻发出去。
正常流程(用户视角):
- 用户点击某条草稿的「立即发送」。
- 系统打断 AI 当前正在进行的回复,将该条草稿立即出队并发送。
- 用户能理解这打断了当前回复——不额外弹提示条。
- 草稿箱里剩余的草稿行为完全不变:原本自动就继续自动依次发,原本手动就继续等待用户逐条发。发送模式、内容、顺序都不受这次插队影响。
边界说明:
- 「立即发送」只作用于被点击的这一条。它是一次「让这条插队立刻走」的动作,不是模式切换,不引入「暂停 / 继续」这类额外状态。
异常情况:
- AI 当前没有正在进行的回复(已空闲):直接发送该条,无需打断。
验收标准:
- 点击「立即发送」会中止 AI 当前回复并立刻发出该条草稿。
- 不出现「已插队 / 队列已暂停」之类的提示条。
- 剩余草稿的发送模式、内容、顺序均不因这次插队而改变。
- AI 空闲时点击「立即发送」直接发出,不产生打断副作用。
(F-DRAFT-03) 自动 / 手动发送模式 [新增]
用户故事:作为用户,我希望能选择草稿箱是「AI 回完自动帮我依次发」还是「先攒着、我想发再发」。
正常流程(用户视角):
- 草稿箱标题行右侧有一个模式切换按钮,显示当前模式(自动 / 手动),点一下即切到另一模式,无需二次确认。
- 自动模式(默认):AI 每结束一轮回复,草稿箱自动把下一条发出去,一条接一条,直到发完,用户无需操作。
- 手动模式:草稿只暂存在箱中、不自动发出,由用户逐条点「立即发送」决定何时发。
作用范围(会话级,纯前端):
- 模式是每个对话各自记录的,A 对话设手动不影响 B 对话。
- 每个对话启动时都是「自动」。
- 该设置与现有排队内容一样保存在前端会话级存储中:应用运行期间切走再切回该对话,模式与草稿都保留;整个应用关闭重开后重置(草稿与模式都回到初始,与现有排队行为一致)。
异常情况:
- 草稿箱为空:面板不显示,模式设置在后台保留,下次有草稿入箱时按该模式运作。
验收标准:
- 标题行右侧的切换按钮显示当前模式,点击即切换,无二次确认。
- 自动模式下,AI 每轮结束后自动依次发出草稿。
- 手动模式下,草稿不自动发出,仅在用户点「立即发送」时发出。
- 新对话默认自动模式。
- 模式按对话独立记录,互不影响。
- 应用关闭重开后模式回到默认(自动)。
(F-DRAFT-04) 草稿箱标题行与说明 [优化]
用户故事:作为用户,我希望一眼看懂这个面板是什么、当前处于什么模式,需要时能查到自动/手动的含义。
正常流程(用户视角):
标题行(草稿箱框内顶部一行)自左到右:
- 标题「发送草稿箱」+ 数量徽标(显示当前草稿条数)。
- 模式切换按钮(F-DRAFT-03)。
- 帮助「?」:hover 显示说明——草稿箱是什么,以及自动 / 手动分别的含义。
- 更多「⋯」:见 F-DRAFT-05。
帮助文案(tooltip):
发送草稿箱:AI 回复期间你发的消息会先存到这里。 自动:AI 回复结束后,自动依次发送草稿箱里的消息。 手动:消息只暂存、不自动发,由你逐条点「立即发送」。
验收标准:
- 标题行显示「发送草稿箱」与草稿数量。
- 「?」hover 出说明,覆盖草稿箱含义与两种模式。
(F-DRAFT-05) 清空草稿箱(防误触)[优化]
用户故事:作为用户,我希望能一次清空整箱草稿,但不要让我轻易误点到。
正常流程(用户视角):
- 「清空草稿箱」放在标题行「⋯」更多菜单里,菜单项以危险色(红)呈现。
- 点击后再弹一次二次确认,确认后才清空全部草稿。
验收标准:
- 「清空草稿箱」位于「⋯」菜单内,非标题行直接可点。
- 菜单项以危险色呈现。
- 点击后需二次确认才执行清空。
(F-DRAFT-06) 拖拽调整顺序 [保留]
用户故事:作为用户,我希望能调整草稿的发送先后顺序。
正常流程(用户视角):
- 每条草稿最前有一个拖拽手柄,hover 时显现,按住可上下拖动调整顺序。
- 顺序即草稿箱自动/手动发出的先后次序。
验收标准:
- 桌面端 hover 草稿时显现拖拽手柄,可上下拖动排序。
- 排序结果即后续发送次序。
(F-DRAFT-07) 窄栏 / 移动端适配 [新增]
用户故事:作为在小屏、移动端或团队并排 Agent 视图下使用的用户,我希望草稿箱在窄栏里也摆得下、点得到。
适配策略(约 300px 宽及以下):
- 标题「发送草稿箱」收成一个图标 + 数量徽标,hover / 长按显示全名,省出宽度。
- 模式切换按钮始终保留(核心功能),文字压到「自动 / 手动」两字。
- 「?」帮助并入「⋯」菜单:窄栏头部只保留一个「⋯」,其中包含「使用说明」与「清空草稿箱」。
- 每条草稿的三个操作按钮不变,消息文字自动截断。
- 拖拽手柄在窄栏隐藏,改为长按整条拖动。
验收标准:
- 窄栏下标题收成图标 + 徽标,切换按钮保留。
- 窄栏下「?」并入「⋯」菜单,头部仅一个「⋯」。
- 窄栏下每条三个操作按钮仍可点击,文字自动截断。
- 团队并排 Agent 视图下草稿箱布局不溢出、不错位。
待讨论模块
- 控件形态已定:模式切换采用「单按钮状态切换」(按钮显示当前模式,点击切到另一模式),不采用拨动开关或分段按钮。
- 是否需要「全局默认模式」:当前为纯会话级、新对话默认自动。若后续收到「每次开新对话都要重设太麻烦」的反馈,再评估增加一个全局默认值(设置项)。此项本期不做。