Skip to content

feat(automation): 定时 loop-monitor 与结构化 doctor/debug #105

Description

@Qiyuanqiii

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

  • 一次性和周期任务在时区/DST、应用重启、sleep/wake、misfire 和重复 lease 下最多执行一次权威轮次。
  • deadline、最大轮次、停止条件、预算耗尽和用户取消均能可靠终止并记录原因。
  • loop-monitor 默认只读,Deliver 修复能力需要逐任务精确授权且重启后重新核验。
  • doctor 返回版本化结构化快照和可操作 readiness 原因,不修改系统。
  • debug 可按 correlation 生成跨 model/tool/policy/process/app 的有界时间线并给出证据等级。
  • 日志/诊断包有 cursor、时间窗、大小/保留上限、来源和脱敏,Secret 与用户终端输入不泄露。
  • 无状态变化时采用退避且不调用模型;通知去重,可明确静默/恢复。
  • Desktop Scheduled Tasks、CLI/OpenAPI、恢复语义和双语文档完整。
  • fake clock、崩溃点、并发 lease、DST、长时间睡眠和真实短周期 smoke 测试通过。

安全边界 / Security boundaries

时间到达只授予“唤醒并重新检查”的权利,不授予执行、网络或修改权限。

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-runtimeAgent orchestration, memory, and extensionsblockedBlocked by external evidence or dependencydesktopDesktop client and Windows distributionenhancementNew feature or requestgoPull requests that update go codehelp wantedExtra attention is neededjavascriptPull requests that update javascript codesecuritySecurity boundary or high-risk capability高难度

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions