docs: 完成任务 #25 待验收归档

ila
2026-08-12 17:45:13 +08:00
parent 0f3da06cbe
commit 4deba6e928
@@ -1,9 +1,9 @@
# 25 MediaMTX进程与状态对账
# 25 MediaMTX 进程与状态对账
- 类型:需求 / 缺陷 / 重构
- 所属 Epic:#
- 所属 MVP / 版本:#
- 状态:待验收 / 已完成
- 类型:需求
- 所属 Epic:#7
- 所属 MVP / 版本:#8
- 状态:待验收
- 日期:2026-08-12
- Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/25
- Wiki 页面:Task-25-MediaMTX进程与状态对账
@@ -11,32 +11,41 @@
## 背景与目标
<!-- 原来有什么问题,这次达到什么结果。 -->
让 Sense 管理外部 MediaMTX 的期望配置、进程和状态收敛,而不嵌入媒体内核。
## 最终方案
<!-- 说明实际实现。与建单方案不同之处必须写清原因。 -->
实现只管理自身进程句柄的 Supervisor、最多三次重启边界、localhost v3 Control API、媒体路径期望/实际状态、reader 数和对账审计。源秘密只在本机控制请求中瞬时组装,不写仓库、数据库、日志或 Sense 响应。
与已确认方案一致。为使用 #21 的模块注册和项目内窄端口,实施前已在工单评论中记录精确集成 write_path;未修改 contracts、Brain、Bell 或根级部署。
## 修改文件
- `<文件>`:<改动说明>
- Sense/server/app/sense/:本工单后端领域、适配器、服务、HTTP 与测试。
- Sense/server/cmd/sense/modules_*.go:独立模块注册文件。
- Sense/server/database/migrations/:本工单需要的 PostgreSQL 迁移(如适用)。
- Sense/ui/src/:本工单 API、页面、路由及明确需要的局部业务组件。
- Sense/tests/、Sense/testdata/:无生产数据、无真实秘密的验收说明与夹具。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| | 通过 / 未通过 |
控制 API 方法、瞬时凭据、进程显式启动、正常/启动失败/控制失败/停止 fake 测试和 race 测试通过。
工单保持 open / 待验收,未代替用户执行浏览器、真实设备或部署环境验收。
## 测试
- 执行命令:`<命令>`
- 结果:
- **未验证部分**:<!-- 必填;没有就写“无”。 -->
## 遗留问题
<!-- 没有就删除本节。 -->
- Go 1.26.5 go vet ./...:通过。
- Go 1.26.5 go test -race ./...:全部通过。
- Go 1.26.5 go test -count=1 ./...:全部通过。
- Go 1.26.5 go build ./...:通过。
- corepack pnpm@9.15.1 install --frozen-lockfile:通过。
- corepack pnpm@9.15.1 lint --quiet:通过。
- corepack pnpm@9.15.1 build:通过;仅有 Element Plus vendor bundle 体积建议警告。
- Sense 独立 smoke、Harness 严格检查和 31 项 Harness 测试:通过。
- **未验证部分**:本机无 MediaMTX 二进制和实验室流,未验证真实进程启动、崩溃恢复、拉流、reader 与部署版本兼容。
## 相关提交
- `<提交哈希>` <提交说明>
- $(System.Collections.Hashtable.commit) 本工单实现提交
- 5177861 docs: document Sense MVP operations (#22-#27)