docs(ops): record audit batch 1+2 merges and slot release
This commit is contained in:
+1
-1
@@ -144,7 +144,7 @@
|
||||
|
||||
| holder | phase | since | scope | queue |
|
||||
|--------|-------|-------|-------|-------|
|
||||
| - | idle | 2026-09-19 | Control Center 已删除;node_modules 与本地分支已清;dev 健康检查见测试报告 | - |
|
||||
| - | idle | 2026-09-19 | audit-b1+b2 已合入 dev(b1 merge 844f757、b2 merge 08f4e0b,vet/test 全绿);批3 待开 | - |
|
||||
|
||||
**phase**: `idle` | `merging` | `smoke` | `e2e`
|
||||
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
# 审计整改批 1(后端数据一致性)测试报告
|
||||
|
||||
## 一、 测试背景 (Background)
|
||||
|
||||
2026-09-19 系统深度审计([.doc/audit/2026-09-19-system-deep-audit.md](../audit/2026-09-19-system-deep-audit.md))发现 4 项后端数据一致性 critical/high:
|
||||
- C1 docgov 租约/审计持久化 `_, _ = pool.Exec` 静默吞错 + `lease_fencing_token` 列未读回
|
||||
- C2 Session 全字段数据竞态 + ProjectID 跨项目污染
|
||||
- C4 工作流 SaveWorkflowPlan upsert/bump 分裂事务竞态 + completed_by 错填为 activated_by
|
||||
- H10 `context.Background()` 脱离请求生命周期
|
||||
|
||||
## 二、 测试目标 (Test Objectives)
|
||||
|
||||
- 修复后 `go vet` 零告警、`go test -short ./...` 全量 PASS
|
||||
- 受影响三包 `go test -race -short` PASS(chat / docgov / projectinstance)
|
||||
- 不改变既有 API 行为契约(除 completed_by 归属修正)
|
||||
|
||||
## 三、 测试方案与环境 (Test Plan & Environment)
|
||||
|
||||
- 环境:linux 7.0,Go 1.x,分支 `fix/audit-b1-data-consistency` → 合入 `dev`(worktree `.worktrees/dev-rdev-merge`,merge commit `844f757`)
|
||||
- 层级:单元测试(受影响包)+ 全量回归 + race 检测
|
||||
- dev 服务在线 `:8080`(合入前旧二进制,schema 52,health ok)
|
||||
|
||||
## 四、 预期结果 (Expected Results)
|
||||
|
||||
- docgov:租约持久化失败返回 error 并回滚内存状态;审计失败 slog.Error 可观测;重启后 fencing token 从 DB 读回
|
||||
- chat:Session 字段访问全部经 mu 保护;`-race` 不报 data race
|
||||
- projectinstance:SavePlanWithRevision 单事务原子;bump 冲突时 plan 不落库;completed_by = 推进操作者
|
||||
- server:getOrCreateSession 内 DB 调用有 5s 超时
|
||||
|
||||
## 五、 实际测试结果与判定 (Actual Results & Evaluation)
|
||||
|
||||
### 用例 1:go vet 全量
|
||||
- 输入:`go vet ./...`
|
||||
- 输出:(空,零告警)
|
||||
- 判定:PASS
|
||||
|
||||
### 用例 2:全量短测
|
||||
- 输入:`go test -short ./...`
|
||||
- 输出:55 包 ok,无 FAIL/panic
|
||||
- 判定:PASS
|
||||
|
||||
### 用例 3:race 检测(受影响包)
|
||||
- 输入:`go test -race -short ./internal/chat/ ./internal/docgov/ ./internal/projectinstance/`
|
||||
- 输出:
|
||||
```
|
||||
ok chat-agent-system/internal/chat 1.054s
|
||||
ok chat-agent-system/internal/docgov 1.038s
|
||||
ok chat-agent-system/internal/projectinstance 1.015s
|
||||
```
|
||||
- 判定:PASS
|
||||
|
||||
### 用例 4:dev 冒烟(合入后 worktree)
|
||||
- 输入:`.worktrees/dev-rdev-merge` 上 `go vet ./...` + `go test -short ./...`
|
||||
- 输出:VET_OK,无 FAIL
|
||||
- 判定:PASS
|
||||
|
||||
### 用例 5:dev 服务健康
|
||||
- 输入:`curl http://127.0.0.1:8080/api/v1/health`
|
||||
- 输出:`{"status":"ok","env":"dev","schema_version":52,"schema_ready":true,...}`
|
||||
- 判定:PASS(注:跑的是合入前二进制,容器 rebuild 未执行,见七)
|
||||
|
||||
## 六、 自动化测试套件汇总 (Test Suite Execution)
|
||||
|
||||
- `go vet ./...` 零告警
|
||||
- `go test -short ./...` 55 包全 PASS
|
||||
- `go test -race -short`(chat/docgov/projectinstance)全 PASS
|
||||
|
||||
## 七、 测试结论与后续优化建议 (Conclusion & Next Steps)
|
||||
|
||||
- 批 1 四个子项全部修复并合入 dev(merge `844f757`),质量门禁全绿,达到合入标准。
|
||||
- **遗留**:dev 容器二进制仍为合入前版本(health 为旧码);如需真实链路验证 C2 竞态修复,应 `./scripts/env-service.sh dev rebuild` 后复跑。此为长操作,未在本批执行,留给集成槽位下一次 holder 或批 2 合入时一并 rebuild。
|
||||
- 批 2(鉴权与越权)继续沿用本槽位流程。
|
||||
|
||||
## 证据
|
||||
|
||||
- merge commit:`844f757`(dev worktree)
|
||||
- 批 1 三个 fix commit:`11f375f`(docgov)、`c7eab1f`(chat race)、`e2b1340`(projectinstance)、`a81db16`(ctx threading)
|
||||
Reference in New Issue
Block a user