Replan T-003 as hardware-independent Sense skeleton
Harness governance / validate (push) Has been cancelled
Harness governance / validate (push) Has been cancelled
拆分无实机骨架与真实设备集成门禁。
This commit was merged in pull request #14.
This commit is contained in:
+3
-2
@@ -13,8 +13,9 @@
|
||||
|
||||
出口:5 路自动建 path、探活、断线重建;使用 MediaMTX 生产数据面,完整 MiBeeNvr 不替代生产基线。
|
||||
|
||||
- T-003:建立 Sense Go 脚手架、设备台账、ONVIF 与 MediaMTX 薄客户端。
|
||||
- 后续按 T-003 的基线拆分对账、探活、5 路集成与部署任务。
|
||||
- T-003:建立无需真实摄像头即可验证的 Sense Go 脚手架、设备台账、ONVIF port/fake、MediaMTX 生成客户端与薄封装;完成不代表 M0/M1 出口。
|
||||
- T-006:在 T-001 白名单与 T-003 骨架之上完成真实摄像头 5 路自动建 path、探活、断线恢复和 MediaMTX 集成验收。
|
||||
- T-001 暂缓期间可推进 T-003,但 T-006 和 M1 出口继续受真实设备证据阻塞。
|
||||
|
||||
## M2:对账、多租户投影与 16 路全流程
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# 当前实现状态
|
||||
|
||||
> 快照日期:2026-08-03。只记录仓库现实与 blocker;任务实时状态到 Gitea Issue 查看。
|
||||
> 快照日期:2026-08-04。只记录仓库现实与 blocker;任务实时状态到 Gitea Issue 查看。
|
||||
|
||||
## 当前阶段
|
||||
|
||||
- 阶段:M0 摄像头兼容性验证与需求定稿。
|
||||
- 阶段:M0 摄像头兼容性验证尚未完成;已批准并行推进不依赖真实摄像头的 M1 Sense 软件骨架,但不得提前宣称 M0/M1 出口完成。
|
||||
- 生产代码:尚未开始。
|
||||
- 默认容量:16 路;单站点本阶段上限 128 路,必须横向分片。
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
- harness coding 文档、上下文清单、Gitea Issue/PR 模板和治理脚本已接入。
|
||||
- Gitea 已初始化 11 个协作标签;首批 Issue 已建立,实时可领取状态必须从 Gitea 查询,不在本文复制。
|
||||
- T-002 已关闭架构影响型问题:首期 S2 民办寄宿学校、客户侧私有部署、ONVIF/RTSP、NVIDIA 主路径、自研 Bell、Web/H5 与客户侧证据存储等边界已批准。
|
||||
- T-004 的 Sense/Bell 单文件交互原型已获产品确认;T-005 已归档 Claude 原稿并补录缺失评审文档,当前定稿与原始依据分开保存。
|
||||
- `_reference/mibeenvr` 为本地只读参考仓库,已被忽略;只允许 M0 实验与白名单借鉴。
|
||||
|
||||
## 当前可运行命令
|
||||
@@ -38,7 +39,7 @@ python scripts/validate_harness_governance.py
|
||||
|
||||
## 当前 blocker / 待确认
|
||||
|
||||
- 尚未完成 3–5 款候选摄像头的 ONVIF/RTSP 实机矩阵和采购白名单。
|
||||
- T-001 已由项目负责人暂缓,尚未完成 3–5 款候选摄像头的 ONVIF/RTSP 实机矩阵和采购白名单;Issue 在硬件条件具备前移出可领取队列。
|
||||
- S2 真实生产试点的未成年人影像、公共安全视频法规适用性和最终留存政策仍需客户/法务确认,阻塞 M3 上线但不阻塞 M1 实验室骨架。
|
||||
- 人脸方向已延后至 M5 的 S4 成人园区候选试点;必要性/PIP 影响评估、单独同意与替代方式、合法底库来源和删除流程未完成,阻塞人脸能力上线。
|
||||
- 短信/语音具体供应商未选;生产前必须选定两条独立投递路径并验证故障切换。
|
||||
@@ -47,7 +48,7 @@ python scripts/validate_harness_governance.py
|
||||
|
||||
## 下一步
|
||||
|
||||
从 Gitea 的 `status/todo` 工单中由 dispatcher 分配依赖已满足、编号最靠前且写路径不冲突的任务。下一项优先完成 T-001(摄像头兼容性矩阵);T-003 仍需等待 T-001,T-002 已满足。不要仅凭本文宣称领取成功。
|
||||
从 Gitea 的 `status/todo` 工单中由 dispatcher 分配依赖已满足、编号最靠前且写路径不冲突的任务。当前建议领取重构后的 T-003,先完成无实机 Sense 骨架;T-001 恢复后完成兼容性白名单,T-006 再执行真实摄像头 5 路集成验收。不要仅凭本文宣称领取成功。
|
||||
|
||||
## 已知风险
|
||||
|
||||
|
||||
+24
-17
@@ -1,11 +1,11 @@
|
||||
---
|
||||
id: T-003
|
||||
title: 建立 Sense M1 接入骨架
|
||||
title: 建立 Sense M1 无实机接入骨架
|
||||
phase: 1
|
||||
deps: [T-001, T-002]
|
||||
deps: [T-002]
|
||||
status: TODO
|
||||
created: 2026-08-03
|
||||
issue: null
|
||||
issue: 3
|
||||
context_ref: null
|
||||
claim_branch: null
|
||||
work_branch: null
|
||||
@@ -14,6 +14,7 @@ write_paths:
|
||||
- Sense/
|
||||
- docs/03-tech-stack.md
|
||||
- docs/api.md
|
||||
- docs/06-tasks.md
|
||||
- docs/current-state.md
|
||||
- init.ps1
|
||||
- init.sh
|
||||
@@ -21,7 +22,7 @@ write_paths:
|
||||
|
||||
## 问题 / 背景
|
||||
|
||||
当前 `Sense/` 只有占位文件。M1 需要在不继承完整 MiBeeNvr 架构的前提下建立可持续演进的 Go 生产骨架,并正式引入 MediaMTX 数据面。
|
||||
当前 `Sense/` 只有占位文件。M1 需要在不继承完整 MiBeeNvr 架构的前提下建立可持续演进的 Go 生产骨架,并正式引入 MediaMTX 数据面。T-001 的真实摄像头兼容性验证已由项目负责人暂缓,因此本任务只建立可由 fake ONVIF、MediaMTX 假服务和合成 RTSP 源验证的无实机骨架;不得据此宣称摄像头兼容、5 路实机验收、M0 出口或完整 M1 出口已经完成。
|
||||
|
||||
## 关联需求与交互(如适用)
|
||||
|
||||
@@ -31,40 +32,46 @@ write_paths:
|
||||
|
||||
## 方案
|
||||
|
||||
1. 冻结 Go、SQLite 和 MediaMTX 的精确版本,记录许可证与升级策略。
|
||||
2. 建立 `cmd/sense-api` 与 `internal/onvif`、`store`、`mtx`、`reconcile`、`probe` 的最小目录和测试。
|
||||
3. 从 MediaMTX 官方 OpenAPI 生成客户端,手写代码只放薄封装。
|
||||
4. 设备台账先使用 SQLite,但 schema 语义与生产 PostgreSQL `sense` schema 保持一致。
|
||||
5. 跑通 5 路自动建 path、探活和断线重建的可重复集成测试。
|
||||
6. 将真实安装、验证和启动命令同步到标准入口与文档。
|
||||
1. 冻结 Go、SQLite driver、MediaMTX 和 `oapi-codegen` 的精确版本,记录许可证、校验来源、升级策略与退出路线。
|
||||
2. 建立 `cmd/sense-api` 与 `internal/onvif`、`store`、`mtx`、`reconcile`、`probe` 的最小目录、配置边界和测试;入口只绑定可信网络,日志不得泄露凭据或完整流地址。
|
||||
3. 从锁定版本的 MediaMTX 官方 OpenAPI 可重复生成客户端,生成代码与手写薄封装分离;使用假 HTTP 服务验证创建、读取和删除 path 的请求/响应映射。
|
||||
4. 以 port/adapter 隔离 ONVIF,提供确定性的 fake adapter 和脱敏 fixture,验证 profile、stream URI、校时、认证失败和超时的领域映射,但不伪造厂商兼容结论。
|
||||
5. 设备台账先使用 SQLite migration,schema 语义与生产 PostgreSQL `sense` schema 保持一致;建模使用 `modality + capabilities`,配额默认 16、最大 128,并覆盖 17/128/129 边界。
|
||||
6. 建立数据库期望态驱动的最小对账/探活循环,使用 fake ONVIF、MediaMTX 假服务和可选合成 RTSP 源验证幂等、退避、取消与重启恢复;本任务不接真实摄像头,也不实现孤儿删除。
|
||||
7. 将真实安装、生成、验证、构建和启动命令同步到标准入口与文档;后续 T-006 再使用 T-001 白名单设备完成 5 路实机集成验收。
|
||||
|
||||
## 不可变约束
|
||||
|
||||
- 阈值 / 数值边界:验收 5 路;`site.max_video_channels` 默认 16、最大 128,必须测试 17/128/129 边界,不能把 5 或 16 写成架构上限。
|
||||
- 阈值 / 数值边界:本任务不验收真实 5 路;`site.max_video_channels` 默认 16、最大 128,必须测试 17/128/129 边界,不能把 fake 数量、5 或 16 写成架构上限。
|
||||
- 判定式 / 状态转换:数据库是期望态真相源;对账幂等、只收敛不跨系统回滚;配额不可用不影响已有流。
|
||||
- 安全边界:不提交摄像头凭据;调试/MediaMTX 管理端口不暴露到非可信网络;孤儿删除暂不实现或必须有 10% 安全闸。
|
||||
- 既有契约:M1 只动 Sense,不创建 Brain/Bell 业务代码;完整 MiBeeNvr 不进入依赖;MediaMTX 独立二进制。
|
||||
|
||||
## 验收要点
|
||||
|
||||
- 任务相关验证:`go test ./...`、`go vet ./...`、5 路集成 smoke、断线恢复测试,以及三条 harness 治理命令。
|
||||
- 任务相关验证:`go test ./...`、`go vet ./...`、SQLite migration/配额边界、ONVIF fake、MediaMTX 假服务、对账幂等与重启恢复测试,以及三条 harness 治理命令。
|
||||
- 完整门禁:公共 API、schema 或生成客户端变化时运行全部 Sense 测试和契约/迁移检查。
|
||||
- 人工 / 设备验收:必需;使用 T-001 白名单中至少一款设备验证 5 路流程,记录 MediaMTX 与探活证据。
|
||||
- 构建产物:Sense 二进制/镜像路径、生成命令和哈希在实施任务中冻结;本任务开工前补齐。
|
||||
- 人工 / 设备验收:设备验收不适用且不得用模拟结果替代;维护者必须人工核对生成命令、版本/许可证与本地启动说明。真实摄像头和 5 路验收由 T-006 承担。
|
||||
- 构建产物:冻结 Sense 二进制路径、MediaMTX 获取/校验方式、生成命令和版本信息;是否交付镜像若未在技术评审确定则不得自行扩展。
|
||||
|
||||
## 边界(不改什么)
|
||||
|
||||
不开发 Brain、Bell、正式管理端、规则引擎、人脸识别、64/128 路容量实现;不修改 `_reference/`。
|
||||
不开发 Brain、Bell、正式管理端、规则引擎、人脸识别、真实摄像头兼容性、5 路实机验收或 64/128 路容量实现;不修改 `_reference/`,不把 MiBeeNvr 引入生产依赖。
|
||||
|
||||
## 协作约束
|
||||
|
||||
- 责任 Agent:由 dispatcher 分配。
|
||||
- 唯一写入者:同责任 Agent。
|
||||
- 委派:默认不启用;需要只读调研时结论先回填本文。
|
||||
- Gitea:已预建候选 Issue #3,但依赖 T-001/T-002 均 DONE 前不回填映射、不加 `status/todo`、不得领取;进入可领取队列时再记录 Issue、`context_ref`、claim 和工作分支。
|
||||
- Gitea:主 Issue 为 #3;本次重构合入默认分支并读回后才加入 `status/todo`。领取时再记录 `context_ref`、claim 和工作分支。
|
||||
|
||||
任何新增写路径先由 dispatcher 与活跃任务做前缀冲突检查。
|
||||
|
||||
## 执行记录
|
||||
|
||||
尚未领取,依赖未完成。
|
||||
### 2026-08-04 无实机拆分
|
||||
|
||||
- 项目负责人决定暂缓 T-001,并批准继续推进 Sense 离线软件骨架。T-003 的开工依赖调整为仅依赖已完成的 T-002,但真实摄像头验证仍是后续集成门禁。
|
||||
- 本任务收敛为 fake ONVIF、MediaMTX 假服务、SQLite 和可选合成 RTSP 可验证的生产骨架;不得用 mock 测试宣称 M0 或 M1 里程碑完成。
|
||||
- 真实设备、5 路自动建 path、探活、断线恢复和 MediaMTX 证据拆到 T-006,依赖 T-001 与 T-003。
|
||||
- 任务尚未领取;Issue #3 在本次规格合入默认分支前不进入 `status/todo`。
|
||||
|
||||
Reference in New Issue
Block a user