fix: show task approvals in their task cards

Task Center previously separated task approvals from their tasks and showed an empty approval section. Associated approvals now appear with allow-once and deny actions inside task cards, and those tasks appear under Active. Only unassociated approvals retain a separate section; no approval section or badge is shown when there are no pending requests.

Release note: Review and handle pending approvals directly in their Task Center cards. Tasks awaiting approval appear under Active, while requests without a matching task remain separately accessible.
This commit is contained in:
mesalogo
2026-09-16 14:31:28 +08:00
parent cb245a6402
commit da23810205
8 changed files with 179 additions and 44 deletions
+2 -1
View File
@@ -1063,7 +1063,8 @@ todo/plan,本次不为其增加工具。也不增加 plan 工作模式、计
- 建立实例级跟随、固定和失效目标语义。
- 保留现有任务中心、工作区、浏览器和成果行为;附件与知识库继续由 Composer 管理。
- 将 Task Center 明确为 Task 的单例索引,并补齐范围、状态、最近进展、需要关注和直接打开 Conversation。
- 审批在所属任务或 Runtime 中持续可见,不新增独立审批面板。
- 审批在所属任务或 Runtime 中持续可见;任务中心只为未关联任务的审批保留按需显示的处理
区域,具体规则见 [Task Center 交互](../task-and-job/task-center-prd.md#5-交互)。
- 智能心跳菜单入口承接完整配置和范围后,再从任务中心移除重复表单;不得移除任务中心本身。
### 阶段 1:成果与 Runtime 可观测性
@@ -1115,6 +1115,20 @@ src/agent-daemon/runtime-composition.test.ts src/main/ipc.test.ts` 为 179 项
测试应用与具名浏览器会话已退出,所属 Electron/Node 进程及 fixture 监听端口均为 0;
临时截图和隔离 profile 保留在本机测试目录,不进入仓库。
## 2026-09-16 任务卡内审批
- 任务中心按 [Task Center 交互规则](../task-and-job/task-center-prd.md#5-交互) 展示卡内审批,
未关联审批保留处理入口;没有审批时不渲染空审批区域。
- 当前定时运行从队列 `taskId` 记录到 `ActiveRun`,审批事件再写入消息的临时审批数据;
历史消息使用明确的 `message.task.id`。Sidebar 按任务 ID 匹配当前范围内顶层任务,
并核对会话 ID 和项目 ID,不按会话、标题、时间或计划猜测运行归属。
- `RightAssistantSidebar.resize.test.tsx` 的 54 项测试通过,覆盖项目范围、状态筛选、
卡内处理、无审批、普通会话审批及关联不一致。App 使用 `-t "approval|scheduled instructions"`
定向运行的 14 项测试通过,验证历史与当前定时审批的映射、允许/拒绝接口调用及成功移除。
- `npm run typecheck`、`npm run lint` 通过。本次仅修改 Renderer 展示与临时关联数据,
本机和远程审批继续使用原有接口;未改 Main、Agent 或存储协议。未进行真实 Electron
窗口和模型调用验收;按本次要求未运行全量测试及无关数据库迁移测试。
## 2026-09-16 任务中心范围简化
- 任务中心仅保留“当前项目”和“所有项目”;无项目任务在后者中标注“未绑定项目”。具体规则见
@@ -76,7 +76,11 @@ Task 行只显示聚合后的用户状态,不要求用户理解内部 Job/Run
- 进行中包含 `idle`、`queued`、`running`、`waiting_approval`、`failed` 和 `interrupted`;
暂停对应 `paused`,已结束包含 `completed` 和 `cancelled`。分类只影响列表筛选,
不改变任务状态语义;任务行保留具体状态、错误信息和原有操作。
- 等待审批区域和审批徽标按项目范围展示,不受状态筛选影响,保留拒绝和允许一次操作。
- 关联当前范围内顶层任务的审批直接显示在任务卡内,可拒绝或仅此次允许;有待审批的任务
归入“进行中”,审批随任务卡参与状态筛选,不再重复显示独立审批分类或区域。
- 普通会话或无法关联到当前范围内任务的审批保留独立处理区域,不受任务状态筛选影响;
该区域仅在存在此类审批时显示。没有审批时不显示审批标题、空提示或徽标。
- 审批徽标统计当前项目范围内全部待审批请求,不受状态筛选影响。
- 支持立即运行、暂停、恢复、取消、编辑和删除。
- 后台变化更新状态和徽标,不自动抢占当前页面。
- 立即运行、重试和恢复在 UI 上都是 Task 操作,内部 Job/Run 不单独显示。