feat(sense): establish M1 offline intake skeleton
Harness governance / validate (push) Has been cancelled
Harness governance / validate (pull_request) Has been cancelled

This commit is contained in:
QiuSW
2026-08-04 15:45:50 +08:00
parent bafd8d983e
commit 5208891e02
36 changed files with 17728 additions and 22 deletions
+14 -5
View File
@@ -5,12 +5,15 @@
## 当前阶段
- 阶段:M0 摄像头兼容性验证尚未完成;已批准并行推进不依赖真实摄像头的 M1 Sense 软件骨架,但不得提前宣称 M0/M1 出口完成。
- 生产代码:尚未开始。
- 生产代码:Sense M1 无实机骨架已建立,包含可构建进程、SQLite 台账、ONVIF port/fake、MediaMTX 生成客户端、最小对账与探活;真实 ONVIF adapter 和五路设备验收仍未开始。
- 默认容量:16 路;单站点本阶段上限 128 路,必须横向分片。
## 仓库现实
- `Sense/`、`Brain/`、`Bell/` 只有目录占位。
- `Sense/` 已有 Go module 与 `cmd/sense-api`;`Brain/`、`Bell/` 仍只有目录占位。
- Sense 设备模型使用 `modality + capabilities`,SQLite 执行 v1 migration;视频配额默认 16、允许 1~128,17/128/129、新增/启用和“降低配额不关闭已有流”均有测试。
- MediaMTX 固定为独立二进制 `v1.19.3`,官方 OpenAPI 已按 SHA-256 vendoring,并由固定 `oapi-codegen v2.8.0` 生成客户端;手写薄封装有 create/read/delete、幂等 ensure 与探活假 HTTP 测试。
- T-003 对账进度与指数退避持久化,覆盖取消和 SQLite 重启恢复;当前不枚举/删除孤儿,也不包含真实摄像头 adapter。
- `docs/raw/01`~`08` 已记录需求、分析、方案、客户场景、事件比对和三系统职责。
- `docs/raw/contracts/event-v0.1.schema.json` 已冻结,并有多份示例与语义说明。
- harness coding 文档、上下文清单、Gitea Issue/PR 模板和治理脚本已接入。
@@ -27,6 +30,12 @@ Windows:
./init.ps1
```
该入口会下载锁定 Go module,运行三条治理验证、MediaMTX 客户端生成漂移检查、`go test`、`go vet` 和 `go build`。只启动 Sense:
```powershell
go -C Sense run ./cmd/sense-api
```
跨平台直接验证:
```powershell
@@ -35,7 +44,7 @@ python -m unittest discover -s tests -p "test_*.py"
python scripts/validate_harness_governance.py
```
当前没有 Go/Python 业务依赖安装、生产服务启动或端到端命令。M1 脚手架创建时必须同步更新标准入口。
Sense 默认监听 `127.0.0.1:8080`,提供 `/healthz` 与 `/readyz` 运维探针;它们不代表摄像头或 M1 里程碑健康。MediaMTX 获取、校验和独立启动方法见 `Sense/README.md`。
## 当前 blocker / 待确认
@@ -43,12 +52,12 @@ python scripts/validate_harness_governance.py
- S2 真实生产试点的未成年人影像、公共安全视频法规适用性和最终留存政策仍需客户/法务确认,阻塞 M3 上线但不阻塞 M1 实验室骨架。
- 人脸方向已延后至 M5 的 S4 成人园区候选试点;必要性/PIP 影响评估、单独同意与替代方式、合法底库来源和删除流程未完成,阻塞人脸能力上线。
- 短信/语音具体供应商未选;生产前必须选定两条独立投递路径并验证故障切换。
- Go/Python/PostgreSQL/MediaMTX/Savant 的精确版本、目标硬件和 Bell 前端栈尚未冻结。
- Python/PostgreSQL/Savant 的精确版本、目标硬件和 Bell 前端栈尚未冻结;Sense M1 的 Go、SQLite driver、MediaMTX、生成器及生成运行时版本已在 T-003 冻结。
- 代码知识图谱在无业务代码阶段可能为空;工具不可用时使用 `rg` 处理文档与配置。
## 下一步
从 Gitea 的 `status/todo` 工单中由 dispatcher 分配依赖已满足、编号最靠前且写路径不冲突的任务。当前建议领取重构后的 T-003,先完成无实机 Sense 骨架;T-001 恢复后完成兼容性白名单,T-006 再执行真实摄像头 5 路集成验收。不要仅凭本文宣称领取成功。
T-003 合入后仍不能宣称 M0/M1 出口完成。恢复 T-001 后先形成摄像头兼容性白名单,再领取依赖 T-001 与 T-003 的 T-006,完成真实摄像头 5 路自动建 path、探活、断线恢复和 MediaMTX 证据。实时领取状态仍以 Gitea 为准。
## 已知风险