Files
goodbuddy/docs/features/task-and-job/task-center-prd.md
T
mesalogo daa14d0b7e fix: keep project tasks compact with visible running counts
Collapse the project task list by default while retaining create and filter actions. Move the project name into the conversation statistics card and keep the running task count visible independently of list filters.

Validation: 60 sidebar tests, typecheck, and lint passed. The earlier full test run encountered an offline dependency package failure and timed out.

Release note: 项目任务默认收起,标题旁显示运行中任务数量;项目名称整合到当前会话统计卡片中。
2026-09-18 15:48:26 +08:00

9.3 KiB
Raw Blame History

Task Center PRD

文档信息

项目 内容
状态 Scheduled Task 与项目范围跟随已实现;Goal/Event Task 与完整操作待实施
版本 0.5
日期 2026-09-17
依赖 Task 与 Job 统一领域模型
界面归属 通用助手工作栏与执行空间

1. 产品定义

Task Center 是工作栏中的单实例 Task 索引,范围固定为当前项目。顶部显示当前会话统计, 下方管理本项目全部会话的任务。点击条目打开其关联 Conversation,并定位或展开对应 Task。

每个 Task 只关联一条 Conversation;一条 Conversation 可以关联零个、一个或多个 Task。 Conversation 不因为关联 Task 而改变对象类型。

应用内只有一个 Task Center Tab,不提供全局或所有项目入口,也不为每个项目创建独立实例。

2. 收录边界

收录:

  • 用户明确创建或确认的 Task。
  • Scheduled Task、Event Task 和 Goal Task。
  • 未来由用户确认创建的其他顶层 Task。

不收录:

  • 没有显式 Task 关联的普通 Conversation。
  • 普通模型请求或工具调用产生的内部执行记录。
  • Job、Subjob、Run、工具步骤或 Subagent。
  • Smart Heartbeat 配置、报告和建议。
  • 仅用于审计的活动记录。

当前产品 UI 的对象层级止于 Task。Task Center、左侧会话列表和 Conversation 任务区都不显示 Job/Subjob/Run 树、独立详情或路由。

3. 列表信息

每条 Task 至少显示:

  • 名称和所属项目。
  • 关联 Conversation 标题。
  • Task 类型和触发来源。
  • Ask / Execute 模式。
  • 当前聚合状态。
  • 最近一次面向用户的进展。
  • 最近活动时间。
  • 等待审批、失败或需要关注状态。
  • 下次计划时间(如适用)。
  • 累计执行时间:汇总该任务历次执行请求的有效区间,不使用父 Task 从创建到结束的生命周期。

Task 行只显示聚合后的用户状态,不要求用户理解内部 Job/Run。

4. 范围

FR-TC1:当前项目是唯一范围,列表只显示 projectId 匹配的 Task。切换项目刷新列表; 同一项目内切换会话只更新顶部统计,不按当前会话筛掉项目任务。没有活动项目时提示选择项目。 历史范围偏好不恢复全局或所有项目视图;范围收窄不删除历史任务或修改其项目绑定。

4.1 当前会话统计

FR-TC2:顶部紧凑展示当前会话消息总数与 Agent 累计回复时间。累计时间按每轮请求的有效 执行区间相加,包含轮内工具执行和审批等待,不计轮间空闲;不重复累加子专家用时。 缺失历史或时间证据不完整时提示“部分历史用时不可用”,已知用时不能表示为完整总量。 远程执行缺少可靠时间证据时显示不可用或不完整,不用事件接收时间虚构远程用时。 没有当前会话时提示选择会话,项目任务列表仍保留。 项目名称放在当前会话统计卡片内部的顶部。

FR-TC3:任务累计执行时间按其历次执行请求汇总,周期触发仍显示在同一任务内。 未执行与缺失执行证据必须区分;具体关联和统计边界见技术设计。

5. 交互

  • 点击条目打开关联 Conversation,并定位到该 Task。
  • FR-TC4:项目任务标题右侧依次放置“+”新建按钮和筛选图标。状态筛选默认收起、默认全部, 项目任务列表默认收起,标题与数量、新建及筛选入口保持可见;点击标题切换展开状态,点击筛选同时展开列表。 标题旁同时显示当前项目顶层任务中处于 running 状态的数量(如“2 运行中”),不受筛选或收起影响;为零时省略。 展开后提供全部、进行中、暂停、已结束;收起不清除已选条件,非全部时图标高亮并显示筛选条件。
  • 进行中包含 idle、queued、running、waiting_approval、failed 和 interrupted; 暂停对应 paused,已结束包含 completed 和 cancelled。分类只影响列表筛选, 不改变任务状态语义;任务行保留具体状态、错误信息和原有操作。
  • 关联当前范围内顶层任务的审批直接显示在任务卡内,可拒绝或仅此次允许;有待审批的任务 归入“进行中”,审批随任务卡参与状态筛选,不再重复显示独立审批分类或区域。
  • 普通会话或无法关联到当前范围内任务的审批保留独立处理区域,不受任务状态筛选影响; 该区域仅在存在此类审批时显示。没有审批时不显示审批标题、空提示或徽标。
  • 审批徽标统计当前项目范围内全部待审批请求,不受状态筛选影响。
  • 支持立即运行、暂停、恢复、取消、编辑和删除。
  • 后台变化更新状态和徽标,不自动抢占当前页面。
  • FR-TC5:创建默认立即执行并关联当前会话,也可选择本项目其他可用会话或新建会话, 改用单次定时、每日或每周计划。内容必填,名称可留空并从内容生成,详见创建规则。
  • 立即运行、重试和恢复在 UI 上都是 Task 操作,内部 Job/Run 不单独显示。
  • 完整消息留在 Conversation;工具、审批和错误可以在活动或 Runtime 中按 Task 查看; 独立交付物在成果中查看。

6. 左侧 Conversation Task 列表

左侧最近会话列表承担轻量 Task 发现,不替代 Task Center:

▾ 产品发布讨论                           10:24

   每周进度总结       每周 · Execute · 等待中 ●
   发布前检查                     单次 · Execute ✓
  • 无 Task 的 Conversation 保持现有单行样式。
  • 有 Task 时在行最左侧显示独立展开按钮;父会话行不重复显示任务标签或数量。
  • 更新时间默认靠近行右侧,更多操作按钮不常驻占位;悬停会话行时,按钮替换右侧时间显示。 键盘焦点进入会话行或操作菜单展开时,按钮仍保持可见。会话标题溢出时保持右侧区域固定, 并在自身裁切区域内横向滑动展示完整名称。未溢出标题不滑动,减少动态效果偏好下使用完整 标题提示而不产生位移。
  • 展开后每个 Task 子项左侧显示名称,右侧显示本地化的模式、计划和状态标记,与父会话 更新时间对齐;已完成使用带勾成功点并将文案保留给辅助技术。列表不显示 Job、Subjob、 Run 或工具步骤。
  • 点击 Conversation 标题打开聊天;点击 Task 打开同一 Conversation 并定位该 Task。
  • 新建 Task 后首次自动展开;用户手动折叠后保持选择。
  • 后台状态变化不强制展开;Task 状态持续显示在展开后的子项和 Task Center 中。
  • 默认最多显示 3 个 Task;“查看全部 N 个任务”打开该 Conversation 的完整任务区。

7. Conversation 任务区

包含 Task 的 Conversation 顶部显示可折叠任务区:

本会话有 2 个任务
[每周进度总结] [发布前检查]                         [管理任务]

选择 Task 后显示名称、模式、聚合状态、计划、下次执行、最近结果和 Task 级操作。工具、审批、 错误和成果通过 Task 关联显示,但不暴露 Job/Run 层级。

模式来源遵循Scheduled Task 的执行时配置: 未运行计划跟随会话当前有效模式,已执行 Task 保留实际模式;计划旧值不得覆盖展示。

8. 删除关系

  • 删除 Schedule 只停止后续触发,不删除 Task、Conversation 或历史。
  • 删除 Task 停止其计划并移除关联,默认保留 Conversation 和既有消息。
  • 删除最后一个 Task 后,左侧 Conversation 的展开按钮消失。
  • 删除 Conversation 前必须显示关联 Task 数量,并先停止或结算活动执行。

9. 验收标准

  • Task Center 只展示产品级 Task。
  • 一条 Conversation 可以关联并展开多个 Task。
  • 点击 Task 打开正确 Conversation 并定位到对应 Task。
  • 左侧会话列表通过独立展开按钮显示带任务图标和本地化摘要的 Task 子项。
  • 当前 UI 不显示 Job/Subjob/Run 树或独立页面。
  • Scheduled Task 显示下次时间,但每次触发不新增 Task 条目。
  • 普通模型请求和工具调用不会误显示为 Task。
  • 删除 Task 默认保留 Conversation 和既有消息。
  • Smart Heartbeat 不进入 Task Center。
  • FR-TC1:仅显示当前项目任务,切换会话不缩小列表;无项目时显示选择项目提示。
  • FR-TC2:消息总数与累计回复时间随当前会话更新;轮内工具和审批计时,轮间空闲不计时,历史缺失及远程证据不足有提示。
  • FR-TC3:多次执行汇总到同一任务,不按父 Task 生命周期计算用时。
  • FR-TC4:标题右侧先新建、后筛选;筛选默认收起且为全部,收起后保留所选条件。
  • FR-TC5:创建默认立即执行和当前会话,可选择本项目其他会话、新会话及定时周期,空名称从内容生成。
  • 任务中心保持单实例、默认存在且不可关闭。

本次新增或变更的验收项未在本轮文档同步中执行验证,保留未勾选状态。