[T-012] 补齐 Sense 对账安全闸、孤儿受控处置与多实例可观测性 #45

Merged
ila merged 2 commits from agent/codex/T-012 into main 2026-08-07 23:01:18 +08:00
Owner

任务映射

  • Closes [T-012] 补齐 Sense 对账安全闸、孤儿受控处置与多实例可观测性 (#43)
  • task_file: docs/tasks/T-012.md
  • context_ref: 25357723a09218bae58626a9934309abcda34899
  • claim_branch: claims/T-012
  • work_branch: agent/codex/T-012
  • write_paths: docs/tasks/T-012.md、Sense/README.md、Sense/cmd/sense-api/、Sense/cmd/sense-orphan/、Sense/internal/config/、Sense/internal/metrics/、Sense/internal/mtx/、Sense/internal/orphan/、Sense/internal/reconcile/、Sense/internal/store/、deploy/postgres/、scripts/test_postgres.ps1、docs/00-ai-start-here.md、docs/03-tech-stack.md、docs/04-architecture.md、docs/06-tasks.md、docs/api.md、docs/current-state.md、docs/runbooks/、tests/test_postgres_contract.py、tests/test_sense_reconcile_safety.py

变更摘要

  • PostgreSQL v5 增加数据库时钟驱动的调和租约、fencing token、Path 历史归属和孤儿扫描/处置审计。
  • MediaMTX 增加脱敏分页 Path 枚���;周期任务仅报告,sense-orphan apply 采用 15 分钟快照、精确确认、1~128 项及最多 10% 的不可绕过安全闸,unowned 永不删除。
  • 新增低基数 /metrics、多实例配置、运维 runbook,并保持 Control API v1 与 SQLite 单进程开发边界不变。

验证证据

命令 结果
./init.ps1 通过;52 项 Python 测试、全部 Go 测试、生成漂移、vet、build 全绿
./scripts/test_postgres.ps1 -PgRoot D:\pgsql17 通过;隔离 PostgreSQL 17.10 重放 001~011,权限/约束及 29 个 PostgreSQL 测试全绿,临时实例已清理
go test -race ./internal/metrics ./internal/mtx ./internal/orphan ./internal/reconcile ./internal/store 通过
python -m pytest tests/test_sense_reconcile_safety.py tests/test_postgres_contract.py -q 12 项通过
git diff --check 通过

风险与回滚

  • PostgreSQL 多实例与孤儿能力要求先安装 v5 migration;旧 schema 会在启动时失败关闭。SQLite 仍仅用于单实例开发。
  • 回滚时先关闭孤儿周期扫描并停止新实例,再回滚二进制;保留 v5 表和审计事实,不执行破坏性 down migration。
  • 本任务不代表 16/128 路容量或 T-007 现场验收完成。

检查清单

  • 当前 PR 只对应一个任务 / Issue。
  • 变更未超出 write_paths,没有夹带无关修改。
  • 任务文件执行记录包含相同的验证证据。
  • 合并前任务文件 frontmatter 已为 DONE;Closes 自动关闭 Issue 不会制造假完成。
  • 未提交 Token、Authorization header、私有配置或实例地址。
  • Issue 将切换到唯一 status/review;合并后才标记 status/done。
## 任务映射 - Closes #43 - task_file: `docs/tasks/T-012.md` - context_ref: `25357723a09218bae58626a9934309abcda34899` - claim_branch: `claims/T-012` - work_branch: `agent/codex/T-012` - write_paths: `docs/tasks/T-012.md`、`Sense/README.md`、`Sense/cmd/sense-api/`、`Sense/cmd/sense-orphan/`、`Sense/internal/config/`、`Sense/internal/metrics/`、`Sense/internal/mtx/`、`Sense/internal/orphan/`、`Sense/internal/reconcile/`、`Sense/internal/store/`、`deploy/postgres/`、`scripts/test_postgres.ps1`、`docs/00-ai-start-here.md`、`docs/03-tech-stack.md`、`docs/04-architecture.md`、`docs/06-tasks.md`、`docs/api.md`、`docs/current-state.md`、`docs/runbooks/`、`tests/test_postgres_contract.py`、`tests/test_sense_reconcile_safety.py` ## 变更摘要 - PostgreSQL v5 增加数据库时钟驱动的调和租约、fencing token、Path 历史归属和孤儿扫描/处置审计。 - MediaMTX 增加脱敏分页 Path 枚���;周期任务仅报告,`sense-orphan apply` 采用 15 分钟快照、精确确认、1~128 项及最多 10% 的不可绕过安全闸,`unowned` 永不删除。 - 新增低基数 `/metrics`、多实例配置、运维 runbook,并保持 Control API v1 与 SQLite 单进程开发边界不变。 ## 验证证据 | 命令 | 结果 | | --- | --- | | `./init.ps1` | 通过;52 项 Python 测试、全部 Go 测试、生成漂移、vet、build 全绿 | | `./scripts/test_postgres.ps1 -PgRoot D:\pgsql17` | 通过;隔离 PostgreSQL 17.10 重放 001~011,权限/约束及 29 个 PostgreSQL 测试全绿,临时实例已清理 | | `go test -race ./internal/metrics ./internal/mtx ./internal/orphan ./internal/reconcile ./internal/store` | 通过 | | `python -m pytest tests/test_sense_reconcile_safety.py tests/test_postgres_contract.py -q` | 12 项通过 | | `git diff --check` | 通过 | ## 风险与回滚 - PostgreSQL 多实例与孤儿能力要求先安装 v5 migration;旧 schema 会在启动时失败关闭。SQLite 仍仅用于单实例开发。 - 回滚时先关闭孤儿周期扫描并停止新实例,再回滚二进制;保留 v5 表和审计事实,不执行破坏性 down migration。 - 本任务不代表 16/128 路容量或 T-007 现场验收完成。 ## 检查清单 - [x] 当前 PR 只对应一个任务 / Issue。 - [x] 变更未超出 `write_paths`,没有夹带无关修改。 - [x] 任务文件执行记录包含相同的验证证据。 - [x] 合并前任务文件 frontmatter 已为 `DONE`;`Closes` 自动关闭 Issue 不会制造假完成。 - [x] 未提交 Token、Authorization header、私有配置或实例地址。 - [x] Issue 将切换到唯一 `status/review`;合并后才标记 `status/done`。
ila added 2 commits 2026-08-07 23:00:39 +08:00
chore(task): claim T-012
Harness governance / validate (push) Has been cancelled
677ed732f7
feat(sense): add reconciliation safety controls [T-012]
Harness governance / validate (push) Has been cancelled
Harness governance / validate (pull_request) Has been cancelled
12857fdf32
ila merged commit a8f50cf79f into main 2026-08-07 23:01:18 +08:00
ila deleted branch agent/codex/T-012 2026-08-07 23:01:21 +08:00
Sign in to join this conversation.