5.0 KiB
5.0 KiB
id, title, phase, deps, status, created, issue, context_ref, claim_branch, work_branch, write_paths
| id | title | phase | deps | status | created | issue | context_ref | claim_branch | work_branch | write_paths | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T-003 | 建立 Sense M1 无实机接入骨架 | 1 |
|
TODO | 2026-08-03 | 3 | null | null | null |
|
问题 / 背景
当前 Sense/ 只有占位文件。M1 需要在不继承完整 MiBeeNvr 架构的前提下建立可持续演进的 Go 生产骨架,并正式引入 MediaMTX 数据面。T-001 的真实摄像头兼容性验证已由项目负责人暂缓,因此本任务只建立可由 fake ONVIF、MediaMTX 假服务和合成 RTSP 源验证的无实机骨架;不得据此宣称摄像头兼容、5 路实机验收、M0 出口或完整 M1 出口已经完成。
关联需求与交互(如适用)
- 用户故事:US-001、US-002。
- 交互清单:本任务以 API/脚本为主,不实现正式 Web UI。
- 架构:
docs/04-architecture.md;详细目录见docs/raw/08-三系统职责划分.md。
方案
- 冻结 Go、SQLite driver、MediaMTX 和
oapi-codegen的精确版本,记录许可证、校验来源、升级策略与退出路线。 - 建立
cmd/sense-api与internal/onvif、store、mtx、reconcile、probe的最小目录、配置边界和测试;入口只绑定可信网络,日志不得泄露凭据或完整流地址。 - 从锁定版本的 MediaMTX 官方 OpenAPI 可重复生成客户端,生成代码与手写薄封装分离;使用假 HTTP 服务验证创建、读取和删除 path 的请求/响应映射。
- 以 port/adapter 隔离 ONVIF,提供确定性的 fake adapter 和脱敏 fixture,验证 profile、stream URI、校时、认证失败和超时的领域映射,但不伪造厂商兼容结论。
- 设备台账先使用 SQLite migration,schema 语义与生产 PostgreSQL
senseschema 保持一致;建模使用modality + capabilities,配额默认 16、最大 128,并覆盖 17/128/129 边界。 - 建立数据库期望态驱动的最小对账/探活循环,使用 fake ONVIF、MediaMTX 假服务和可选合成 RTSP 源验证幂等、退避、取消与重启恢复;本任务不接真实摄像头,也不实现孤儿删除。
- 将真实安装、生成、验证、构建和启动命令同步到标准入口与文档;后续 T-006 再使用 T-001 白名单设备完成 5 路实机集成验收。
不可变约束
- 阈值 / 数值边界:本任务不验收真实 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 ./...、SQLite migration/配额边界、ONVIF fake、MediaMTX 假服务、对账幂等与重启恢复测试,以及三条 harness 治理命令。 - 完整门禁:公共 API、schema 或生成客户端变化时运行全部 Sense 测试和契约/迁移检查。
- 人工 / 设备验收:设备验收不适用且不得用模拟结果替代;维护者必须人工核对生成命令、版本/许可证与本地启动说明。真实摄像头和 5 路验收由 T-006 承担。
- 构建产物:冻结 Sense 二进制路径、MediaMTX 获取/校验方式、生成命令和版本信息;是否交付镜像若未在技术评审确定则不得自行扩展。
边界(不改什么)
不开发 Brain、Bell、正式管理端、规则引擎、人脸识别、真实摄像头兼容性、5 路实机验收或 64/128 路容量实现;不修改 _reference/,不把 MiBeeNvr 引入生产依赖。
协作约束
- 责任 Agent:由 dispatcher 分配。
- 唯一写入者:同责任 Agent。
- 委派:默认不启用;需要只读调研时结论先回填本文。
- 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。