diff --git a/迭代/plan.md b/迭代/plan.md index fc2e169..f33ec83 100644 --- a/迭代/plan.md +++ b/迭代/plan.md @@ -15,7 +15,7 @@ ```text Runtime 工作区与应用闭环 - → 第一个真正可用的 MiniApp + → 第一个真正可用的 MiniApp(番茄时钟) → 本地 App 管理与签名 Bundle → 再评估应用分发和市场 ``` @@ -47,7 +47,7 @@ Runtime 已具备应用实例、焦点和生命周期的核心模型: `03.sdk_and_coreapp` 已完成并通过自动化测试和浏览器验收: - Interact 是唯一的 `system` MiniApp; -- Task Dashboard 和 Whiteboard 是普通 `bundled` MiniApp; +- 番茄时钟、Task Dashboard 和 Whiteboard 都是普通 `bundled` MiniApp; - MiniApp 通过 SDK 接收 Inbox、Tool、进度、结果、生命周期、Surface 和 Capability 请求; - 标准 `notice / choice / confirm / input` 属于 Interact 的人与 Agent 交互,不是 MiniApp 内部表单; - App 子会话、交互归属、关闭收口、继续处理和重启恢复已有明确规则; @@ -69,23 +69,23 @@ Runtime 已具备应用实例、焦点和生命周期的核心模型: ```text 进入 Interact IM - → Agent 请求启动 Task Dashboard + → Agent 请求启动 Pomodoro 番茄时钟 → Runtime 创建 App instance 和 App 子会话 - → Task Dashboard 进入前台,Interact 进入后台 - → Agent 发送任务进度或向用户提问 - → 用户回答、查看任务或关闭 App - → Runtime 收口未完成 Tool,可靠发送已提交结果 + → 番茄时钟进入前台,Interact 进入后台 + → 计时在后台继续运行 + → 用户可以暂停、继续、取消或回到 Interact + → 到时间后显示完成提醒并回传结果 + → 用户关闭 App,Runtime 收口未完成操作 → 子会话结束并在 IM 中折叠保存 → Interact 恢复 - → 用户查看历史或继续处理 - → 继续处理创建新的 instance 和新的子会话 + → 用户查看历史或继续开始下一轮 ``` ### 3.2 主要工作 1. **接通 App 工作区界面** - 显示当前前台 App; - - 支持 Interact、Task Dashboard、Whiteboard 的切换; + - 支持 Interact、Pomodoro 番茄时钟、Whiteboard 的切换; - 显示后台、挂起、关闭和恢复状态; - App 启动失败时恢复 Interact; - 刷新或重启后恢复工作区。 @@ -112,15 +112,40 @@ Runtime 已具备应用实例、焦点和生命周期的核心模型: - App 关闭不自动取消未回答的标准交互; - Agent 可以通过 `interaction.dismiss` 远程取消交互。 -5. **让 Task Dashboard 成为第一条完整用户流程** - - Agent 创建任务; - - Agent 更新任务进度; - - 用户查看任务状态; - - Agent 向用户提问; - - 用户回答; - - Tool 完成后 App 不自动关闭; - - 用户关闭任务面板; - - 任务子会话保存并可继续处理。 +5. **让 Pomodoro 成为第一条完整用户流程** + - Agent 请求启动一个番茄钟; + - Runtime 创建计时实例和 App 子会话; + - 用户可以查看剩余时间、暂停、继续和取消; + - 番茄钟切到后台后仍能继续计时; + - 到时间后显示完成提醒并回传结果; + - 用户关闭番茄钟时,Runtime 正确取消未完成操作; + - 刷新或重启后根据 `ends_at` 恢复剩余时间; + - 完成记录和子会话可以在 Interact 中查看。 + + 第一版只保留这些状态和数据: + + ```text + state = idle | running | paused | completed | cancelled + timer_id + duration_seconds + started_at + ends_at + remaining_seconds + ``` + + 建议的最小 Tool: + + ```text + pomodoro.start + pomodoro.pause + pomodoro.resume + pomodoro.cancel + pomodoro.status + ``` + + 番茄钟到时间后的普通完成提醒属于 MiniApp 自己的业务提示;如果以后需要系统通知,再通过 + Runtime 的 Capability 请求,不能让 MiniApp 直接调用 Tauri 或操作系统接口。Agent 询问用户是否 + 开始下一轮时,仍然必须使用 Interact 的标准交互。 6. **补充端到端验收** - Web Reference Host 完整验收; @@ -136,22 +161,23 @@ Runtime 已具备应用实例、焦点和生命周期的核心模型: - Audio Mode 的真实媒体能力; - Video Mode 的真实媒体能力; - Whiteboard 的多人协作和复杂绘图能力; -- Task Dashboard 的完整项目管理功能。 +- Task Dashboard 的完整项目管理功能; +- Pomodoro 的统计报表、多个计时器、日历和复杂提醒计划。 ### 3.4 完成标准 ```text -用户可以从 Interact 启动 Task Dashboard; +用户可以从 Interact 启动 Pomodoro 番茄时钟; Runtime 可以正确创建、切换、后台化、关闭和恢复 App; App 子会话能在 IM 中折叠、展开和继续处理; 标准交互在不同前台 App 下仍归 Interact; 关闭 App 时 Tool 和 outbox 收口正确; -刷新/重启后 App、焦点、子会话和待处理交互按规则恢复; +刷新/重启后 App、焦点、子会话、计时剩余时间和待处理交互按规则恢复; Web/Tauri 代表性流程通过端到端验收; 所有 P0~P3 评审问题清零。 ``` -## 4. 第五次迭代:第一个真正可用的隔离 MiniApp +## 4. 第五次迭代:第二个真正可用的隔离 MiniApp 建议迭代目录: @@ -159,22 +185,13 @@ Web/Tauri 代表性流程通过端到端验收; 迭代/05.first_isolated_miniapp/ ``` -第四次迭代完成工作区后,再把一个 MiniApp 从“参考实现”推进为“真实隔离运行的应用”。 +第四次迭代完成工作区和 Pomodoro 后,再把另一个 MiniApp 从“参考实现”推进为“真实隔离运行的应用”。 ### 4.1 推荐顺序 -优先选择 Task Dashboard 作为第一条产品流程,Whiteboard 作为第二条安全和 Surface 验证流程。 +优先选择 Whiteboard 作为第二条安全和 Surface 验证流程;Task Dashboard 留到后续,避免任务管理业务影响 Runtime 核心设计。 -### 4.2 Task Dashboard 方向 - -- 真实 Surface 挂载; -- Agent Tool 和用户操作共存; -- 任务状态恢复; -- 任务子会话和继续处理; -- App enable / disable; -- Inventory 随状态变化更新。 - -### 4.3 Whiteboard 方向 +### 4.2 Whiteboard 方向 - 受限 Surface 中的画布状态; - 状态 patch; @@ -185,6 +202,11 @@ Web/Tauri 代表性流程通过端到端验收; 暂时不做多人协作、云端同步和复杂绘图工具。 +### 4.3 Task Dashboard 的后续定位 + +Task Dashboard 仍然保留为后续普通 `bundled` MiniApp,但不作为 Runtime 的第一条验证流程。 +等工作区、SDK、生命周期和 Surface 边界稳定后,再单独定义任务、项目、状态和历史等业务模型。 + ## 5. 第六次迭代:本地 App 管理和签名 Bundle 建议迭代目录: