Files
yovision/docs/tasks/T-003.md
T
QiuSW a5f4cbed6f
Harness governance / validate (push) Has been cancelled
docs: adopt harness coding workflow
2026-08-03 22:18:02 +08:00

3.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
T-001
T-002
TODO 2026-08-03 null null null null
docs/tasks/T-003.md
Sense/
docs/03-tech-stack.md
docs/api.md
docs/current-state.md
init.ps1
init.sh

问题 / 背景

当前 Sense/ 只有占位文件。M1 需要在不继承完整 MiBeeNvr 架构的前提下建立可持续演进的 Go 生产骨架,并正式引入 MediaMTX 数据面。

关联需求与交互(如适用)

  • 用户故事:US-001、US-002。
  • 交互清单:本任务以 API/脚本为主,不实现正式 Web UI。
  • 架构:docs/04-architecture.md;详细目录见 docs/raw/08-三系统职责划分.md。

方案

  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. 将真实安装、验证和启动命令同步到标准入口与文档。

不可变约束

  • 阈值 / 数值边界:验收 5 路;site.max_video_channels 默认 16、最大 128,必须测试 17/128/129 边界,不能把 5 或 16 写成架构上限。
  • 判定式 / 状态转换:数据库是期望态真相源;对账幂等、只收敛不跨系统回滚;配额不可用不影响已有流。
  • 安全边界:不提交摄像头凭据;调试/MediaMTX 管理端口不暴露到非可信网络;孤儿删除暂不实现或必须有 10% 安全闸。
  • 既有契约:M1 只动 Sense,不创建 Brain/Bell 业务代码;完整 MiBeeNvr 不进入依赖;MediaMTX 独立二进制。

验收要点

  • 任务相关验证:go test ./...、go vet ./...、5 路集成 smoke、断线恢复测试,以及三条 harness 治理命令。
  • 完整门禁:公共 API、schema 或生成客户端变化时运行全部 Sense 测试和契约/迁移检查。
  • 人工 / 设备验收:必需;使用 T-001 白名单中至少一款设备验证 5 路流程,记录 MediaMTX 与探活证据。
  • 构建产物:Sense 二进制/镜像路径、生成命令和哈希在实施任务中冻结;本任务开工前补齐。

边界(不改什么)

不开发 Brain、Bell、正式管理端、规则引擎、人脸识别、64/128 路容量实现;不修改 _reference/。

协作约束

  • 责任 Agent:由 dispatcher 分配。
  • 唯一写入者:同责任 Agent。
  • 委派:默认不启用;需要只读调研时结论先回填本文。
  • Gitea:依赖 T-001/T-002 均 DONE 后才可领取;领取时记录 context_ref、claim 和工作分支。

任何新增写路径先由 dispatcher 与活跃任务做前缀冲突检查。

执行记录

尚未领取,依赖未完成。