Files
QiuSW 9567838045
Harness governance / validate (push) Has been cancelled
Harness governance / validate (pull_request) Has been cancelled
feat(sense): complete T-006 five-stream integration
2026-08-07 16:33:35 +08:00

8.2 KiB
Raw Permalink Blame History

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-006 完成 Sense 单实机与五路混合源集成验收 1
T-001
T-003
DONE 2026-08-04 16 94ae2f0048 claims/T-006 agent/codex/T-006
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 完成五路混合源验收

  • 实现标准 ONVIF SOAP 1.2 / WS-Security adapter、env:// 凭据解析、HTTP/RTSP router、NAT RTSP 重写,以及默认关闭的 RTSP query 兼容开关;凭据只进入进程环境和内存 URI,不写 SQLite 或证据。
  • 增加 sense-lab 播种/脱敏状态工具、真实 RTSP 故障代理、4 路独立 FFmpeg publisher fixture 和一键集成脚本;MediaMTX runtime path 丢失会使观察代失效并自动触发重新对账。
  • 正式使用 1 台 T-001 准入实机和 4 个独立合成 publisher:5 路初始收敛 8.2 s;真实网络恢复 5.1 s、单 publisher 恢复 5.1 s、Sense 重启恢复 0.0 s、MediaMTX 重启恢复 2.1 s,各阶段 unconverged = 0。
  • 连续观察 1806.6 s、采样 180 次,maximum_unconverged = 0、final_unconverged = 0;自动配置 path 数为 5。结果、版本、失败记录和限制见 docs/research/sense-5-stream-integration.md。
  • 该结论仅关闭 M1 单实机混合源 smoke;五条独立真实上游、真实多设备故障隔离与生产 SLA 仍由 T-007 验收,16/64/128 路容量不在本任务结论内。

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 四类恢复验证。