feat: add app management, local inference controls, and task statistics
This commit is contained in:
@@ -5,22 +5,20 @@
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | Scheduled Task 与项目范围跟随已实现;Goal/Event Task 与完整操作待实施 |
|
||||
| 版本 | 0.4 |
|
||||
| 日期 | 2026-09-10 |
|
||||
| 版本 | 0.5 |
|
||||
| 日期 | 2026-09-17 |
|
||||
| 依赖 | [Task 与 Job 统一领域模型](./task-and-job-model.md) |
|
||||
| 界面归属 | [通用助手工作栏与执行空间](../assistant-workbar/prd.md) |
|
||||
|
||||
## 1. 产品定义
|
||||
|
||||
Task Center 是工作栏中的单实例 Task 索引,默认跟随当前项目。它不是 Automation Center,
|
||||
也不复制 Conversation 内容。点击条目打开其关联 Conversation,并定位或展开对应 Task。
|
||||
Task Center 是工作栏中的单实例 Task 索引,范围固定为当前项目。顶部显示当前会话统计,
|
||||
下方管理本项目全部会话的任务。点击条目打开其关联 Conversation,并定位或展开对应 Task。
|
||||
|
||||
每个 Task 只关联一条 Conversation;一条 Conversation 可以关联零个、一个或多个 Task。
|
||||
Conversation 不因为关联 Task 而改变对象类型。
|
||||
|
||||
“单实例”和“项目范围”是两个独立属性:应用内只有一个 Task Center Tab,但该 Tab 默认展示
|
||||
当前项目的 Task。用户可以在同一 Tab 内切换到“所有项目”,不能为每个项目创建
|
||||
独立 Task Center 实例。
|
||||
应用内只有一个 Task Center Tab,不提供全局或所有项目入口,也不为每个项目创建独立实例。
|
||||
|
||||
## 2. 收录边界
|
||||
|
||||
@@ -45,7 +43,7 @@ Job/Subjob/Run 树、独立详情或路由。
|
||||
|
||||
每条 Task 至少显示:
|
||||
|
||||
- 名称和所属项目;无项目时标注“未绑定项目”。
|
||||
- 名称和所属项目。
|
||||
- 关联 Conversation 标题。
|
||||
- Task 类型和触发来源。
|
||||
- Ask / Execute 模式。
|
||||
@@ -54,25 +52,32 @@ Job/Subjob/Run 树、独立详情或路由。
|
||||
- 最近活动时间。
|
||||
- 等待审批、失败或需要关注状态。
|
||||
- 下次计划时间(如适用)。
|
||||
- 累计执行时间:汇总该任务历次执行请求的有效区间,不使用父 Task 从创建到结束的生命周期。
|
||||
|
||||
Task 行只显示聚合后的用户状态,不要求用户理解内部 Job/Run。
|
||||
|
||||
## 4. 范围
|
||||
|
||||
范围控件提供:
|
||||
FR-TC1:当前项目是唯一范围,列表只显示 `projectId` 匹配的 Task。切换项目刷新列表;
|
||||
同一项目内切换会话只更新顶部统计,不按当前会话筛掉项目任务。没有活动项目时提示选择项目。
|
||||
历史范围偏好不恢复全局或所有项目视图;范围收窄不删除历史任务或修改其项目绑定。
|
||||
|
||||
- `当前项目`:默认值,跟随活动项目变化,只显示 `projectId` 匹配的 Task。
|
||||
- `所有项目`:显示当前用户可见的项目 Task 和没有 `projectId` 的历史 Task,后者标注“未绑定项目”。
|
||||
### 4.1 当前会话统计
|
||||
|
||||
没有活动项目时,“当前项目”显示明确空状态,并允许切换到“所有项目”;系统不
|
||||
自动改变用户已经选择的范围。范围模式作为工作栏公开偏好持久化,但“当前项目”模式不保存
|
||||
具体项目 ID;重启后继续跟随届时的活动项目。旧布局保存的 `global` 范围在 UI 恢复时映射为
|
||||
`all-projects`,后续保存使用新值;不修改任务数据或后端项目绑定规则。
|
||||
FR-TC2:顶部紧凑展示当前会话消息总数与 Agent 累计回复时间。累计时间按每轮请求的有效
|
||||
执行区间相加,包含轮内工具执行和审批等待,不计轮间空闲;不重复累加子专家用时。
|
||||
缺失历史或时间证据不完整时提示“部分历史用时不可用”,已知用时不能表示为完整总量。
|
||||
远程执行缺少可靠时间证据时显示不可用或不完整,不用事件接收时间虚构远程用时。
|
||||
没有当前会话时提示选择会话,项目任务列表仍保留。
|
||||
|
||||
FR-TC3:任务累计执行时间按其历次执行请求汇总,周期触发仍显示在同一任务内。
|
||||
未执行与缺失执行证据必须区分;具体关联和统计边界见[技术设计](./technical-design.md)。
|
||||
|
||||
## 5. 交互
|
||||
|
||||
- 点击条目打开关联 Conversation,并定位到该 Task。
|
||||
- 状态筛选仅保留进行中、暂停、已结束,默认选择进行中。
|
||||
- FR-TC4:项目任务标题右侧依次放置“+”新建按钮和筛选图标。状态筛选默认收起、默认全部,
|
||||
展开后提供全部、进行中、暂停、已结束;收起不清除已选条件,非全部时图标高亮并显示筛选条件。
|
||||
- 进行中包含 `idle`、`queued`、`running`、`waiting_approval`、`failed` 和 `interrupted`;
|
||||
暂停对应 `paused`,已结束包含 `completed` 和 `cancelled`。分类只影响列表筛选,
|
||||
不改变任务状态语义;任务行保留具体状态、错误信息和原有操作。
|
||||
@@ -83,6 +88,8 @@ Task 行只显示聚合后的用户状态,不要求用户理解内部 Job/Run
|
||||
- 审批徽标统计当前项目范围内全部待审批请求,不受状态筛选影响。
|
||||
- 支持立即运行、暂停、恢复、取消、编辑和删除。
|
||||
- 后台变化更新状态和徽标,不自动抢占当前页面。
|
||||
- FR-TC5:创建默认立即执行并关联当前会话,也可选择本项目其他可用会话或新建会话,
|
||||
改用单次定时、每日或每周计划。内容必填,名称可留空并从内容生成,详见[创建规则](./scheduled-task-prd.md#5-创建入口与-modal)。
|
||||
- 立即运行、重试和恢复在 UI 上都是 Task 操作,内部 Job/Run 不单独显示。
|
||||
- 完整消息留在 Conversation;工具、审批和错误可以在活动或 Runtime 中按 Task 查看;
|
||||
独立交付物在成果中查看。
|
||||
@@ -145,6 +152,11 @@ Task 行只显示聚合后的用户状态,不要求用户理解内部 Job/Run
|
||||
- [x] 普通模型请求和工具调用不会误显示为 Task。
|
||||
- [ ] 删除 Task 默认保留 Conversation 和既有消息。
|
||||
- [x] Smart Heartbeat 不进入 Task Center。
|
||||
- [x] Task Center 默认只显示当前项目的 Task,切换项目后在同一 Tab 更新列表。
|
||||
- [x] 仅提供“当前项目”和“所有项目”;后者保留无项目 Task,并标注“未绑定项目”。
|
||||
- [x] 范围切换不创建第二个 Task Center Tab;任务中心保持默认存在且不可关闭。
|
||||
- [ ] FR-TC1:仅显示当前项目任务,切换会话不缩小列表;无项目时显示选择项目提示。
|
||||
- [ ] FR-TC2:消息总数与累计回复时间随当前会话更新;轮内工具和审批计时,轮间空闲不计时,历史缺失及远程证据不足有提示。
|
||||
- [ ] FR-TC3:多次执行汇总到同一任务,不按父 Task 生命周期计算用时。
|
||||
- [ ] FR-TC4:标题右侧先新建、后筛选;筛选默认收起且为全部,收起后保留所选条件。
|
||||
- [ ] FR-TC5:创建默认立即执行和当前会话,可选择本项目其他会话、新会话及定时周期,空名称从内容生成。
|
||||
- [x] 任务中心保持单实例、默认存在且不可关闭。
|
||||
|
||||
本次新增或变更的验收项未在本轮文档同步中执行验证,保留未勾选状态。
|
||||
|
||||
Reference in New Issue
Block a user