feat(agentctl): add foreground daemon coordinator with manager.lock

This commit is contained in:
WeiCHEN
2026-09-23 16:39:21 +08:00
parent 981021b2b6
commit cb4a13671d
7 changed files with 361 additions and 1 deletions
+1
View File
@@ -18,6 +18,7 @@
| owner | task | branch | worktree | mutex | status |
|---|---|---|---|---|---|
| Cursor | agentctl-daemon-2026-09-23 | feature/agentctl-daemon-2026-09-23 | .worktrees/agentctl-daemon-2026-09-23 | agentctl-daemon | in_progress |
| Cursor | agentctl-handoff-2026-09-23 | feature/agentctl-handoff-2026-09-23 | .worktrees/agentctl-handoff-2026-09-23 | agentctl-handoff | in_progress |
| Cursor | agentctl-claim-2026-09-23 | feature/agentctl-claim-2026-09-23 | .worktrees/agentctl-claim-2026-09-23 | agentctl-claim | done |
| Cursor | agent-governance-config-2026-09-23 | feature/agent-governance-config-2026-09-23 | .worktrees/agent-governance-config-2026-09-23 | agent-governance-config | done |
@@ -0,0 +1,47 @@
---
title: "W2-U4:常驻协调入口 daemon"
task_id: agentctl-daemon-2026-09-23
status: in_progress
created: 2026-09-23
updated: 2026-09-23
owner: Cursor
task_type: implementation
task_tier: single
policy_revision: "agent-governance-2026-09-21-r1 @ 981021b2b6e9081e9523f992634d273ef4631598"
branch: feature/agentctl-daemon-2026-09-23
worktree: .worktrees/agentctl-daemon-2026-09-23
base_dev_sha: "981021b2b6e9081e9523f992634d273ef4631598"
write_scope: ["scripts", "configs", ".doc"]
allowed_environments: []
mutex: agentctl-daemon
review_state: pending
integration_state: pending
deployment: not_required
cleanup: pending
cleanup_owner: "独立维护者"
cleanup_trigger: "合入 local_dev 且无进程占用后复查"
remote_sync: not_requested
---
# W2-U4:常驻协调入口 daemon
## 用户目标与授权
- 用户目标:前台 `agentctl daemon run|status`,`manager.lock` 单实例,复用 `queue_schedule`;模板入库不装载。
- 授权:W2-U4 实施;不 push;不装载 launchd/systemd。
- 禁止:fork/setsid daemonize;把模板放入 `deploy/`;扩大权限。
## 范围
- `manager.lock` 独占 flock(不进 `physical_names`)
- `daemon run --interval --max-cycles` 前台循环 + SIGTERM/SIGINT 优雅停
- `daemon status` 只读
- `scripts/daemon/` 下 systemd/launchd 模板 + README(明示未装载)
## 验收
1. 双实例并发 → 恰一存活,另一 `LOCK_BUSY` 带 `holder_pid`
2. daemon 停止后 pending 候选不被自动合入
3. 前台 CLI 语义不变
4. daemon 无 register 越权
5. unittest discover 全绿