Parent: #98
问题概述 / Summary
Desktop 有 Scheduled Tasks 占位,doctor / debug 目前主要是 Skill 指南;运行时没有时间驱动的执行服务,也没有统一结构化诊断/日志接口。需要实现可恢复、可停止、默认只读的 loop-monitor,并为 doctor/debug 提供真实运行时数据面。
优先级 / Priority
P1。可先实现结构化诊断,完整监控执行依赖统一命令/Job 生命周期。
当前基线 / Current baseline
- Run/Mission、等待图、事件 Store、预算、cancel、恢复和 Desktop Activity 已存在。
- 现有 child 只会因依赖/状态变化唤醒,不会按 wall clock、deadline 或周期服务主动恢复。
doctor 可描述应检查的 Provider、Harness、Workspace、Sandbox、网络、工具/Skill 兼容性,但缺少统一快照 API。
debug 可指导收集日志,但缺少有界查询、跨组件 correlation 和故障时间线。
- Scheduled Tasks UI 尚无可执行后端。
范围 / Scope
- 定义 durable
scheduled-job.v1:一次性/周期计划、时区、next wake、deadline、停止条件、最大轮次、预算、retry/backoff、通知和 owner。
- 建立单实例 scheduler、lease/fencing、clock abstraction、misfire policy、应用重启 catch-up 和重复执行防护。
- 实现
loop-monitor:默认 Plan/Root/只读,只读取明确目标的状态;达到截止时间、停止条件、预算或用户取消立即终止。
- 只有 Code/Deliver 且经精确审批时,监控任务才能调用允许的修复/命令工具;不得因为“监控”自动提权。
- 提供结构化 doctor snapshot:provider/model、harness profile、workspace/root、sandbox/browser、network scope、tool/Skill/plugin 兼容性和 readiness 原因。
- 提供有界 debug query:按 Run/attempt/tool/process/request correlation 收集事件、日志摘要和错误,生成单调时间线并区分 model/tool/policy/app/infrastructure。
- 日志接口支持游标、时间窗、字段级脱敏、大小/保留上限和来源;原始 Secret、Prompt、用户终端输入默认不可查询。
- Desktop 提供计划创建/暂停/恢复/取消、下次运行、最近结果、通知和诊断包导出。
非目标 / Non-goals
- 不提供无限期无人值守 Agent、任意 cron Shell、系统服务自启动或远程控制平面。
- doctor 默认只报告,不自动修改配置、安装依赖或放宽权限。
- debug 不因定位故障获得 Deliver/Debug 权限;修复必须走正常工具与审批。
- 不把轮询相同状态当作进展,也不在没有新证据时持续消耗模型预算。
涉及目录 / Affected directories
internal/scheduler/
internal/diagnostics/
internal/application/
internal/domain/
internal/store/
internal/events/
internal/waitgraph/
internal/runner/
internal/policy/
internal/approval/
internal/httpapi/
cmd/
web/src/
configs/skills/doctor/
configs/skills/debug/
configs/skills/loop-monitor/
docs/
依赖 / Dependencies
- 完整
loop-monitor 被“普通模式真实命令闭环”阻塞,以复用后台 Job、取消、输出游标和 process reconciliation。
- doctor/debug 的只读结构化接口可先独立交付。
验收条件 / Acceptance criteria
安全边界 / Security boundaries
时间到达只授予“唤醒并重新检查”的权利,不授予执行、网络或修改权限。
Parent: #98
问题概述 / Summary
Desktop 有 Scheduled Tasks 占位,
doctor/debug目前主要是 Skill 指南;运行时没有时间驱动的执行服务,也没有统一结构化诊断/日志接口。需要实现可恢复、可停止、默认只读的loop-monitor,并为 doctor/debug 提供真实运行时数据面。优先级 / Priority
P1。可先实现结构化诊断,完整监控执行依赖统一命令/Job 生命周期。
当前基线 / Current baseline
doctor可描述应检查的 Provider、Harness、Workspace、Sandbox、网络、工具/Skill 兼容性,但缺少统一快照 API。debug可指导收集日志,但缺少有界查询、跨组件 correlation 和故障时间线。范围 / Scope
scheduled-job.v1:一次性/周期计划、时区、next wake、deadline、停止条件、最大轮次、预算、retry/backoff、通知和 owner。loop-monitor:默认 Plan/Root/只读,只读取明确目标的状态;达到截止时间、停止条件、预算或用户取消立即终止。非目标 / Non-goals
涉及目录 / Affected directories
internal/scheduler/internal/diagnostics/internal/application/internal/domain/internal/store/internal/events/internal/waitgraph/internal/runner/internal/policy/internal/approval/internal/httpapi/cmd/web/src/configs/skills/doctor/configs/skills/debug/configs/skills/loop-monitor/docs/依赖 / Dependencies
loop-monitor被“普通模式真实命令闭环”阻塞,以复用后台 Job、取消、输出游标和 process reconciliation。验收条件 / Acceptance criteria
安全边界 / Security boundaries
时间到达只授予“唤醒并重新检查”的权利,不授予执行、网络或修改权限。