Skip to content

协作会话人工待办入口 ​

状态:implemented 类型:feature Owner:frontend/src/modules/session/ui/SessionWorkspace.vue

问题 ​

用户停留在主会话时,子会话的回答和审批卡片只在对应会话显示,无法及时发现需要处理的请求。

决策 ​

实现方案 ​

SessionWorkspace 在输入框上方显示其他协作成员的人工待办,cooperationAttention 根据当前 Turn 的 waiting 状态及 approval / answer 原因投影待审批和待回答。CooperationAttention 单项直接导航,多项在胶囊原位展开为圆角卡片,摘要按钮与待办列表共享同一容器,不使用弹出浮层;状态查询失败保留最近已知待办,显示失败与重试入口。

待办胶囊使用中性背景、边框和文字,warning 色只用于提示图标与列表状态文字。问题标题使用 400 字重,题型标签使用次要文字,保持长时间阅读的轻量层级。

卡片复用 CollapseTransition 展开列表,圆角和折叠图标同步过渡;减少动态效果偏好下关闭过渡。列表高度受当前视口约束,超长待办在卡片内部滚动;待办减少至单项或清空时收起列表。

导航复用侧栏标签并登记当前人工等待轮次的一次性聚焦意图。历史与等待点恢复后,真实人工卡片可见才聚焦;视图失活、轮次变化或恢复执行时撤销意图。多项列表展开完成后聚焦首项,再次点击摘要按钮或按 Escape 收起,Escape 返回摘要按钮。AgentPanel 从同一协作摘要展示成员标签徽标。

useSessionCooperation 继续读取持久协作摘要。查看、关闭标签不消费等待点;恢复或终态刷新后移除提示。回答与审批仍由对应成员的 Thread/Run/waitpoint 处理。

替代方案 ​

只使用 Tool Call 状态容易因折叠或滚动遗漏;只使用状态面板需要用户主动查看。直接在主会话处理子审批增加上下文与提交归属的认知负担。

弹出浮层会遮挡会话正文,并将摘要入口与待办列表分成两个定位区域。原位展开让摘要、选择与收起动作位于同一卡片,复用输入区的自然布局。

后果 ​

协作摘要使用现有三秒轮询,提示移除有短暂延迟。进入成员后重新读取等待点,提交归属与权限由现有后端执行。范围包含前端提醒、导航及 owning 文档,审批协议、主会话输入语义和 Tool Call 参数继续由原实现拥有。

展开卡片占据输入框上方的真实布局高度,沿用输入区的自然布局,无需额外浮层定位或测量机制。

验证 ​

验收主张失败面语义 Owner直接证据 / 命令负向案例当前结果
主会话持续展示其他成员的待回答和待审批把协作等待或旧等待原因当成人工待办cooperationAttention、CooperationAttentionnode --test test/unit/cooperationAttention.test.js、浏览器 DOMcompleted/cancelled/running 携带旧等待原因不显示Passed
点击复用标签并定位对应人工卡片开错会话或慢恢复时遗漏卡片SessionWorkspace、AgentPanel待办 unit、浏览器点击与 DOM700ms 延迟历史恢复仍聚焦,失活或恢复执行撤销意图,关闭后请求仍可打开Passed
多项请求在同一卡片展开,失败与窄屏可处理列表脱离摘要容器、展开尺寸溢出、查询失败清空待办CooperationAttention浏览器 Enter/Tab/Escape、浅深色和 1440/1024/768px 验证原位展开与收起、长列表滚动、减少动态效果、503 保留待办并可重试,终态移除提示和徽标Passed

浏览器证据由 frontend/test/browser/cooperationAttention.js 使用确定性 HTTP fixture 驱动实际 /agent 页面并读取 DOM、焦点和恢复请求归属,实际主题 Store 切换验证卡片明暗主题。该证据证明前端装配与交互,不替代真实 PostgreSQL、worker 或模型链路验证。

验证命令包括 docker compose exec -T frontend pnpm run lint:check、docker compose exec -T frontend pnpm run test:unit(1012 项通过)、docker compose exec -T frontend pnpm run build、pnpm --dir docs run build、工程契约检查及其 56 项单测,均通过。浏览器命令为 playwright-cli -s=<session> --raw run-code --filename=frontend/test/browser/cooperationAttention.js。本交互调整没有修改后端,未重跑后端 unit、真实 PostgreSQL、worker 与模型协作链路。

本项目基于 MIT License 开源,欢迎使用和贡献。