Skip to content

修复 VM 空闲回收活动语义并统一回收流程#868

Open
yokowu wants to merge 2 commits into
mainfrom
feat/vm-recycle-cli-support
Open

修复 VM 空闲回收活动语义并统一回收流程#868
yokowu wants to merge 2 commits into
mainfrom
feat/vm-recycle-cli-support

Conversation

@yokowu

@yokowu yokowu commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

背景

control WebSocket 保活被当作真实任务活动,持续刷新 notify/recycle deadline;同时旧回收 consumer 还会读取可被 control 更新的 tasks.last_active_at,导致长连接任务长期无法按默认周期回收。

改动

  • 将 VM idle 刷新拆分为 KeepAwake 与 RecordActivity,并使用独立 debounce key
  • control 连接只延长休眠,真实 TaskStream 活动才刷新提醒与回收时间
  • 新增统一 vmrecycle.Recycler,供自动 consumer、lifecycle hook 和运维 CLI 复用
  • 统一远端删除、DB 标记、关联任务收口及 Redis 队列/缓存清理
  • 增加 ClickHouse/Loki 最后真实活动查询和 Redis recycle deadline 只读查询
  • 增加 VM 维度 Analyzer;仅日志 deadline 与 Redis deadline 均到期时判为 candidate
  • 对历史 task-event 缺口采用 historical_uncertain,禁止单源强制回收

验证

  • GOWORK=off go test ./...
  • GOWORK=off go vet ./...
  • 受影响包无缓存测试通过
  • git diff --check

依赖

monkeycode-ai 的运维 CLI 将 submodule 更新到本 PR 的提交。

@yokowu

yokowu commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator Author

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant