[T-015] 建立 Bell 不可变事件存储 #53

Merged
ila merged 1 commits from agent/codex/T-015 into main 2026-08-10 23:54:28 +08:00
Owner

任务映射

变更摘要

  • 建立 Bell Go 1.26.5 module;冻结 Draft 2020-12 validator v6.0.2、ULID v2.1.2,并复用 pgx v5.10.0。
  • Bell 拒绝候选事实自报平台 ID,生成 evt_ ULID 后执行冻结 v0.1 schema 与六项代码断言。
  • 新增 bell.events、append-only bell.event_outcomes、数据库不可变 trigger,以及无 owner/改写权限的 NOLOGIN bell_runtime。
  • 同平台 ID/同摘要幂等,同 ID/不同摘要冲突;outcome 不修改原事件。
  • 修正冻结 README 中与 schema/雷达示例冲突的旧句,未改 schema。
  • 根启动门禁现同时覆盖 Sense 与 Bell。

验证证据

命令 结果
./init.ps1 通过;64 个 Python 测试,Sense generate/test/vet/build 与 Bell test/vet/build 全部成功
./scripts/test_postgres.ps1 -PgRoot D:\pgsql17 通过;PostgreSQL 17.10,001~013 migration 重放两次,Sense/Bell repository 与权限/不可变测试通过,临时集群清理
go -C Bell test ./... / vet / build 通过
test_bell_event_contract.py 5/5 通过
test_postgres_contract.py 8/8 通过
三条治理命令 + git diff --check 通过

边界与回滚

本 PR 没有 Bell HTTP 服务。Brain transport、认证、整数事件 ID 与文本逻辑 ID 映射、生产隐私 resolver、规则/Alert/Web 仍待后续任务;内部 Go factory 不是公共协议。

回滚本 PR 会删除尚未上线的 Bell event module 与 012/013 migration 定义。已在外部数据库安装 migration 后不得直接删除表;管理员须先备份并按专用数据库恢复流程处理。

## 任务映射 - Closes #51 - task_file: `docs/tasks/T-015.md` - context_ref: `5b42f58f23255831067f44206849344909d74ee9` - claim_branch: `claims/T-015` - work_branch: `agent/codex/T-015` ## 变更摘要 - 建立 Bell Go 1.26.5 module;冻结 Draft 2020-12 validator v6.0.2、ULID v2.1.2,并复用 pgx v5.10.0。 - Bell 拒绝候选事实自报平台 ID,生成 `evt_` ULID 后执行冻结 v0.1 schema 与六项代码断言。 - 新增 `bell.events`、append-only `bell.event_outcomes`、数据库不可变 trigger,以及无 owner/改写权限的 NOLOGIN `bell_runtime`。 - 同平台 ID/同摘要幂等,同 ID/不同摘要冲突;outcome 不修改原事件。 - 修正冻结 README 中与 schema/雷达示例冲突的旧句,未改 schema。 - 根启动门禁现同时覆盖 Sense 与 Bell。 ## 验证证据 | 命令 | 结果 | | --- | --- | | `./init.ps1` | 通过;64 个 Python 测试,Sense generate/test/vet/build 与 Bell test/vet/build 全部成功 | | `./scripts/test_postgres.ps1 -PgRoot D:\pgsql17` | 通过;PostgreSQL 17.10,001~013 migration 重放两次,Sense/Bell repository 与权限/不可变测试通过,临时集群清理 | | `go -C Bell test ./...` / vet / build | 通过 | | `test_bell_event_contract.py` | 5/5 通过 | | `test_postgres_contract.py` | 8/8 通过 | | 三条治理命令 + `git diff --check` | 通过 | ## 边界与回滚 本 PR 没有 Bell HTTP 服务。Brain transport、认证、整数事件 ID 与文本逻辑 ID 映射、生产隐私 resolver、规则/Alert/Web 仍待后续任务;内部 Go factory 不是公共协议。 回滚本 PR 会删除尚未上线的 Bell event module 与 012/013 migration 定义。已在外部数据库安装 migration 后不得直接删除表;管理员须先备份并按专用数据库恢复流程处理。
ila added 1 commit 2026-08-10 23:53:33 +08:00
feat(bell): add immutable event store [T-015]
Harness governance / validate (pull_request) Has been cancelled
Harness governance / validate (push) Has been cancelled
236964d242
Author
Owner

合并前协调审计:

  • audit_gitea_coordination.py 已使用实例根 URL、显式允许 HTTP 并禁用代理,仍返回“网络、代理或响应格式异常”;未误报为通过。
  • Gitea MCP 手工只读核对通过:唯一 review 活跃任务为 T-015 #51,T-007 #22 仍是 waiting;唯一开放 PR 为 #53,mergeable=true。
  • 最新 CLAIM RENEWAL 由 dispatcher ila 发布,lease 有效至 2026-08-11T15:46:36Z;claim/work branch、context_ref、PR base/head SHA 和完整 write_paths 一致。
  • 工作分支提交 236964d 干净,完整本地门禁及隔离 PostgreSQL 17.10 验证通过。
合并前协调审计: - `audit_gitea_coordination.py` 已使用实例根 URL、显式允许 HTTP 并禁用代理,仍返回“网络、代理或响应格式异常”;未误报为通过。 - Gitea MCP 手工只读核对通过:唯一 review 活跃任务为 T-015 #51,T-007 #22 仍是 waiting;唯一开放 PR 为 #53,`mergeable=true`。 - 最新 CLAIM RENEWAL 由 dispatcher `ila` 发布,lease 有效至 2026-08-11T15:46:36Z;claim/work branch、context_ref、PR base/head SHA 和完整 write_paths 一致。 - 工作分支提交 `236964d` 干净,完整本地门禁及隔离 PostgreSQL 17.10 验证通过。
ila merged commit 7e66fab042 into main 2026-08-10 23:54:28 +08:00
Sign in to join this conversation.