feat: unify execution and add workspace file imports

Remove Ask/Execute modes and general product tool approvals so requests use the selected runtime, enabled capabilities, and execution account permissions. Migrate retired application metadata while preserving user content.

Retire the Results page while retaining conversation images and stored artifacts. Add local and remote workspace file imports, timestamps and sorting, improve image discovery and saving, and refine workspace navigation and supervision responsiveness. Include the accompanying web-search changes, tests, probes, and product documentation.

Remote imports require an updated Agent. Existing artifacts are not automatically copied into project directories. Validation evidence and outstanding failures remain documented in feature progress files; no full test suite or real-model calls were rerun for this commit.

Release note: Run requests without switching work modes, import files into a selected local or remote workspace folder, sort workspace files by date, and keep using conversation images after removal of the Results page.
This commit is contained in:
mesalogo
2026-10-04 20:02:59 +08:00
parent 0cd5da33f4
commit 56ebd40bd8
374 changed files with 7075 additions and 6224 deletions
+1 -1
View File
@@ -44,7 +44,7 @@ Observe Job
- 模型声明不能单独证明目标完成。
- 成功标准必须可计算或可人工审查。
- 连续两轮没有指标改善、重复下一步、连续失败、权限不可用或预算不足时暂停。
- 修改范围、预算、Runtime、工作模式或权限必须用户确认。
- 修改范围、预算、Runtime 或能力范围必须用户确认。
## 5. 验收原则
@@ -16,7 +16,7 @@ Scheduled Task 是带时间或事件触发器的 Task。每个 Scheduled Task
一条 Conversation 可以同时承载多个 Task。
当前时间触发的含义是向关联的普通 Conversation 发送一条任务要求。执行时读取该会话的
最新历史、Runtime、工作模式和知识范围,工具配置使用普通发送的同一规则。任务不保存
最新历史、Runtime 和知识范围,工具配置使用普通发送的同一规则。任务不保存
创建时的上下文或权限快照。新建会话按普通会话规则初始化,不复制来源会话的历史和配置。
创建 Scheduled Task 时:
@@ -38,7 +38,7 @@ GoodBuddy 当前已实现首期统一生命周期:
Conversation 的标题和既有消息。
- 每个 Schedule 绑定一个稳定产品级 Task 和 Conversation;重复触发复用同一身份,不再
为每次触发创建新的顶层 Task。
- 创建表单设置任务要求、可选名称、关联会话和执行时间,默认立即执行;工作模式在关联会话中设置,未设置时使用项目默认值。
- 创建表单设置任务要求、可选名称、关联会话和执行时间,默认立即执行;不提供工作模式。
- 单次、每日和每周计划支持暂停、恢复、立即运行和应用重启恢复。
- 到期和手动运行先进入关联 Conversation 的持久输入队列,与回复期间继续发送的普通消息
顺序仲裁;默认不打断当前回复,也不与其并发写入时间线。
@@ -59,7 +59,7 @@ Job/Subjob/Run 的统一持久化抽象。当前每日和每周按既有 UTC 间
- 支持单次、每日、每周、每月、工作日和受限 Cron。
- 支持 Task 完成、失败、Conversation 完成等内部事件触发。
- 创建时明确选择当前、本项目其他可用或新 Conversation。
- 使用关联会话当前的工作模式;新会话使用普通项目默认值。
- 使用关联会话当前的 Runtime 与能力配置;新会话沿用普通项目配置。
- 在实际发送时解析上下文和执行配置,与手动发送共用执行流程。
- 提供时区、错过执行、幂等、租约、重试、恢复、取消、预算和审计。
- 让所有重复触发复用同一 Task 和 Conversation 关联。
@@ -133,7 +133,7 @@ GoodBuddy Desktop · 项目工作目录
```text
✓ 为当前 Conversation 新增一个 Task
✓ 在左侧会话列表显示“任务 3”
✓ 使用关联会话运行时的工作模式
✓ 使用关联会话运行时的能力配置
✓ 每周五 17:00 自动执行此 Task
✓ 文本结果写入当前 Conversation
✓ 独立交付物保存到成果
@@ -155,13 +155,12 @@ GoodBuddy Desktop · 项目工作目录
- 窄窗口使用接近全宽布局,保留 `16px` 外边距。
- 字段错误靠近字段;非字段异步错误保留在 Modal 内并提供重试。
## 6. 工作模式、Runtime 与工具
## 6. Runtime 与工具
### 6.1 会话工作模式
### 6.1 统一执行
创建 Modal 不单独设置工作模式。关联已有会话时,使用该会话实际发送时的工作模式;
新会话未单独设置时使用项目默认模式。Ask 在 Runtime 边界保持只读,Execute 使用普通
会话的工具授权规则。
创建 Modal、会话和项目均无工作模式。执行采用普通会话的 Runtime、已启用能力和资源范围,
不保存固定模式或替代审批策略。
### 6.2 执行时配置
@@ -171,15 +170,13 @@ GoodBuddy Desktop · 项目工作目录
已保存计划中的旧工作模式和 Runtime 字段不再控制执行;用户在关联会话或项目中调整配置。
会话任务详情中的模式与执行来源保持一致:从未运行的计划显示关联会话当前有效模式;
已开始或已结束的 Task 显示该次执行记录的实际模式,不被计划旧字段或会话后续切换覆盖。
缺少实际模式记录时明确显示不可用,不从旧计划字段推断。
会话任务详情保留状态、日程和 Runtime,不显示或推断历史模式。
### 6.3 审批
### 6.3 工具与提问
- 使用普通会话的授权和提问流程。Agent Runtime 的 Execute 工具调用无需通用 GoodBuddy 审批,工具活动仍显示在会话中。
- GoodBuddy 配置修改遵循工作模式和通用工具授权,不另设原生确认;定时执行当前不授予配置工具访问权限。需要用户回答的问题显示在关联会话中,不因定时触发直接判为失败。
- Ask 在 Runtime 边界保持只读;计划不增加另一层工具限制。
- 使用普通会话的工具和提问流程,不进入一般工具审批等待,工具活动仍显示在会话中。
- GoodBuddy 配置修改遵循能力分配、计划有效性和单次应用规则,不另设原生确认。结构化提问按现有入口支持范围处理。
- 计划不增加另一层工具限制,保留取消和超时。
- `outcome_unknown` 等高级执行治理尚未实现,见第 2 节的范围说明。
## 7. 触发器
@@ -361,7 +358,7 @@ Task Center 显示 Scheduled Task 的范围、关联 Conversation、状态、最
- [ ] 立即创建原子提交且只入队一次,定时器不重复触发;入队失败回滚创建,刷新或执行失败不重复创建。
- [x] 关联当前 Conversation 不修改其标题、类型或既有消息。
- [x] 一条 Conversation 可以在左侧展开一个或多个 Task。
- [x] 工作模式使用关联会话当前设置,未设置时使用项目默认值。
- [x] 执行使用关联会话当前 Runtime 与能力配置,无工作模式。
- [x] 使用普通发送的 Runtime 和工具执行流程,不保存任务上下文快照。
- [x] 新会话不复制来源会话历史;重复执行读取关联会话最新消息。
- [x] 重复触发始终复用同一 Task 和 Conversation 关联。
@@ -233,7 +233,7 @@ waiting_approval > failed > running > paused > idle
- Task 只能关联同一 Project 范围内允许使用的 Conversation。
- Renderer 不能把任意 Task 或 Job 绑定到其他 Project 的 Conversation。
- Job/Subjob 继承 Task 的能力上限,只能缩小,不能扩大。
- Execute Task 冻结 Runtime、工作目录、工具和审批策略;后台触发不能扩大权限。
- Task 请求冻结 Runtime、工作目录和能力范围;后台触发不增加未启用能力,不保存模式或一般审批策略。
- 并行输出先有界持久化,再按确定顺序汇总到 Conversation。
- 取消、超时、审批和应用退出必须沿 Task → Job / Subjob → Run → Runtime 传播。
- 删除 Task 默认保留 Conversation 和消息;删除 Conversation 必须处理其全部关联 Task。
@@ -46,7 +46,6 @@ Job/Subjob/Run 树、独立详情或路由。
- 名称和所属项目。
- 关联 Conversation 标题。
- Task 类型和触发来源。
- Ask / Execute 模式。
- 当前聚合状态。
- 最近一次面向用户的进展。
- 最近活动时间。
@@ -105,8 +104,8 @@ FR-TC3:任务累计执行时间按其历次执行请求汇总,周期触发
```text
▾ 产品发布讨论 10:24
每周进度总结 每周 · Execute · 等待中 ●
发布前检查 单次 · Execute ✓
每周进度总结 每周 · 等待中 ●
发布前检查 单次 ✓
```
- 无 Task 的 Conversation 保持现有单行样式。