Back to Aionui

对话 - 发送草稿箱(消息排队交互优化)

docs/prds/conversations/send-drafts.md

2.1.339.3 KB
Original Source

对话 - 发送草稿箱(消息排队交互优化)

本文档聚焦「AI 回复期间的消息排队」这一块的交互优化,是对现有排队能力的体验升级。 涉及范围:对话输入区上方的排队面板。不改后端,全部在渲染层完成。


背景与目标

现状:AI 正在回复时,用户仍可继续输入并发送消息,这些消息进入一个「排队面板」等待发出。这个能力已经存在——支持入队、编辑、删除、清空、当前 turn 结束后自动发送,也支持拖拽调整顺序。

问题(来自微信群用户反馈):

  • 每条排队消息只有「删除」是直接可见的,「编辑」被折进「⋯」更多菜单,要点两下才找得到。
  • 没有「立即发送」——排队的消息只能等 AI 回完后被动等待,用户想让某条马上发出去做不到。
  • 排队面板缺少一个「是否自动发送」的总控,用户无法选择「我先攒着、想发再发」。

目标:把排队面板重新定位成一个「发送草稿箱」——AI 忙时你写的消息先存在这里,你能清楚看到、随手操作(立即发送 / 编辑 / 删除 / 调序),并能选择让草稿箱自动依次发出、还是手动由你逐条发。

名词说明

  • 发送草稿箱:面板的新名字。指 AI 回复期间用户已发送、正在等待发出的消息集合。下文沿用旧代码里的「排队 / 队列」时,指的是同一个东西。
  • 草稿:草稿箱里的单条待发消息(含文字与文件)。
  • 自动 / 手动:草稿箱的两种发送模式,见 F-DRAFT-03。

(F-DRAFT-01) 每条草稿的三个常驻操作 [优化]

用户故事:作为用户,我希望每条排队的消息都能一眼看到「立即发送 / 编辑 / 删除」三个操作,随手就能点,不用翻菜单。

正常流程(用户视角):

  1. AI 回复期间,用户发送的消息进入发送草稿箱,逐条列在输入框上方。
  2. 每条草稿右侧常驻三个操作按钮,鼠标不悬停也始终可见:
    • 立即发送:见 F-DRAFT-02。
    • 编辑:把这条草稿的文字与文件放回输入框供修改,该草稿从箱中移除,改完重新发送即重新入箱。
    • 删除:把这条草稿从箱中移除,不再发出。
  3. 三个操作在移动端、窄栏下同样常驻可点(不依赖 hover)。

异常情况

  • 草稿箱为空:面板整体不显示。

验收标准

  • 每条草稿右侧常驻显示「立即发送 / 编辑 / 删除」三个按钮,无需 hover 或展开菜单。
  • 「编辑」不再藏在「⋯」菜单里。
  • 「删除」将该条从草稿箱移除。
  • 「编辑」将该条内容与文件回填输入框并从箱中移除。
  • 三个按钮在移动端 / 窄栏下均可直接点击。

(F-DRAFT-02) 立即发送(打断当前回复插队发出)[新增]

用户故事:作为用户,当我发现某条消息在排队、但我想它马上就走,我希望点一下就让它立刻发出去。

正常流程(用户视角):

  1. 用户点击某条草稿的「立即发送」。
  2. 系统打断 AI 当前正在进行的回复,将该条草稿立即出队并发送。
  3. 用户能理解这打断了当前回复——不额外弹提示条
  4. 草稿箱里剩余的草稿行为完全不变:原本自动就继续自动依次发,原本手动就继续等待用户逐条发。发送模式、内容、顺序都不受这次插队影响。

边界说明

  • 「立即发送」只作用于被点击的这一条。它是一次「让这条插队立刻走」的动作,不是模式切换,不引入「暂停 / 继续」这类额外状态。

异常情况

  • AI 当前没有正在进行的回复(已空闲):直接发送该条,无需打断。

验收标准

  • 点击「立即发送」会中止 AI 当前回复并立刻发出该条草稿。
  • 不出现「已插队 / 队列已暂停」之类的提示条。
  • 剩余草稿的发送模式、内容、顺序均不因这次插队而改变。
  • AI 空闲时点击「立即发送」直接发出,不产生打断副作用。

(F-DRAFT-03) 自动 / 手动发送模式 [新增]

用户故事:作为用户,我希望能选择草稿箱是「AI 回完自动帮我依次发」还是「先攒着、我想发再发」。

正常流程(用户视角):

  1. 草稿箱标题行右侧有一个模式切换按钮,显示当前模式(自动 / 手动),点一下即切到另一模式,无需二次确认。
  2. 自动模式(默认):AI 每结束一轮回复,草稿箱自动把下一条发出去,一条接一条,直到发完,用户无需操作。
  3. 手动模式:草稿只暂存在箱中、不自动发出,由用户逐条点「立即发送」决定何时发。

作用范围(会话级,纯前端):

  • 模式是每个对话各自记录的,A 对话设手动不影响 B 对话。
  • 每个对话启动时都是「自动」
  • 该设置与现有排队内容一样保存在前端会话级存储中:应用运行期间切走再切回该对话,模式与草稿都保留;整个应用关闭重开后重置(草稿与模式都回到初始,与现有排队行为一致)。

异常情况

  • 草稿箱为空:面板不显示,模式设置在后台保留,下次有草稿入箱时按该模式运作。

验收标准

  • 标题行右侧的切换按钮显示当前模式,点击即切换,无二次确认。
  • 自动模式下,AI 每轮结束后自动依次发出草稿。
  • 手动模式下,草稿不自动发出,仅在用户点「立即发送」时发出。
  • 新对话默认自动模式。
  • 模式按对话独立记录,互不影响。
  • 应用关闭重开后模式回到默认(自动)。

(F-DRAFT-04) 草稿箱标题行与说明 [优化]

用户故事:作为用户,我希望一眼看懂这个面板是什么、当前处于什么模式,需要时能查到自动/手动的含义。

正常流程(用户视角):

标题行(草稿箱框内顶部一行)自左到右:

  1. 标题「发送草稿箱」+ 数量徽标(显示当前草稿条数)。
  2. 模式切换按钮(F-DRAFT-03)。
  3. 帮助「?」:hover 显示说明——草稿箱是什么,以及自动 / 手动分别的含义。
  4. 更多「⋯」:见 F-DRAFT-05。

帮助文案(tooltip):

发送草稿箱:AI 回复期间你发的消息会先存到这里。 自动:AI 回复结束后,自动依次发送草稿箱里的消息。 手动:消息只暂存、不自动发,由你逐条点「立即发送」。

验收标准

  • 标题行显示「发送草稿箱」与草稿数量。
  • 「?」hover 出说明,覆盖草稿箱含义与两种模式。

(F-DRAFT-05) 清空草稿箱(防误触)[优化]

用户故事:作为用户,我希望能一次清空整箱草稿,但不要让我轻易误点到。

正常流程(用户视角):

  1. 「清空草稿箱」放在标题行「⋯」更多菜单里,菜单项以危险色(红)呈现。
  2. 点击后再弹一次二次确认,确认后才清空全部草稿。

验收标准

  • 「清空草稿箱」位于「⋯」菜单内,非标题行直接可点。
  • 菜单项以危险色呈现。
  • 点击后需二次确认才执行清空。

(F-DRAFT-06) 拖拽调整顺序 [保留]

用户故事:作为用户,我希望能调整草稿的发送先后顺序。

正常流程(用户视角):

  1. 每条草稿最前有一个拖拽手柄,hover 时显现,按住可上下拖动调整顺序。
  2. 顺序即草稿箱自动/手动发出的先后次序。

验收标准

  • 桌面端 hover 草稿时显现拖拽手柄,可上下拖动排序。
  • 排序结果即后续发送次序。

(F-DRAFT-07) 窄栏 / 移动端适配 [新增]

用户故事:作为在小屏、移动端或团队并排 Agent 视图下使用的用户,我希望草稿箱在窄栏里也摆得下、点得到。

适配策略(约 300px 宽及以下):

  • 标题「发送草稿箱」收成一个图标 + 数量徽标,hover / 长按显示全名,省出宽度。
  • 模式切换按钮始终保留(核心功能),文字压到「自动 / 手动」两字。
  • 「?」帮助并入「⋯」菜单:窄栏头部只保留一个「⋯」,其中包含「使用说明」与「清空草稿箱」。
  • 每条草稿的三个操作按钮不变,消息文字自动截断。
  • 拖拽手柄在窄栏隐藏,改为长按整条拖动。

验收标准

  • 窄栏下标题收成图标 + 徽标,切换按钮保留。
  • 窄栏下「?」并入「⋯」菜单,头部仅一个「⋯」。
  • 窄栏下每条三个操作按钮仍可点击,文字自动截断。
  • 团队并排 Agent 视图下草稿箱布局不溢出、不错位。

待讨论模块

  • 控件形态已定:模式切换采用「单按钮状态切换」(按钮显示当前模式,点击切到另一模式),不采用拨动开关或分段按钮。
  • 是否需要「全局默认模式」:当前为纯会话级、新对话默认自动。若后续收到「每次开新对话都要重设太麻烦」的反馈,再评估增加一个全局默认值(设置项)。此项本期不做。