92 lines
7.0 KiB
Markdown
92 lines
7.0 KiB
Markdown
---
|
||
id: T-006
|
||
title: 完成 Sense 单实机与五路混合源集成验收
|
||
phase: 1
|
||
deps: [T-001, T-003]
|
||
status: DOING
|
||
created: 2026-08-04
|
||
issue: 16
|
||
context_ref: 94ae2f00488bde184a9db4e5437232dfceb5f1bb
|
||
claim_branch: claims/T-006
|
||
work_branch: agent/codex/T-006
|
||
write_paths:
|
||
- docs/tasks/T-006.md
|
||
- Sense/
|
||
- docs/research/sense-5-stream-integration.md
|
||
- docs/current-state.md
|
||
---
|
||
|
||
## 问题 / 背景
|
||
|
||
T-003 只用 fake ONVIF 和 MediaMTX 假服务建立无实机骨架,不能证明指定海康实机基线可用或真实媒体路径能自动收敛。受当前硬件预算限制,M1 实验室出口改为使用 T-001 已批准的 1 台 Hikvision IP Camera 作为真实 ONVIF/RTSP 上游,再用至少 4 条可独立启停的合成 RTSP 上游补足 5 路,验证控制面、多路调和、探活和恢复。该结果是开发集成 smoke,不是五台真实设备或生产 SLA 证据。
|
||
|
||
## 关联需求与交互(如适用)
|
||
|
||
- 用户故事:US-001、US-002、US-007。
|
||
- 交互清单:无正式 UI;使用 Sense API、日志、指标和版本化实验记录验收。
|
||
- 前置产物:T-001 的 `docs/research/camera-compatibility.md` 与 T-003 的 Sense/MediaMTX 骨架、版本和启动命令。
|
||
|
||
## 方案
|
||
|
||
1. 使用 T-001 指定准入基线的 1 台真实海康摄像头,记录型号、硬件版本、固件、网络拓扑和主/子码流,但不记录密码或含凭据的完整 URI。
|
||
2. 使用 FFmpeg、GStreamer 或等价离线工具建立至少 4 条合成 RTSP 上游;每条必须有不同 source/path,并可单独启动、停止和注入故障。同一真实 RTSP URI 的重复连接、同一编码上游的 fan-out 或同一合成 publisher 的重复映射不增加独立源计数。
|
||
3. 通过 Sense 设备台账写入期望态,验证真实设备的 ONVIF profile/stream URI 映射,以及全部 5 路的 MediaMTX path 自动创建和健康状态;不允许人工修改 MediaMTX 配置冒充自动化成功。
|
||
4. 验证四类恢复:真实摄像头/网络短时离线、单条合成 publisher 停止/恢复、Sense 进程重启、MediaMTX 进程重启。每类都记录探活/退避期限、实际恢复时间、对账结果和失败证据。
|
||
5. 验证 5 路并行运行期间 path、reader/upstream、探活和数据库期望态一致;连续观察窗口至少 30 分钟,只作为 M1 实验室集成 smoke,不外推真实多设备故障隔离、16/64/128 路容量或生产 SLA。
|
||
6. 将可重复步骤、版本、合成源生成命令、脱敏结果、限制和结论写入 `docs/research/sense-5-stream-integration.md`;失败通道保留记录,不通过删除样本美化结果。
|
||
|
||
## 不可变约束
|
||
|
||
- 阈值 / 数值边界:至少 5 条同时在线的开发上游,其中 1 条来自 T-001 真实准入样机、至少 4 条为可独立故障注入的合成 RTSP 源,连续观察至少 30 分钟;重复上游不增加计数。默认 16、最大 128 的配额语义不得改变。本任务不验收真实 5 机或 16/64/128 路容量。
|
||
- 判定式 / 状态转换:数据库仍是期望态真相源;四类恢复均须在 T-003 冻结的探活/退避配置内自动重新收敛,`unconverged = 0`,不得靠人工改配置或重建数据库通过。
|
||
- 安全边界:只使用自购样机、无人物测试图案和隔离网络;证据中不得出现密码、完整 RTSP/ONVIF 凭据、可复用 token、真实客户地址或人物画面。
|
||
- 既有契约:MediaMTX 保持独立二进制,MiBeeNvr 不进入生产依赖;不得为通过某一厂商测试把 5、16 或厂商名称写死在业务逻辑中。
|
||
|
||
## 验收要点
|
||
|
||
- 任务相关验证:执行 T-003 冻结的全部 Sense 单测、vet、migration/契约检查;完成 1 实机 + 4 合成源的 5 路自动 path、健康、30 分钟观察和四类恢复矩阵;运行三条 harness 治理命令。
|
||
- 完整门禁:若为实机差异修改 ONVIF、MediaMTX、store、reconcile、probe 或公共 API,必须重跑全部 Sense 测试和完整五路混合源矩阵。
|
||
- 人工 / 设备验收:必需。实施/硬件负责人核对真实设备身份/固件、4 条合成源的独立启停命令、网络条件、原始时间线与脱敏证据;任何一条未通过则任务不得标记 `DONE`。
|
||
- 构建产物:记录实际 Sense 与 MediaMTX 二进制版本/哈希、配置模板、启动命令和证据文档;不提交摄像头配置秘密或媒体样本。
|
||
|
||
## 边界(不改什么)
|
||
|
||
不修改 Brain、Bell、规则/告警业务、正式管理 UI,不做真实 5 机或 16/64/128 路容量验收,不重新裁决 T-001 指定型号准入基线,不把失败源从证据中删除。
|
||
|
||
## 协作约束
|
||
|
||
- 责任 Agent:由 dispatcher 分配。
|
||
- 唯一写入者:同责任 Agent。
|
||
- 委派:默认不启用;现场人员可执行设备操作,但任务所有者必须核验并版本化脱敏证据。
|
||
- Gitea:主 Issue 为 #16;T-001、T-003 均为 `DONE` 前不得添加 `status/todo` 或领取。
|
||
|
||
任何新增写路径先由 dispatcher 与活跃任务做前缀冲突检查。
|
||
|
||
## 执行记录
|
||
|
||
### 2026-08-07 领取任务
|
||
|
||
- dispatcher `ila` 将任务分配给 `codex`;`context_ref` 为 `94ae2f00488bde184a9db4e5437232dfceb5f1bb`,claim 为 `claims/T-006`,工作分支为 `agent/codex/T-006`。
|
||
- 接受既有写路径:`docs/tasks/T-006.md`、`Sense/`、`docs/research/sense-5-stream-integration.md`、`docs/current-state.md`。
|
||
|
||
### 2026-08-04 任务定义
|
||
|
||
- 项目负责人批准将 T-003 拆成无实机软件骨架,并由本任务保留真实摄像头和 5 路 M1 集成门禁。
|
||
- 当前 T-001 暂缓、T-003 尚未领取,因此 T-006 仅建立规格,不进入可领取队列。
|
||
|
||
### 2026-08-04 上游准入范围更新(已由下一节替代)
|
||
|
||
- T-001 已按项目负责人决定收敛为一个指定型号/固件基线的一台样机准入;T-006 可以使用同一准入型号的设备,不再要求多个品牌。
|
||
- T-006 的 5 路门禁不随之降低:必须是 5 条独立真实上游,通常需要 5 台设备;同一摄像头或同一 RTSP URI 的复制连接不能计数。
|
||
|
||
### 2026-08-04 单实机开发策略
|
||
|
||
- 项目负责人确认无预算购买更多摄像头,后续本地开发统一使用现有 1 台 Hikvision IP Camera;精确型号/硬件/固件仍由 T-001 冻结,代码不得写死品牌或私有地址。
|
||
- T-006 改为 1 路真实准入样机 + 至少 4 路可独立启停的合成 RTSP 源,验证五路软件闭环;原“五条独立真实上游”现场证据移交 T-007,不再阻塞日常开发或 M1 实验室出口。
|
||
- 该变更替代上一节“需要五台真实设备”的约束,但不允许把同一摄像头/同一 RTSP URI 重复拉流冒充多个独立源。
|
||
|
||
### 2026-08-05 前置依赖解除
|
||
|
||
- T-001 已完成指定海康型号准入,T-003 已完成 Sense 无实机骨架;本任务的代码和设备依赖均已满足,可由 dispatcher 将 Gitea Issue #16 从 `status/waiting` 切换为 `status/todo`。
|
||
- T-001 的真实网络断开恢复由项目负责人豁免,没有产生三次原始恢复时间线;本任务不得继承该豁免,仍须按本任务方案独立完成真实摄像头/网络、合成 publisher、Sense 和 MediaMTX 四类恢复验证。
|