| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(loop): 循环管理——定时/间隔拉起无头 Agent 任务 四端 headless 命令矩阵与执行器(task_runner)已就绪,本功能只补 「什么时候、谁来、做什么」:调度线程 + 循环定义 + API + 前端。 两项已定决议:只在应用运行时调度(停机错过的触发记 missed,勾选 catch_up 才补跑一次);运行记录复用任务表(AgentTask.loop_id), 超时/杀树/日志/通知/详情零改动全部继承。 - loop_schedule.py:once/interval/daily/weekly 的校验与 next_run 纯 计算;interval 停机后只从基准后推一次,不按错过次数叠加 - loop_scheduler.py:20s 扫描 → 防重入(记 skipped)→ 本地快检 (不过记 precheck_failed 带原因)→ 插任务行先落库再投递;连通性 预检(5 分钟预算)只给「立即执行」,不进调度线程 - api/v1/loops.py:定义增删改(改计划=重排,改名不唤醒已完成的一次 性任务)、启停、立即执行(不动自动计划)、运行历史、日志尾部/完整 日志(4MB 上限)、取消;有活干时拒删并级联收日志文件 - models:Loop 表 + AgentTask.loop_id/trigger_type(ensure_schema 补建) - task_runner:MAX_TIMEOUT_SECONDS 3600→14400(FR-3.3 循环允许 4h); 手动任务仍由 TaskCreate schema 压在 1 小时;payload 增 loop_id/ trigger_type - 前端:新 Tab「循环管理」——卡片(引擎徽章/计划描述/倒计时/最近运行 状态/启停开关)、四态触发表单、运行历史与日志弹层、15s 轮询 + 1s 倒计时;i18n 全量补齐(计划描述由前端按结构化字段自拼,后端中文 整串在英文界面必漏译);phone 页签索引 6→7 - 顺带修 llama.js 一条历史漏译;i18n-check 0 未命中 实测:634 passed(循环相关 39,含跨 session 落库回归——_fire 非 firing 分支漏 commit 会让调度每 20s 静默重试同一轮且历史无记录, 端到端才暴露);真实服务端到端验证 once 触发与 interval 推进; 浏览器逐项操作 + 布局审计零问题。 | 4 天前 | |
feat(backend): 新增统一日志与测试体系,加固安全与并发 | 2 个月前 |