From 0646f5effd53536ae3f608c5e5dffe7fe950cb8f Mon Sep 17 00:00:00 2001 From: QiuSW <105186638@qq.com> Date: Thu, 27 Aug 2026 16:08:23 +0800 Subject: [PATCH 1/3] =?UTF-8?q?docs:=20=E8=AE=B0=E5=BD=95=20Sense=20Superv?= =?UTF-8?q?isor=20=E6=89=98=E7=AE=A1=E6=96=B9=E5=BC=8F=20(#106)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/04-local-development-and-verification.md | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/docs/04-local-development-and-verification.md b/docs/04-local-development-and-verification.md index 372052d..6f19378 100644 --- a/docs/04-local-development-and-verification.md +++ b/docs/04-local-development-and-verification.md @@ -2,8 +2,8 @@ generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件) wiki_page: Local-Development-and-Verification wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Local-Development-and-Verification.- -wiki_revision: 84a086640dc3618e43f834c488080f1e0cb5b063 -synchronized_at: 2026-08-17T02:54:49Z +wiki_revision: 925a16a72bd5840697b5c61489a97018134b3930 +synchronized_at: 2026-08-27T08:07:04Z # 本地开发与验证 @@ -313,3 +313,29 @@ corepack pnpm@9.15.1 build:prod 浏览器 smoke 至少覆盖:鼠标添加和拖动顶点;键盘 Enter 添加、方向键移动、Delete 删除;错误文字可见并具有 aria-live/alert 语义;刷新后版本、启停和重新校准状态仍可追溯。真实摄像机校准只使用明确授权设备,不记录地址、URI、凭据或视频内容。Brain、Bell 不启动时必须能独立保存、读取和预览。 + + +## Sense 本机 Supervisor 托管 + +本机开发/演示环境可由 `D:\supervisor` 托管已经构建的 Sense Windows 交付包。实例配置位于仓库外的 `D:\supervisor\programs\yovision.conf`,实例名为 `yovision-sense`;工作目录固定为 `D:\OPC\yovision\Sense\dist\sense-windows-amd64`。 + +Supervisor 配置只调用包内 `scripts\runtime\start-sense.ps1`,运行参数继续从包内 `config\sense.env` 读取。不得把数据库连接、JWT 密钥、摄像头凭据或其他秘密复制到 Supervisor 配置或工单。 + +常用命令: + +```powershell +D:\supervisor\supervisord.exe ctl /c D:\supervisor\supervisord.conf status yovision-sense +D:\supervisor\supervisord.exe ctl /c D:\supervisor\supervisord.conf restart yovision-sense +D:\supervisor\supervisord.exe ctl /c D:\supervisor\supervisord.conf stop yovision-sense +D:\supervisor\supervisord.exe ctl /c D:\supervisor\supervisord.conf start yovision-sense +Get-Content D:\supervisor\logs\yovision-sense.log -Tail 100 +``` + +新增或修改 `programs/*.conf` 后执行: + +```powershell +D:\supervisor\supervisord.exe ctl /c D:\supervisor\supervisord.conf reload +``` + +当前 Go Supervisor 的 `reload` 会重新读取独立配置;实际受影响实例必须以命令输出和 reload 前后 PID 为准。切换托管前先停止占用 Sense 端口的非 Supervisor 实例,防止自动启动进入 Backoff。验证至少包含 Supervisor 状态为 Running、`http://127.0.0.1:18080/health` 与首页返回 200,以及受控重启后 Sense 和受管 MediaMTX PID 均更新。 + -- 2.34.1 From 356f891c9e7e15235646da9347ba4b454b95318d Mon Sep 17 00:00:00 2001 From: QiuSW <105186638@qq.com> Date: Thu, 27 Aug 2026 16:10:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?docs:=20=E5=BD=92=E6=A1=A3=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=20#106=20=E5=BE=85=E9=AA=8C=E6=94=B6=E8=AF=81?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../106-Sense-本机-Supervisor-实例.md | 71 +++++++++++++++++++ wiki-docs.json | 4 ++ 2 files changed, 75 insertions(+) create mode 100644 docs/task/106-Sense-本机-Supervisor-实例.md diff --git a/docs/task/106-Sense-本机-Supervisor-实例.md b/docs/task/106-Sense-本机-Supervisor-实例.md new file mode 100644 index 0000000..a4a74b1 --- /dev/null +++ b/docs/task/106-Sense-本机-Supervisor-实例.md @@ -0,0 +1,71 @@ + +generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件) +wiki_page: Task-106-Sense-本机-Supervisor-实例 +wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Task-106-Sense-%E6%9C%AC%E6%9C%BA-Supervisor-%E5%AE%9E%E4%BE%8B.- +wiki_revision: 3d83e907d1c8bfddf472ff0517721796a85ceda3 +synchronized_at: 2026-08-27T08:10:00Z + + +# 106 Sense-本机-Supervisor-实例 + +- 类型:运维配置 +- 所属 Epic:#7 +- 所属 MVP / 版本:#8 / Sense 首个独立纵切 +- 状态:待验收 +- 日期:2026-08-27 +- Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/106 +- Wiki 页面:Task-106-Sense-本机-Supervisor-实例 +- Wiki revision:见本地镜像头 + +## 背景与目标 + +本机 Sense 原由独立终端启动,不受 `D:\supervisor` 管理。目标是在不复制现场秘密、不修改 Sense 业务代码的前提下,让 Supervisor 托管现有 Windows 交付包,并提供自动启动、异常重启、进程组停止和独立日志。 + +当前 Brain、Bell 只有规则文件,没有可运行交付物,因此本任务只创建 `yovision-sense`,不创建空实例。 + +## 最终方案 + +- 在仓库外新增 `D:\supervisor\programs\yovision.conf`,实例名为 `yovision-sense`。 +- 工作目录使用 `D:\OPC\yovision\Sense\dist\sense-windows-amd64`。 +- Supervisor 直接调用包内 `scripts/runtime/start-sense.ps1`,配置仍由 `config/sense.env` 读取。 +- 配置启用 autostart、autorestart、启动重试、进程组停止和 50 MB × 5 的日志轮转。 +- 日志写入 `D:\supervisor\logs\yovision-sense.log`;Supervisor 配置不含 environment、数据库连接、令牌、密码或摄像头凭据。 +- 使用包内停止脚本核对并停止原 Sense PID 28440,释放 18080 后执行 Supervisor reload。 + +原计划按最坏情况说明 reload 会重启全部实例;实际命令返回 `Added Groups: yovision-sense`。dsh/goauto PID 未变化,原先处于 Backoff 的三个 Chorus 实例在 reload 后恢复 Running,因此没有观察到既有 Running 实例被重启。 + +## 修改文件 + +- `D:\supervisor\programs\yovision.conf`:新增本机 Supervisor 实例配置;该文件位于仓库外。 +- `Local-Development-and-Verification` Wiki:记录实例位置、常用命令、秘密边界和验证方式。 +- `docs/04-local-development-and-verification.md`:上述 Wiki 的只读镜像。 +- `wiki-docs.json`、`docs/task/106-Sense-本机-Supervisor-实例.md`:任务归档登记与镜像。 + +## 验收结果 + +| 验收标准 | 结果 | +|---|---| +| `yovision-sense` 稳定为 Running | 通过 | +| Sense 监听 18080,健康检查与首页返回 200 | 通过 | +| Sense 管理的 MediaMTX 随单实例重启更新 PID | 通过 | +| Supervisor 配置不包含现场秘密 | 通过 | +| dsh/goauto 保持运行,Chorus 从既有 Backoff 恢复 | 通过 | +| Wiki、归档、提交、PR 和证据 | 进行中,等待用户验收 | + +## 测试 + +- `supervisord.exe ctl /c supervisord.conf reload`:返回新增 `yovision-sense` 配置组。 +- `supervisord.exe ctl /c supervisord.conf status`:七个实例均为 Running;`yovision-sense` Supervisor PID 28000。 +- `GET /health`、`GET /healthz`、`GET /`:均返回 200。 +- 受控执行 `restart yovision-sense`:Sense PID 从 38408 更新为 43916,MediaMTX PID 从 27880 更新为 27212,重启后健康检查与首页仍为 200。 +- 外部配置 SHA-256:`7C5BDDD574384ED6038F0C2DAA8CE364FB1EA996B256831595ABF4E22EDA4769`。 +- 配置敏感字段扫描:未发现 password、token、secret、`SENSE_DATABASE_URL` 或 `environment=`。 +- **未验证部分**:未通过重启 Windows 验证开机后的整体 Supervisor 自启动;未故意崩溃 Sense 验证异常自动重启,已用 Supervisor 受控重启验证停止与拉起链路。 + +## 遗留问题 + +Supervisor 管理端口当前监听 `0.0.0.0:9009` 且未配置认证,这是任务开始前已存在的安全风险,本任务按确认范围未修改,建议另建安全工单处理。 + +## 相关提交 + +- `0646f5effd53536ae3f608c5e5dffe7fe950cb8f` 记录 Sense Supervisor 托管方式。 diff --git a/wiki-docs.json b/wiki-docs.json index 9fcd78f..c619f58 100644 --- a/wiki-docs.json +++ b/wiki-docs.json @@ -155,6 +155,10 @@ { "page": "Task-104-Sense-30天登录有效期", "path": "docs/task/104-Sense-30天登录有效期.md" + }, + { + "page": "Task-106-Sense-本机-Supervisor-实例", + "path": "docs/task/106-Sense-本机-Supervisor-实例.md" } ] } -- 2.34.1 From 120a9efee4be084e2f4af0d12708232a45a0369a Mon Sep 17 00:00:00 2001 From: QiuSW <105186638@qq.com> Date: Thu, 27 Aug 2026 16:17:36 +0800 Subject: [PATCH 3/3] =?UTF-8?q?docs:=20=E6=A0=87=E8=AE=B0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=20#106=20=E9=AA=8C=E6=94=B6=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/task/106-Sense-本机-Supervisor-实例.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/task/106-Sense-本机-Supervisor-实例.md b/docs/task/106-Sense-本机-Supervisor-实例.md index a4a74b1..dd71531 100644 --- a/docs/task/106-Sense-本机-Supervisor-实例.md +++ b/docs/task/106-Sense-本机-Supervisor-实例.md @@ -2,8 +2,8 @@ generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件) wiki_page: Task-106-Sense-本机-Supervisor-实例 wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Task-106-Sense-%E6%9C%AC%E6%9C%BA-Supervisor-%E5%AE%9E%E4%BE%8B.- -wiki_revision: 3d83e907d1c8bfddf472ff0517721796a85ceda3 -synchronized_at: 2026-08-27T08:10:00Z +wiki_revision: fcff45a700cba3db939819cfc5deb1cc97b8155b +synchronized_at: 2026-08-27T08:17:20Z # 106 Sense-本机-Supervisor-实例 @@ -11,7 +11,7 @@ synchronized_at: 2026-08-27T08:10:00Z - 类型:运维配置 - 所属 Epic:#7 - 所属 MVP / 版本:#8 / Sense 首个独立纵切 -- 状态:待验收 +- 状态:已完成 - 日期:2026-08-27 - Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/106 - Wiki 页面:Task-106-Sense-本机-Supervisor-实例 @@ -50,7 +50,7 @@ synchronized_at: 2026-08-27T08:10:00Z | Sense 管理的 MediaMTX 随单实例重启更新 PID | 通过 | | Supervisor 配置不包含现场秘密 | 通过 | | dsh/goauto 保持运行,Chorus 从既有 Backoff 恢复 | 通过 | -| Wiki、归档、提交、PR 和证据 | 进行中,等待用户验收 | +| Wiki、归档、提交、PR 和证据 | 通过,用户已验收 | ## 测试 @@ -69,3 +69,9 @@ Supervisor 管理端口当前监听 `0.0.0.0:9009` 且未配置认证,这是 ## 相关提交 - `0646f5effd53536ae3f608c5e5dffe7fe950cb8f` 记录 Sense Supervisor 托管方式。 + +## 验收确认 + +- 2026-08-27,用户明确确认“#106 验收通过”。 +- PR #107 按规定合入 `dev`,`main` 未变更。 +- 工单 #106 状态更新为“已完成”并关闭;所属 MVP #8 的子工单索引同步勾选。 -- 2.34.1