Files
Agent-System/.doc/remediation/2026-09-23-coordination-db-daemon-implementation-undertaking-plan.md
T
WeiCHEN f0f4d741ae docs(ops): record W3-U6 MATRIX record_id five-state closeout
Mark U6 merged_local_dev, backfill undertaking tip 8079f8f4, and
update CURRENT claim rows. Seven-package L1 queue is clear.
2026-09-23 17:39:25 +08:00

14 KiB
Raw Blame History

title, status, created, updated, owner, task_id, task_type, task_tier, policy_revision, branch, worktree, base_dev_sha, write_scope, allowed_environments, mutex, review_state, integration_state, deployment, cleanup, cleanup_owner, remote_sync
title status created updated owner task_id task_type task_tier policy_revision branch worktree base_dev_sha write_scope allowed_environments mutex review_state integration_state deployment cleanup cleanup_owner remote_sync
协调库与 daemon · 实施承接计划(工作包预填) planned 2026-09-23 2026-09-23 Cursor coordination-db-daemon-impl-plan-2026-09-23 research multi_stage agent-governance-2026-09-21-r1 @ 1f2f3d6a58 feature/coordination-db-daemon-impl-plan-2026-09-23 .worktrees/coordination-db-daemon-impl-plan-2026-09-23 1f2f3d6a58
.doc
coordination-db-daemon-impl-plan pending pending not_required pending 独立维护者 not_requested

协调库与 daemon · 实施承接计划(工作包预填)

1. 目的、输入依赖与非目标

1.1 目的

为 协调库与 daemon 方案 的 L1 七单元提供可直接开工的承接框架:三波次门禁、七个工作包预填登记(符号级锚点 + 真实并发验收)、防重复施工、开工准入、集成与收口分项。每包另立 short-term 实施时复制本表字段,不得缺项编码。

1.2 输入依赖(本机均可见)

输入 路径 状态
设计方案 ./2026-09-23-coordination-db-daemon-plan.md planned;已合入 local_dev
研究依据 ../ops/research/2026-09-23-coordination-db-daemon-research.md done(调研可审)
既有锁方案 ./2026-09-21-agent-lock-coordination-plan.md planned;本机 SQLite 权威
操作规范 ../ops/2026-09-21-agent-worktree-workflow.md active
验证契约 ../ops/2026-09-21-validation-contract.md active;本批适用「治理脚本」行
平台深化 HA 边界 ./2026-09-23-platform-deepening-reliability-ha-concurrency-plan.md §0 单宿主机;跨机需 ADR

1.3 非目标

  • 本文件不实施 U1r–U6 任何代码、不装载 launchd/systemd、不改 FEATURE-MATRIX 状态值。
  • L2 跨机 PostgreSQL / 中央 daemon 不入波次;无 ADR + 二次授权不得开跨机代码。
  • 不把 L1 宣称为 OS 沙箱;协调不依赖产品容器;不接触业务数据库。
  • 不 push、不操作 test/main(除非另获授权)。

2. 已落地基线盘点(本机实测)

编制日:2026-09-23。基线 tip:1f2f3d6a58d153e6a7809943d2f3383b9c620085(本任务 base_dev_sha;各包开工时以当时 dev tip 重测)。

检查项 依据 结果
queue 子解析器重复注册 合入 63e66c6fb35d6b4dd9f3ed92e15acc9933aeb344 已修复;scripts/agentctl.py 仅一处 add_parser('queue')(:1613)
权威库 .locks/state.sqlite 11 表;scope/lease/CAS/收据/候选准入/--ff-only 已 enforced(相对受控入口)
queue/jobs 行数 活库采样 queue_items/jobs 仍可为 0(运维闭环待用);parser 已可用
策略 YAML configs/agent-governance.yaml 不存在
automation 分叉 scripts/agentctl_automation.py 零导入;schema 含活库无的 operations/doc_registry
常驻服务 *.service / *.plist / compose 协调服务 0 个
FEATURE-MATRIX 治理行 「Agent worktree 治理自动化」 partial;W4 landed;仍 deferred:PI 源码镜像、跨机隔离、automation/w4 收敛
CURRENT 矛盾 :5 vs :15 macOS 租约可用/不可用并存;操作规范 :3 仍写「Linux 本机」

含义:方案 U1 的 queue 缺陷已落地;剩余工作包默认 incremental 或 net_new(有检索证据),禁止重复施工覆盖已 PASS 的 L1/W4 证据。

3. 波次 → 门禁表

flowchart LR
  subgraph W1 [W1 认领与策略基础]
    U1R[U1r automation归一]
    U2[U2 governance.yaml]
    U3[U3 长期claim]
  end
  subgraph W2 [W2 执行代理与CURRENT]
    U7[U7 quarantine交接]
    U4[U4 常驻入口]
    U5[U5 CURRENT投影]
  end
  subgraph W3 [W3 矩阵迁移]
    U6[U6 MATRIX record id]
  end
  U2 --> U4
  U3 --> U4
  U3 --> U5
  U4 --> U5
  U5 --> U6
  U7 --> U4
波次 包 准入 完成判据 验证契约适用行
W1 U1r, U2, U3 本承接计划已合入;mutex 无冲突 三包各自 short-term 验收 PASS 并合入 治理脚本
W2 U7, U4, U5 W1-U2/U3 done;U7 可与 U4 并行编码 daemon 单实例 + CURRENT 投影 PASS;操作规范/CURRENT 矛盾已修正 治理脚本;涉文档追加纯文档核对
W3 U6 W2-U5 done MATRIX 稳定 ID + done 证据门禁不回退 治理脚本 + 纯文档

编码/隔离测试可并行(mutex 不重叠);dev 集成串行(git:dev)。

4. 工作包登记表(全部预填)

4.1 必填字段约定

字段 要求
wp_id 唯一;与 short-term task_id 可映射
phase W1 / W2 / W3
relation_to_baseline incremental / regression_gate / net_new(须检索证据)
code_anchors 文件路径 + 符号;禁止只写包名
deps 依赖 wp_id / 已合入 tip / ADR
mutex 与 CURRENT 认领一致
write_scope 允许写路径
test_scenarios Given/When/Then;临时 Git 仓库真实并发/拒绝;stub/SKIP 不算 PASS
rollback 单批 revert;迁移 additive

4.2 登记表

wp_id phase title relation_to_baseline code_anchors deps mutex write_scope test_scenarios rollback
W1-U1r W1 automation 归一与 state.db 清理 incremental(MATRIX 已记 deferred automation/w4 收敛) scripts/agentctl_automation.py(整文件);活库无 operations/doc_registry;.locks/state.db(0 字节孤儿,代码无引用) queue 修复 tip 63e66c6f agentctl-automation-converge scripts (1) rg 无导入引用后删除或合并到 agentctl_w4;(2) unittest discover 全绿;(3) 确认无代码引用后清理运行态 state.db(不入 Git) 单批 revert;若已删文件则恢复提交
W1-U2 W1 治理策略外部化 net_new(检索:configs/ 无 agent-governance.yaml) scripts/agentctl.py:27 SHARED_DOCS;scripts/agentctl_w4.py:64 JOB_KINDS;:75 PROJECTABLE_DOCS;:80 PROJECTABLE_PREFIXES;新建 configs/agent-governance.yaml — agent-governance-config scripts, configs 临时仓库:(1) 策略缺失拒写;(2) YAML 损坏拒写;(3) protocol 版本过低拒写;(4) 合法加载后 docs apply/with 行为不变 revert 配置+加载代码;硬编码常量可作紧急回退
W1-U3 W1 显式长期认领 claim incremental(基于既有 scope/lease) scripts/agentctl.py:553 check_resources;:589 class Lease;tasks/freezes/runs 表;新 claim 表或等价资源键 W1-U2 建议先合入(策略版本字段) agentctl-claim scripts (1) 20 并发抢同一 claim 仅 1 成功;(2) 不同资源并行均成功;(3) 目录/子文件父子重叠冲突;(4) 冻结资源拒写;(5) 重复 request_id 幂等;(6) 冲突返回持有者+票据+retry_after additive schema;revert 代码;旧客户端无 claim 列时 fail-closed
W2-U7 W2 quarantine 与安全交接 regression_gate(recover 已有三值存活) scripts/agentctl.py:993 recover;进程层 alive_status/group_status/descent_status;runs.generation —(可与 W1 并行编码) agentctl-handoff scripts (1) 杀 supervisor 留子进程不得误抢;(2) unknown 不回收;(3) TTL/心跳过期只进 suspect/quarantine;(4) 旧 generation renew/write/release 全拒;(5) env/git 未知结果须核验收据 单批 revert;不削弱既有 recover 负例
W2-U4 W2 常驻协调入口 net_new(检索:仓库 0 个 service/plist) 新 deploy/agentctl/ 或 scripts/systemd/+scripts/launchd/ 模板;.locks/os/manager.lock(锁方案 §3.1 规划、今日不存在);复用 queue schedule :1245、投影路径 W1-U2 done;W1-U3 done;W2-U7 建议先合入 agentctl-daemon scripts, deploy(若放单元模板) (1) 双实例争 manager.lock 仅一存活;(2) daemon 停后受保护写入 fail-closed(非放行);(3) 前台 CLI 语义不变;(4) daemon 不新增权限(无 register 能力不可越权) 卸下单元模板;删除 manager.lock 争用代码可 revert;不自动装载本机
W2-U5 W2 CURRENT 状态输出化 incremental(docs_project 已有) scripts/agentctl.py:1308 docs_project;行模板约 :1358-1362;槽位保护 :903-908;.doc/ops/CURRENT.md;.doc/ops/2026-09-21-agent-worktree-workflow.md:3 W1-U3 done;W2-U4 建议先合入(投影调度) current-projection scripts, .doc (1) 双任务并行投影不丢行;(2) 同行 CAS → BASE_CHANGED;(3) 槽位保护不回退;(4) 人工「焦点/受控约束」区块机器不写;(5) 修正 CURRENT :5/:15 与操作规范「Linux 本机」过时描述 revert 投影代码+文档;保留人工段落
W3-U6 W3 FEATURE-MATRIX 稳定 ID incremental .doc/status/FEATURE-MATRIX.md 完成度表约 :52-78(27 行);docs apply done 门禁 :922-928 W2-U5 done matrix-record-id scripts, .doc (1) 无证据升 done 被拒;(2) 未知列/历史段落保留;(3) 整文 rewrite 不能夹带 done;(4) 任务 close ≠ 自动升 done;(5) production_ready 仍只由发布门禁判定 revert;记录 ID 映射表保留在 Git 便于回滚对照

4.2.1 落地 tip 回填(2026-09-23)

wp_id merged tip(local_dev) 判定
W2-U7 981021b2 done
W2-U4 725e2e4b done
W2-U5 c780a030 done
W3-U6 8079f8f4 done

4.3 判定列(开工前填)

每包 short-term 增加列:判定 = planned | in_progress | blocked | done | cancelled。本承接计划合入时全部为 planned。

5. 防重复施工前置检查

每个工作包开工前,owner 在 short-term 勾选并留证据链接:

  1. 检索 gap-matrix:已有 PASS 覆盖同一缺陷 → 默认 regression_gate。
  2. 检索 FEATURE-MATRIX「Agent worktree 治理自动化」:W4 landed 项不得推倒重来;本包声明与 deferred 项的关系。
  3. 对照 设计方案 U1–U7:本包范围不越界到 L2。
  4. 声明 relation_to_baseline;net_new 列出检索路径(至少含 §4.2 锚点)。
  5. mutex / write_scope 与 CURRENT / agentctl task register 一致。
  6. 红线:无 ADR 不开跨机;不宣称 OS 沙箱;不碰业务库/产品容器协调。
  7. 验证契约「治理脚本」行:计划中的并发/拒绝路径均在临时真实 Git/SQLite 执行。

任一项未勾 → 保持 planned/blocked,不得编码。

6. 开工准入(硬条件)

同时满足才可 agentctl task register 并编码:

  • 本承接计划已为当前 dev 祖先;
  • 该包 §4.2 必填字段齐全且 §5 全部勾选;
  • 依赖包(§4.2 deps)已 done 或显式允许并行;
  • 从当时 dev 完整 SHA 创建 feature/<task-id> / fix/<task-id>,不从他人 feature 派生;
  • L2 相关改动另有 ADR + 用户二次授权(本波次不应触发)。

7. L2 ADR 前置门(不开工)

跨机 + 独立 PostgreSQL + 中央 daemon + systemd(Linux 中央主机)仅登记:

门禁 要求
ADR 覆盖锁方案 §3.2「跨机锁服务当前不采用」与平台深化 §0「跨机 HA 需先另立 ADR」
用户授权 二次明确授权;范围/期限/退出条件写入 short-term
验收登记 双主机并发、断网、旧进程存活、重复 request_id、备份恢复——待执行,不得冒充已测

无上述门禁 → 任何 PR/合入含跨机协调代码一律拒绝。

8. 集成、部署与收口

8.1 集成

冻结 head → 候选 merge --no-ff(第一父 = expected_dev)→ agentctl validate → agentctl integrate --expected-dev <SHA>(git:dev 租约内 --ff-only)。CURRENT/MATRIX 变更走 docs apply 收据。

8.2 部署判定

变更 deployment
仅 .doc / 本承接计划 / 单元模板入库未装载 not_required
scripts/agentctl* 行为变更 临时仓库治理脚本验收即可;不要求产品容器 rebuild
本机装载 launchd/systemd(若另授权) 本机装载演练记录;fail-closed 核验

8.3 收口分项(每包必报)

review_state / integration_state / deployment / cleanup / remote_sync(默认 not_requested)。

9. 与本框架任务的关系

10. 相关链接