增量接入 DevHarness 管理 MediaMTX 定制开发 #1

Closed
opened 2026-08-28 10:04:25 +08:00 by ila · 3 comments
Owner

原始需求

  • 来源:Codex 对话
  • 提出时间:2026-08-28(Asia/Shanghai)
  • 用户确认:按“轻量接入、保留 MediaMTX 上游文档与 CI、只管理定制差异”的建议执行。

目标

把 DevHarness 以“已有项目增量接入”方式用于 MediaMTX 定制版,管理后续原生轻量管理页面及相关开发任务。

非目标

  • 不覆盖或重写 MediaMTX 官方 docs/。
  • 不替换 MediaMTX 已有 GitHub Actions、测试、发布流程。
  • 不复制 DevHarness 的历史工单或 docs/task/。
  • 本工单不实现 RTSP 管理页面产品功能。
  • 不提交摄像头地址、用户名、密码或其他凭据。

已确认方案

  1. 固定 DevHarness 来源与完整基线提交。
  2. 增量加入项目专用 Agent 规则、Gitea 工单模板和最小 Harness 工具。
  3. 保留 MediaMTX 官方文档为上游产品文档;定制版长期文档使用隔离命名空间,避免成为官网文档的一部分或第二事实来源。
  4. 继续使用 MediaMTX 原有 Go 测试和 CI;只为 Harness 自身增加最小结构测试,不接管 release。
  5. Gitea 工单保存单次任务证据,Wiki 保存定制版长期事实。

当前事实与阻塞

  • DevHarness 来源:https://git.ilapage.cn/OPC/dev_harness
  • 拟采用基线:4bbacf4d7fb265984396bb5589c544105043fa0b
  • 目标仓库:OPC/mediamtx,目前为空且 Wiki 尚未初始化。
  • 本地 D:\github\mediamtx 于 2026-08-28 10:01 被重新初始化为无提交 Git 仓库,全部源码未跟踪。
  • 先前可见的 .github/ 目录当前缺失,不能判断是否为负责人有意移除。
  • ip_camera.env 含摄像头连接及凭据字段,必须保持本地且加入忽略规则,禁止进入 Git、工单和 Wiki。
  • 在确认或恢复可信的 MediaMTX 上游 Git 基线前,不建立引导提交、不推送源码、不宣称已有历史已保留。

前置工单

无。

是否允许并行

不允许进入正式文件接入;必须先确认本地 Git 基线和缺失的 .github/。只读盘点和工单记录可继续。

风险

  • 用空仓库直接提交现有源码会丢失 MediaMTX 上游历史和可追溯基线。
  • 把 DevHarness 镜像直接写入官方 docs/ 可能污染官网文档和触发文档顺序检查。
  • 提交 ip_camera.env 会泄露设备凭据。
  • 覆盖现有 CI 会增加上游合并和发布风险。

回退

接入拆分为独立小提交;回退只移除本次新增的 Harness 规则、模板、工具和定制文档映射,不改动 MediaMTX 产品代码、官方文档或上游历史。

验收标准

  • MediaMTX 上游提交基线可复现且历史得到保留。
  • ip_camera.env 被明确忽略且未进入版本控制。
  • 官方 docs/ 与原有 CI 未被覆盖。
  • 项目专用规则清楚说明上游边界、定制范围、安全和验证方式。
  • Gitea Wiki 的核心定制页面已创建、回读并取得 revision。
  • Harness 结构检查和单元测试通过。
  • MediaMTX 现有相关检查未退化;未执行项有明确记录。

文档影响

会新增定制版项目档案、开发工作流、架构边界和本地验证说明;不改写 MediaMTX 官方协议/使用文档。

## 原始需求 - 来源:Codex 对话 - 提出时间:2026-08-28(Asia/Shanghai) - 用户确认:按“轻量接入、保留 MediaMTX 上游文档与 CI、只管理定制差异”的建议执行。 ## 目标 把 DevHarness 以“已有项目增量接入”方式用于 MediaMTX 定制版,管理后续原生轻量管理页面及相关开发任务。 ## 非目标 - 不覆盖或重写 MediaMTX 官方 `docs/`。 - 不替换 MediaMTX 已有 GitHub Actions、测试、发布流程。 - 不复制 DevHarness 的历史工单或 `docs/task/`。 - 本工单不实现 RTSP 管理页面产品功能。 - 不提交摄像头地址、用户名、密码或其他凭据。 ## 已确认方案 1. 固定 DevHarness 来源与完整基线提交。 2. 增量加入项目专用 Agent 规则、Gitea 工单模板和最小 Harness 工具。 3. 保留 MediaMTX 官方文档为上游产品文档;定制版长期文档使用隔离命名空间,避免成为官网文档的一部分或第二事实来源。 4. 继续使用 MediaMTX 原有 Go 测试和 CI;只为 Harness 自身增加最小结构测试,不接管 release。 5. Gitea 工单保存单次任务证据,Wiki 保存定制版长期事实。 ## 当前事实与阻塞 - DevHarness 来源:`https://git.ilapage.cn/OPC/dev_harness` - 拟采用基线:`4bbacf4d7fb265984396bb5589c544105043fa0b` - 目标仓库:`OPC/mediamtx`,目前为空且 Wiki 尚未初始化。 - 本地 `D:\github\mediamtx` 于 2026-08-28 10:01 被重新初始化为无提交 Git 仓库,全部源码未跟踪。 - 先前可见的 `.github/` 目录当前缺失,不能判断是否为负责人有意移除。 - `ip_camera.env` 含摄像头连接及凭据字段,必须保持本地且加入忽略规则,禁止进入 Git、工单和 Wiki。 - 在确认或恢复可信的 MediaMTX 上游 Git 基线前,不建立引导提交、不推送源码、不宣称已有历史已保留。 ## 前置工单 无。 ## 是否允许并行 不允许进入正式文件接入;必须先确认本地 Git 基线和缺失的 `.github/`。只读盘点和工单记录可继续。 ## 风险 - 用空仓库直接提交现有源码会丢失 MediaMTX 上游历史和可追溯基线。 - 把 DevHarness 镜像直接写入官方 `docs/` 可能污染官网文档和触发文档顺序检查。 - 提交 `ip_camera.env` 会泄露设备凭据。 - 覆盖现有 CI 会增加上游合并和发布风险。 ## 回退 接入拆分为独立小提交;回退只移除本次新增的 Harness 规则、模板、工具和定制文档映射,不改动 MediaMTX 产品代码、官方文档或上游历史。 ## 验收标准 - MediaMTX 上游提交基线可复现且历史得到保留。 - `ip_camera.env` 被明确忽略且未进入版本控制。 - 官方 `docs/` 与原有 CI 未被覆盖。 - 项目专用规则清楚说明上游边界、定制范围、安全和验证方式。 - Gitea Wiki 的核心定制页面已创建、回读并取得 revision。 - Harness 结构检查和单元测试通过。 - MediaMTX 现有相关检查未退化;未执行项有明确记录。 ## 文档影响 会新增定制版项目档案、开发工作流、架构边界和本地验证说明;不改写 MediaMTX 官方协议/使用文档。
Author
Owner

状态:进行中。

已确认并恢复可信上游 Git 基线 2328e51a219729e0afc875a0fbd68c34db197bbf,工作树未被覆盖;现有 .github/ 删除继续保留为无关未提交改动。已创建并回读 8 个定制 Wiki 页面。正在完成最小 Harness、本地镜像和验证。ip_camera.env 仅核对字段名,未读取或记录任何值,并已纳入忽略规则。

状态:进行中。 已确认并恢复可信上游 Git 基线 `2328e51a219729e0afc875a0fbd68c34db197bbf`,工作树未被覆盖;现有 `.github/` 删除继续保留为无关未提交改动。已创建并回读 8 个定制 Wiki 页面。正在完成最小 Harness、本地镜像和验证。`ip_camera.env` 仅核对字段名,未读取或记录任何值,并已纳入忽略规则。
Author
Owner

最终证据(待验收)

最终差异

  • 恢复并固定 MediaMTX 上游基线:2328e51a219729e0afc875a0fbd68c34db197bbf。
  • 增加项目专用 AGENTS.md、CLAUDE.md 和 Gitea Epic/MVP/单元任务模板。
  • 增加最小 Harness:check、sync、sync --check、sync --verify。
  • 创建 8 个定制版 Wiki 页面,并单向镜像到 docs/maintainer/。
  • 保留 MediaMTX 官方 docs/、上游代码、CI 和发布结构,不由 Harness 覆盖。
  • .gitignore 已加入 /ip_camera.env 与 Harness Python 缓存;摄像头凭据文件未提交。
  • 已配置 origin 为 OPC Gitea,upstream 为 MediaMTX 官方 GitHub。

验证

  • python dev_scripts/harness.py check --strict:通过。
  • python -m unittest discover -s tests -v:4 项通过。
  • go test -tags enable_linters ./internal/linters/docsorder:通过。
  • python dev_scripts/harness.py sync --check:8 个 Wiki 镜像全部与线上 revision 一致。
  • Gitea main 已回读,指向本次提交。

未运行 go test ./...:本工单未修改 Go 产品代码;使用文档顺序 linter 验证新增文档目录不破坏上游文档规则。

提交与推送

  • ca667251d2b707097c0fadd13521f194a3181630 chore: adopt DevHarness workflow (#1)
  • 已推送到 OPC/mediamtx:main。

保留的无关工作区改动

以下文件在本工单开始前已经从工作区缺失,保持为未提交删除,未进入本次提交:

  • .github/DISCUSSION_TEMPLATE/questions.yml
  • .github/ISSUE_TEMPLATE/*
  • .github/dependabot.yml
  • .github/workflows/*

ip_camera.env 仍留在本地但已被忽略。

文档影响

长期事实已写入并回读:Home、Project-Profile、Development-Workflow、Architecture-and-Code-Map、Product-Requirements-Overview、Local-Development-and-Verification、Common-Changes、Troubleshooting。

状态:待验收。

## 最终证据(待验收) ### 最终差异 - 恢复并固定 MediaMTX 上游基线:`2328e51a219729e0afc875a0fbd68c34db197bbf`。 - 增加项目专用 `AGENTS.md`、`CLAUDE.md` 和 Gitea Epic/MVP/单元任务模板。 - 增加最小 Harness:`check`、`sync`、`sync --check`、`sync --verify`。 - 创建 8 个定制版 Wiki 页面,并单向镜像到 `docs/maintainer/`。 - 保留 MediaMTX 官方 `docs/`、上游代码、CI 和发布结构,不由 Harness 覆盖。 - `.gitignore` 已加入 `/ip_camera.env` 与 Harness Python 缓存;摄像头凭据文件未提交。 - 已配置 `origin` 为 OPC Gitea,`upstream` 为 MediaMTX 官方 GitHub。 ### 验证 - `python dev_scripts/harness.py check --strict`:通过。 - `python -m unittest discover -s tests -v`:4 项通过。 - `go test -tags enable_linters ./internal/linters/docsorder`:通过。 - `python dev_scripts/harness.py sync --check`:8 个 Wiki 镜像全部与线上 revision 一致。 - Gitea `main` 已回读,指向本次提交。 未运行 `go test ./...`:本工单未修改 Go 产品代码;使用文档顺序 linter 验证新增文档目录不破坏上游文档规则。 ### 提交与推送 - `ca667251d2b707097c0fadd13521f194a3181630 chore: adopt DevHarness workflow (#1)` - 已推送到 `OPC/mediamtx:main`。 ### 保留的无关工作区改动 以下文件在本工单开始前已经从工作区缺失,保持为未提交删除,未进入本次提交: - `.github/DISCUSSION_TEMPLATE/questions.yml` - `.github/ISSUE_TEMPLATE/*` - `.github/dependabot.yml` - `.github/workflows/*` `ip_camera.env` 仍留在本地但已被忽略。 ### 文档影响 长期事实已写入并回读:Home、Project-Profile、Development-Workflow、Architecture-and-Code-Map、Product-Requirements-Overview、Local-Development-and-Verification、Common-Changes、Troubleshooting。 状态:待验收。
Author
Owner

验收结论

  • 验收人:用户
  • 验收时间:2026-08-28(Asia/Shanghai)
  • 结论:用户明确确认 DevHarness 工单 #1 验收通过。
  • 验收提交:ca667251d2b707097c0fadd13521f194a3181630
  • 验收范围:上游 Git 基线、项目 Agent 规则、Gitea 工单模板、最小 Harness、8 个 Wiki 页面及只读镜像、安全忽略规则、origin/upstream 边界。
  • 验证基线:Harness strict check 通过、4 项单元测试通过、MediaMTX docsorder linter 通过、8 个 Wiki 镜像一致。
  • 安全边界:ip_camera.env 未提交;原有 .github 删除改动未纳入接入提交。

验收完成,关闭工单。后续产品功能按独立单元工单实施。

## 验收结论 - 验收人:用户 - 验收时间:2026-08-28(Asia/Shanghai) - 结论:用户明确确认 DevHarness 工单 #1 验收通过。 - 验收提交:`ca667251d2b707097c0fadd13521f194a3181630` - 验收范围:上游 Git 基线、项目 Agent 规则、Gitea 工单模板、最小 Harness、8 个 Wiki 页面及只读镜像、安全忽略规则、origin/upstream 边界。 - 验证基线:Harness strict check 通过、4 项单元测试通过、MediaMTX docsorder linter 通过、8 个 Wiki 镜像一致。 - 安全边界:`ip_camera.env` 未提交;原有 `.github` 删除改动未纳入接入提交。 验收完成,关闭工单。后续产品功能按独立单元工单实施。
ila closed this issue 2026-08-28 10:44:41 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/mediamtx#1