[MVP] 三项目首个独立纵切 #8

Closed
opened 2026-08-12 09:49:46 +08:00 by ila · 50 comments
Owner

状态

已完成(2026-08-29,用户验收通过)

基本信息

  • 所属 Epic:#7

MVP 目标

三个项目分别形成不依赖其他项目在线的首个可见纵切:Sense 完成摄像头接入到区域配置,Brain 完成合成输入到匿名本地事件,Bell 完成合成事件到 Alert ack/close。

包含范围

  • Sense:独立骨架/登录、设备、ONVIF/RTSP、MediaMTX、实时监看、区域配置。
  • Brain:独立骨架、合成输入、解码、匿名检测/跟踪、区域/越线、项目内事件输出。
  • Bell:独立骨架/登录、合成事件、不可变 Event、规则/Alert、ack/close。
  • 每个任务只有一个主项目、一个主 agent 和仅位于本项目目录的 write_paths。

排除范围

  • 不建立跨项目源配置、事件、证据或机器鉴权契约。
  • 不实施 Outbox 跨产品投递、根级部署或端到端测试。
  • 不包含 16 路批量开通、完整通知升级、容量压测、人脸及其他后置能力。

阶段与单元任务

Sense:新 GoAdmin 基线

  • #61 [SEN] 从冻结 GoAdmin 源码重建 Sense 产品骨架
  • #64 [SEN] 在 GoAdmin 基线上重建 Sense 登录、RBAC 与审计
  • #65 [SEN] 在 GoAdmin 基线上重建设备台账与凭据边界
  • #66 [SEN] 在 GoAdmin 基线上重建 ONVIF 发现、手工接入与 RTSP Profile
  • #67 [SEN] 在 GoAdmin 基线上重建 MediaMTX 配置、生命周期与状态对账
  • #68 [SEN] 在 GoAdmin 基线上重建单路实时监看与播放状态反馈
  • #69 [SEN] 在 GoAdmin 基线上重建多边形区域与方向警戒线配置
  • #70 [SEN] 建立新 GoAdmin 基线的 Windows 配置、启动与打包交付
  • #90 [SEN] 增加项目根目录 Windows 启动脚本(可与 #70 并行实现,集成时位于 #70 之后)
  • #106 [SEN] 在本机 Supervisor 增加 YoVision Sense 实例(基于 #70;本机运维托管,不修改产品业务代码)
  • #92 [SEN] 修复旧设备 capabilities 迁移到 JSONB(阻断旧数据库启动,位于 #71 前)
  • #95 [SEN] 兼容旧媒体路由 path 唯一约束迁移(阻断 #70 真实旧库启动回归)
  • #97 [SEN] 恢复免验证码登录并安全重置管理员密码(基于 #64,可与 #70 并行;进入发布包前合入 dev)
  • #99 [SEN] 恢复登录页匿名只读 app-config 接口(基于 #70/#97;只恢复登录外壳必需只读路由)
  • #101 [SEN] 修复业务页面脱离 GoAdmin 应用外壳(基于 #61/#64–#70;可与 #99 并行,修正 Layout 父子路由)
  • #104 [SEN] 将默认登录有效期调整为30天(基于 #64/#70/#97/#99;可与 #101 并行,最终集成包待两项合入 dev)
  • #71 [SEN] 验证新 GoAdmin 基线的 Sense 独立纵切与历史行为回归
  • #145 [SEN] 修复独立纵切验收脚本的源码隔离、产物清理与启动诊断(阻断 #8 最后一项验收)

依赖链:#61 → #64 → #65 → #66 → #67 → #68 → #69 → #70 → #90 → #92 → #95 → #71 → #145;#90 可与 #70 并行实现,#92 阻断旧数据库回归与 #71。

Sense:历史 explore 结果(已验收,仅用于迁移对照)

  • #21 [SEN][已替代] 初始化 Sense 独立 GoAdmin 产品骨架
  • #22–#27 旧独立纵切
  • #37、#40、#42、#44、#46、#48、#50、#51、#54、#56 旧交付与真实故障修复

Brain

  • #10 [BRN] 初始化独立 Python/CUDA 推理项目骨架
  • #11 [BRN] 实现合成与本地视频输入适配
  • #13 [BRN] 建立可替换的视频解码流水线
  • #14 [BRN] 实现匿名目标检测与单路跟踪
  • #15 [BRN] 实现危险区域与方向越线判定
  • #16 [BRN] 串联独立纵切并输出项目内匿名事件

Bell:新 GoAdmin 基线

  • #62 [BEL] 从冻结 GoAdmin 源码重建 Bell 产品骨架
  • #131 [BEL] 在 GoAdmin 基线上重建 Event、Receipt 与合成事件入口
  • #132 [BEL] 在 GoAdmin 基线上重建规则匹配与 Event-Alert 链路
  • #133 [BEL] 在 GoAdmin 基线上重建 Alert ack、close 与审计时间线
  • #138 [BEL] 修复生产模式验证码入口缺失与答案日志泄漏
  • #140 [BEL] 修复管理员暴露未启用 GoAdmin 默认菜单
  • #142 [BEL] 修复生产构建 GoAdmin 外壳启动白屏
  • #134 [BEL] 建立独立告警纵切 E2E 与 Windows 构建运行验证

依赖链:#62 → #131 → #132 → #133 → #138 → #140 → #142 → #134;六个新任务顺序实施,不得并行写入迁移注册、认证路由或 Alert 详情等接续路径。

Bell:历史 explore 结果(已验收,仅用于业务语义和测试对照)

  • #9 [BEL][已替代] 初始化 Bell 独立 GoAdmin 产品骨架
  • #12 [BEL][历史] 实现独立登录、RBAC 与认证审计
  • #17 [BEL][历史] 实现不可变 Event 与永久幂等收据
  • #18 [BEL][历史] 提供仅限开发测试的合成事件入口
  • #19 [BEL][历史] 实现规则匹配与 Event-Alert 可导航链路
  • #20 [BEL][历史] 实现 Alert 并发 ack、close 与审计时间线

历史工单的完成不表示相应代码存在于当前 dev。新 GoAdmin 基线必须按 #131–#134 重新实现并验收;三个项目可并行,但同一项目内不得跳过真实前置工单。

原型确认

  • #28 [UX] 生成三项目当前 MVP 交互原型
  • #32 [SEN] 按网管与非技术人员视角优化 Sense 原型
  • #33 [BEL] 按普通用户视角优化 Bell 预警处理原型

集成风险和回退

  • 建单可并行,实施按各项目内部前置依赖推进。
  • Sense/Bell 骨架在 #3、#5 验收和工具链就绪前保持待实施。
  • Brain/Bell 使用合成输入,Sense 使用实验室摄像头或明确测试源,避免运行时依赖其他项目。
  • 发现需要 contracts/ 或其他项目写路径时停止扩写,提交协同需求摘要。

MVP 验收标准

  • Sense 在 Brain/Bell 未启动时可独立登录、接入摄像头、实时查看并配置区域。
  • Brain 在 Sense/Bell 未启动时可用合成输入生成匿名区域/越线本地事件。
  • Bell 在 Sense/Brain 未启动时可用合成事件完成 Event → Alert → ack → close。
  • 三个项目拥有独立、可复制的构建、测试和运行命令。
  • 独立任务无跨项目写路径,协同需求已汇总但未在本轮实施。

架构重建说明(2026-08-14)

  • #21、#9 的旧自研骨架不再进入 dev,只在 explore 保留追溯。
  • #61、#62 分别成为 Sense、Bell 新的首个实施任务;后续原业务工单必须在对应新骨架上重新评估或重建,不得默认沿用旧实现。
  • Brain #10 保持独立任务,并已补充本机 Python/CUDA/GPU 事实与隔离环境门禁。
  • 三端分支门禁 #58 已验收;#61、#62、#10 现在可从 dev 建立各自功能分支,按不重叠写路径并行实施。
## 状态 已完成(2026-08-29,用户验收通过) ## 基本信息 - 所属 Epic:#7 ## MVP 目标 三个项目分别形成不依赖其他项目在线的首个可见纵切:Sense 完成摄像头接入到区域配置,Brain 完成合成输入到匿名本地事件,Bell 完成合成事件到 Alert ack/close。 ## 包含范围 - Sense:独立骨架/登录、设备、ONVIF/RTSP、MediaMTX、实时监看、区域配置。 - Brain:独立骨架、合成输入、解码、匿名检测/跟踪、区域/越线、项目内事件输出。 - Bell:独立骨架/登录、合成事件、不可变 Event、规则/Alert、ack/close。 - 每个任务只有一个主项目、一个主 agent 和仅位于本项目目录的 `write_paths`。 ## 排除范围 - 不建立跨项目源配置、事件、证据或机器鉴权契约。 - 不实施 Outbox 跨产品投递、根级部署或端到端测试。 - 不包含 16 路批量开通、完整通知升级、容量压测、人脸及其他后置能力。 ## 阶段与单元任务 ### Sense:新 GoAdmin 基线 - [x] #61 `[SEN] 从冻结 GoAdmin 源码重建 Sense 产品骨架` - [x] #64 `[SEN] 在 GoAdmin 基线上重建 Sense 登录、RBAC 与审计` - [x] #65 `[SEN] 在 GoAdmin 基线上重建设备台账与凭据边界` - [x] #66 `[SEN] 在 GoAdmin 基线上重建 ONVIF 发现、手工接入与 RTSP Profile` - [x] #67 `[SEN] 在 GoAdmin 基线上重建 MediaMTX 配置、生命周期与状态对账` - [x] #68 `[SEN] 在 GoAdmin 基线上重建单路实时监看与播放状态反馈` - [x] #69 `[SEN] 在 GoAdmin 基线上重建多边形区域与方向警戒线配置` - [x] #70 `[SEN] 建立新 GoAdmin 基线的 Windows 配置、启动与打包交付` - [x] #90 `[SEN] 增加项目根目录 Windows 启动脚本`(可与 #70 并行实现,集成时位于 #70 之后) - [x] #106 `[SEN] 在本机 Supervisor 增加 YoVision Sense 实例`(基于 #70;本机运维托管,不修改产品业务代码) - [x] #92 `[SEN] 修复旧设备 capabilities 迁移到 JSONB`(阻断旧数据库启动,位于 #71 前) - [x] #95 `[SEN] 兼容旧媒体路由 path 唯一约束迁移`(阻断 #70 真实旧库启动回归) - [x] #97 `[SEN] 恢复免验证码登录并安全重置管理员密码`(基于 #64,可与 #70 并行;进入发布包前合入 `dev`) - [x] #99 `[SEN] 恢复登录页匿名只读 app-config 接口`(基于 #70/#97;只恢复登录外壳必需只读路由) - [x] #101 `[SEN] 修复业务页面脱离 GoAdmin 应用外壳`(基于 #61/#64–#70;可与 #99 并行,修正 Layout 父子路由) - [x] #104 `[SEN] 将默认登录有效期调整为30天`(基于 #64/#70/#97/#99;可与 #101 并行,最终集成包待两项合入 `dev`) - [x] #71 `[SEN] 验证新 GoAdmin 基线的 Sense 独立纵切与历史行为回归` - [x] #145 `[SEN] 修复独立纵切验收脚本的源码隔离、产物清理与启动诊断`(阻断 #8 最后一项验收) 依赖链:#61 → #64 → #65 → #66 → #67 → #68 → #69 → #70 → #90 → #92 → #95 → #71 → #145;#90 可与 #70 并行实现,#92 阻断旧数据库回归与 #71。 ### Sense:历史 explore 结果(已验收,仅用于迁移对照) - [x] #21 `[SEN][已替代] 初始化 Sense 独立 GoAdmin 产品骨架` - [x] #22–#27 旧独立纵切 - [x] #37、#40、#42、#44、#46、#48、#50、#51、#54、#56 旧交付与真实故障修复 ### Brain - [x] #10 `[BRN] 初始化独立 Python/CUDA 推理项目骨架` - [x] #11 `[BRN] 实现合成与本地视频输入适配` - [x] #13 `[BRN] 建立可替换的视频解码流水线` - [x] #14 `[BRN] 实现匿名目标检测与单路跟踪` - [x] #15 `[BRN] 实现危险区域与方向越线判定` - [x] #16 `[BRN] 串联独立纵切并输出项目内匿名事件` ### Bell:新 GoAdmin 基线 - [x] #62 `[BEL] 从冻结 GoAdmin 源码重建 Bell 产品骨架` - [x] #131 `[BEL] 在 GoAdmin 基线上重建 Event、Receipt 与合成事件入口` - [x] #132 `[BEL] 在 GoAdmin 基线上重建规则匹配与 Event-Alert 链路` - [x] #133 `[BEL] 在 GoAdmin 基线上重建 Alert ack、close 与审计时间线` - [x] #138 `[BEL] 修复生产模式验证码入口缺失与答案日志泄漏` - [x] #140 `[BEL] 修复管理员暴露未启用 GoAdmin 默认菜单` - [x] #142 `[BEL] 修复生产构建 GoAdmin 外壳启动白屏` - [x] #134 `[BEL] 建立独立告警纵切 E2E 与 Windows 构建运行验证` 依赖链:#62 → #131 → #132 → #133 → #138 → #140 → #142 → #134;六个新任务顺序实施,不得并行写入迁移注册、认证路由或 Alert 详情等接续路径。 ### Bell:历史 explore 结果(已验收,仅用于业务语义和测试对照) - [x] #9 `[BEL][已替代] 初始化 Bell 独立 GoAdmin 产品骨架` - [x] #12 `[BEL][历史] 实现独立登录、RBAC 与认证审计` - [x] #17 `[BEL][历史] 实现不可变 Event 与永久幂等收据` - [x] #18 `[BEL][历史] 提供仅限开发测试的合成事件入口` - [x] #19 `[BEL][历史] 实现规则匹配与 Event-Alert 可导航链路` - [x] #20 `[BEL][历史] 实现 Alert 并发 ack、close 与审计时间线` 历史工单的完成不表示相应代码存在于当前 `dev`。新 GoAdmin 基线必须按 #131–#134 重新实现并验收;三个项目可并行,但同一项目内不得跳过真实前置工单。 ### 原型确认 - [x] #28 `[UX] 生成三项目当前 MVP 交互原型` - [x] #32 `[SEN] 按网管与非技术人员视角优化 Sense 原型` - [x] #33 `[BEL] 按普通用户视角优化 Bell 预警处理原型` ## 集成风险和回退 - 建单可并行,实施按各项目内部前置依赖推进。 - Sense/Bell 骨架在 #3、#5 验收和工具链就绪前保持待实施。 - Brain/Bell 使用合成输入,Sense 使用实验室摄像头或明确测试源,避免运行时依赖其他项目。 - 发现需要 `contracts/` 或其他项目写路径时停止扩写,提交协同需求摘要。 ## MVP 验收标准 - [x] Sense 在 Brain/Bell 未启动时可独立登录、接入摄像头、实时查看并配置区域。 - [x] Brain 在 Sense/Bell 未启动时可用合成输入生成匿名区域/越线本地事件。 - [x] Bell 在 Sense/Brain 未启动时可用合成事件完成 Event → Alert → ack → close。 - [x] 三个项目拥有独立、可复制的构建、测试和运行命令。 - [x] 独立任务无跨项目写路径,协同需求已汇总但未在本轮实施。 ## 架构重建说明(2026-08-14) - #21、#9 的旧自研骨架不再进入 `dev`,只在 `explore` 保留追溯。 - #61、#62 分别成为 Sense、Bell 新的首个实施任务;后续原业务工单必须在对应新骨架上重新评估或重建,不得默认沿用旧实现。 - Brain #10 保持独立任务,并已补充本机 Python/CUDA/GPU 事实与隔离环境门禁。 - 三端分支门禁 #58 已验收;#61、#62、#10 现在可从 `dev` 建立各自功能分支,按不重叠写路径并行实施。
ila added the kind/mvppriority/p0scope/independent labels 2026-08-12 09:58:22 +08:00
Author
Owner

独立工单建单完成

三个项目 Agent 已并行创建并由主 Agent 统一审计:

  • Sense:7 张(#21–#27)
  • Brain:6 张(#10、#11、#13–#16)
  • Bell:6 张(#9、#12、#17–#20)
  • 合计:19 张

审计结果:标题前缀、Epic/MVP 归属、主项目、主 agent、模板章节、项目内 write_paths 和标签全部通过;已收窄骨架父目录及 Bell Alert 路径,当前不存在同项目写路径重叠。

本轮创建并应用标签:kind/epic、kind/mvp、kind/task、project/sense、project/brain、project/bell、scope/independent、priority/p0。

按既定顺序,本轮不创建协同工单。待独立工单集合确认后,再汇总建立 Sense→Brain 源/区域配置、Brain/Sense→Bell 事件/证据、机器身份、可靠投递、根级部署和端到端验收等协同工单。

## 独立工单建单完成 三个项目 Agent 已并行创建并由主 Agent 统一审计: - Sense:7 张(#21–#27) - Brain:6 张(#10、#11、#13–#16) - Bell:6 张(#9、#12、#17–#20) - 合计:19 张 审计结果:标题前缀、Epic/MVP 归属、主项目、主 agent、模板章节、项目内 `write_paths` 和标签全部通过;已收窄骨架父目录及 Bell Alert 路径,当前不存在同项目写路径重叠。 本轮创建并应用标签:`kind/epic`、`kind/mvp`、`kind/task`、`project/sense`、`project/brain`、`project/bell`、`scope/independent`、`priority/p0`。 按既定顺序,本轮不创建协同工单。待独立工单集合确认后,再汇总建立 Sense→Brain 源/区域配置、Brain/Sense→Bell 事件/证据、机器身份、可靠投递、根级部署和端到端验收等协同工单。
Author
Owner

Sense 独立 MVP 实施进度(2026-08-12)

#21 → #27 已按真实依赖顺序完成实现、自动化验证、Wiki 长期文档和待验收归档,汇总 PR 为 #34。七张任务均保持 open / 待验收;未勾选父工单完成项。

统一未验证边界:当前机器没有真实 PostgreSQL、MediaMTX 二进制、获准实验室摄像机和目标浏览器验收环境,因此数据库迁移、真机兼容、真实拉流/reader、浏览器播放及岗位人工验收需后续执行。

## Sense 独立 MVP 实施进度(2026-08-12) #21 → #27 已按真实依赖顺序完成实现、自动化验证、Wiki 长期文档和待验收归档,汇总 PR 为 #34。七张任务均保持 open / 待验收;未勾选父工单完成项。 统一未验证边界:当前机器没有真实 PostgreSQL、MediaMTX 二进制、获准实验室摄像机和目标浏览器验收环境,因此数据库迁移、真机兼容、真实拉流/reader、浏览器播放及岗位人工验收需后续执行。
Author
Owner

Bell MVP 实施汇总:待验收

已按顺序完成并回写:#9 → #12 → #17 → #18 → #19 → #20;Bell 原型 #31、#33 也已实现并归档。

  • 正式代码:PR #35(独立骨架 → 认证/RBAC → 不可变 Event/Receipt → 合成事件 → 规则/Alert → 并发 ack/close)
  • 已确认原型:PR #29
  • Wiki 与任务归档:协调工单 #36 / PR [Bell] 同步 MVP 长期文档与待验收归档 (#36) (#38)
  • 自动验证:Go/PostgreSQL 集成、Vue lint/build、36 个 Wiki 映射、DevHarness、31 项仓库 unittest 与 diff 检查均通过

尚需人工验收,因此子工单和本 MVP 均保持开启,暂不勾选或关闭。

## Bell MVP 实施汇总:待验收 已按顺序完成并回写:#9 → #12 → #17 → #18 → #19 → #20;Bell 原型 #31、#33 也已实现并归档。 - 正式代码:PR #35(独立骨架 → 认证/RBAC → 不可变 Event/Receipt → 合成事件 → 规则/Alert → 并发 ack/close) - 已确认原型:PR #29 - Wiki 与任务归档:协调工单 #36 / PR #38 - 自动验证:Go/PostgreSQL 集成、Vue lint/build、36 个 Wiki 映射、DevHarness、31 项仓库 unittest 与 diff 检查均通过 尚需人工验收,因此子工单和本 MVP 均保持开启,暂不勾选或关闭。
Author
Owner

重建任务索引已更新(2026-08-14)

  • Sense 新基线:#61,替代 #21。
  • Bell 新基线:#62,替代 #9。
  • Brain:#10 保留,并补齐本机实施条件。

旧业务工单暂不直接继续实施;待新骨架完成后逐张复核依赖和迁移方式。当前没有导入产品源码,也没有修改共享路径。

## 重建任务索引已更新(2026-08-14) - Sense 新基线:#61,替代 #21。 - Bell 新基线:#62,替代 #9。 - Brain:#10 保留,并补齐本机实施条件。 旧业务工单暂不直接继续实施;待新骨架完成后逐张复核依赖和迁移方式。当前没有导入产品源码,也没有修改共享路径。
Author
Owner

批量验收同步(2026-08-14)

已勾选本轮关闭的历史 Sense/Bell 实现及原型任务;#9/#21 的勾选表示“已关闭并由新工单替代”,不表示旧架构恢复为产品基线。MVP 仍保持开放,因为 #61、#62 及 Brain #10–#16 尚未实施,MVP 验收标准尚未满足。

## 批量验收同步(2026-08-14) 已勾选本轮关闭的历史 Sense/Bell 实现及原型任务;#9/#21 的勾选表示“已关闭并由新工单替代”,不表示旧架构恢复为产品基线。MVP 仍保持开放,因为 #61、#62 及 Brain #10–#16 尚未实施,MVP 验收标准尚未满足。
Author
Owner

Sense 新基线独立工单已补齐(2026-08-14)

已加入 #64–#71,并把 Sense 新 GoAdmin 基线与历史 explore 结果分栏。实施按 #61 → #64 → #65 → #66 → #67 → #68 → #69 → #70 → #71 推进;任何需要 contracts/、Brain、Bell 或根级部署的变化必须停止并转协调工单。

## Sense 新基线独立工单已补齐(2026-08-14) 已加入 #64–#71,并把 Sense 新 GoAdmin 基线与历史 `explore` 结果分栏。实施按 #61 → #64 → #65 → #66 → #67 → #68 → #69 → #70 → #71 推进;任何需要 `contracts/`、Brain、Bell 或根级部署的变化必须停止并转协调工单。
Author
Owner

Sense 新 GoAdmin 基线 #61 已于 2026-08-14 验收完成,PR #81 合并到 dev(c515f003);MVP 清单已勾选,下一项按依赖进入 #64。

Sense 新 GoAdmin 基线 #61 已于 2026-08-14 验收完成,PR #81 合并到 `dev`(`c515f003`);MVP 清单已勾选,下一项按依赖进入 #64。
Author
Owner

#64 已于 2026-08-14 经用户明确验收,PR #82 已合并到 dev(merge commit 1ef4a1fe0b9790ab62e861736117d5e362f6d2df)。Sense 新 GoAdmin 基线的登录、四角色 RBAC 与脱敏身份审计完成;下一前置任务为 #65。

#64 已于 2026-08-14 经用户明确验收,PR #82 已合并到 `dev`(merge commit `1ef4a1fe0b9790ab62e861736117d5e362f6d2df`)。Sense 新 GoAdmin 基线的登录、四角色 RBAC 与脱敏身份审计完成;下一前置任务为 #65。
Author
Owner

Sense 新基线任务 #65 已由用户验收通过并合入 dev;MVP 索引已更新为完成。下一项真实依赖为 #66。

Sense 新基线任务 #65 已由用户验收通过并合入 `dev`;MVP 索引已更新为完成。下一项真实依赖为 #66。
Author
Owner

Sense 独立任务 #66 已验收完成并合并到 dev(PR #84,merge commit 24cf4bbd6532356084b8d6f3643f03844946dc77);MVP 清单已勾选 #66。下一项按依赖链为 #67。

Sense 独立任务 #66 已验收完成并合并到 `dev`(PR #84,merge commit `24cf4bbd6532356084b8d6f3643f03844946dc77`);MVP 清单已勾选 #66。下一项按依赖链为 #67。
Author
Owner

Sense 子任务 #67 已由用户验收通过并合并到 dev(PR #85,merge commit b1bdb91fdb94711d2e974a663687265691f393b1);索引已勾选。依赖链下一项为 #68。

Sense 子任务 #67 已由用户验收通过并合并到 `dev`(PR #85,merge commit `b1bdb91fdb94711d2e974a663687265691f393b1`);索引已勾选。依赖链下一项为 #68。
Author
Owner

Sense 子任务 #68 已由用户验收并关闭,PR #86 已合入 dev;MVP 索引已勾选。下一项真实依赖为 #69。

Sense 子任务 #68 已由用户验收并关闭,PR #86 已合入 `dev`;MVP 索引已勾选。下一项真实依赖为 #69。
Author
Owner

#92 已于 2026-08-15 由用户明确验收并关闭。实现 PR #93 已合入 dev(eaa6ae0),验收归档 PR #94 已合入 dev(4040970);MVP 索引已勾选。真实数据库与 Windows 包回归继续在 #70 完成交付闭环。

#92 已于 2026-08-15 由用户明确验收并关闭。实现 PR #93 已合入 `dev`(`eaa6ae0`),验收归档 PR #94 已合入 `dev`(`4040970`);MVP 索引已勾选。真实数据库与 Windows 包回归继续在 #70 完成交付闭环。
Author
Owner

#97 已于 2026-08-16 由用户明确验收并关闭,PR #98 已合入 dev(merge commit 116318df748ff0d46d3fe5f8a4f41a6507567eec);MVP 索引已勾选。#8 仍保持开放,其他未完成任务继续按真实依赖推进。

#97 已于 2026-08-16 由用户明确验收并关闭,PR #98 已合入 `dev`(merge commit `116318df748ff0d46d3fe5f8a4f41a6507567eec`);MVP 索引已勾选。#8 仍保持开放,其他未完成任务继续按真实依赖推进。
Author
Owner

#95 与 #70 已于 2026-08-16 由用户明确验收并按依赖顺序合入 dev:#95 PR #96(12e1bff8),#70 PR #89(863b232a)。MVP 索引已勾选两项;#8 仍保持开放,其他未完成任务继续按真实依赖推进。

#95 与 #70 已于 2026-08-16 由用户明确验收并按依赖顺序合入 `dev`:#95 PR #96(`12e1bff8`),#70 PR #89(`863b232a`)。MVP 索引已勾选两项;#8 仍保持开放,其他未完成任务继续按真实依赖推进。
Author
Owner

进度同步(2026-08-16):#99 已由用户明确验收通过,PR #100 已合入 dev(34ee5ed),工单关闭;本 MVP 的 #99 子工单索引已勾选。#8 仍有其他未完成任务,保持 open。

进度同步(2026-08-16):#99 已由用户明确验收通过,PR #100 已合入 `dev`(`34ee5ed`),工单关闭;本 MVP 的 #99 子工单索引已勾选。#8 仍有其他未完成任务,保持 open。
Author
Owner

进度同步(2026-08-17):#104 已由用户明确验收通过,PR #105 已合入 dev(merge commit 46c3232da40528d031367225b09d4f28c85a8312),任务归档已完成,MVP 索引已勾选。#8 仍有 #90、#101、#71 及 Brain/Bell 未完成任务,保持 open。

进度同步(2026-08-17):#104 已由用户明确验收通过,PR #105 已合入 `dev`(merge commit `46c3232da40528d031367225b09d4f28c85a8312`),任务归档已完成,MVP 索引已勾选。#8 仍有 #90、#101、#71 及 Brain/Bell 未完成任务,保持 open。
Author
Owner

#101 已于 2026-08-27 通过用户验收,并经 PR #102 合入 dev@d264758dee4799122eeca27f9cdab36610228a7e;MVP 子工单索引已勾选。#8 仍保持 open,继续等待 #90、#71 以及 Brain/Bell 未完成任务。

#101 已于 2026-08-27 通过用户验收,并经 PR #102 合入 `dev@d264758dee4799122eeca27f9cdab36610228a7e`;MVP 子工单索引已勾选。#8 仍保持 open,继续等待 #90、#71 以及 Brain/Bell 未完成任务。
Author
Owner

新增 Sense 本机运维任务 #106:Supervisor 已托管 yovision-sense,运行验证通过,现处于待验收;已加入本 MVP 索引但暂不勾选。

新增 Sense 本机运维任务 #106:Supervisor 已托管 `yovision-sense`,运行验证通过,现处于待验收;已加入本 MVP 索引但暂不勾选。
Author
Owner

#106 已于 2026-08-27 通过用户验收,并经 PR #107 合入 dev@15142157299936231fc4dda9aa6624bba34aeed3;MVP 子工单索引已勾选。#8 仍保持 open。

#106 已于 2026-08-27 通过用户验收,并经 PR #107 合入 `dev@15142157299936231fc4dda9aa6624bba34aeed3`;MVP 子工单索引已勾选。#8 仍保持 open。
Author
Owner

#90 已更新到最新 dev,PR #91 冲突已解决并恢复 mergeable;根启动脚本组合回归通过,继续等待用户验收。

#90 已更新到最新 `dev`,PR #91 冲突已解决并恢复 mergeable;根启动脚本组合回归通过,继续等待用户验收。
Author
Owner

#90 已于 2026-08-27 通过用户验收,并经 PR #91 合入 dev@e14b65b58692883f564d3b82a5c83474f1232477;MVP 子工单索引已勾选。#8 仍保持 open,Sense 下一步进入 #71 最终独立纵切回归。

#90 已于 2026-08-27 通过用户验收,并经 PR #91 合入 `dev@e14b65b58692883f564d3b82a5c83474f1232477`;MVP 子工单索引已勾选。#8 仍保持 open,Sense 下一步进入 #71 最终独立纵切回归。
Author
Owner

进度更新(2026-08-27 23:19:48 +08:00):用户已确认 #10、#62、#71 通过验收,MVP 子工单索引已勾选。#8 仍保持 open:Brain #11、#13–#16 尚未完成,MVP 集成验收条件未满足。

进度更新(2026-08-27 23:19:48 +08:00):用户已确认 #10、#62、#71 通过验收,MVP 子工单索引已勾选。#8 仍保持 open:Brain #11、#13–#16 尚未完成,MVP 集成验收条件未满足。
Author
Owner

Brain #11 已完成实现与验证,经 PR #126 合入 dev@52b368068e4c6a03b571573a68bc8188d5ff8a8c,当前等待用户验收。#8 的 #11 索引暂不勾选;真实前置未验收前不进入 #13。

Brain #11 已完成实现与验证,经 PR #126 合入 `dev@52b368068e4c6a03b571573a68bc8188d5ff8a8c`,当前等待用户验收。#8 的 #11 索引暂不勾选;真实前置未验收前不进入 #13。
Author
Owner

Brain #11 已于 2026-08-28 22:24:41 +08:00 由用户明确验收并关闭,MVP 索引已勾选。下一项按依赖链进入 #13;#14–#16 仍未完成,因此 #8 保持打开。

Brain #11 已于 2026-08-28 22:24:41 +08:00 由用户明确验收并关闭,MVP 索引已勾选。下一项按依赖链进入 #13;#14–#16 仍未完成,因此 #8 保持打开。
Author
Owner

Brain #13 已完成实现与验证,经 PR #127 合入 dev@ba4ec287635355f9f37315eb10cc46ed3a1a7949,当前等待用户验收。MVP 的 #13 索引暂不勾选,#14 不提前实施。

Brain #13 已完成实现与验证,经 PR #127 合入 `dev@ba4ec287635355f9f37315eb10cc46ed3a1a7949`,当前等待用户验收。MVP 的 #13 索引暂不勾选,#14 不提前实施。
Author
Owner

Brain #13 已由用户验收并关闭,MVP 索引已勾选。下一项进入 #14;#15、#16 尚未完成。

Brain #13 已由用户验收并关闭,MVP 索引已勾选。下一项进入 #14;#15、#16 尚未完成。
Author
Owner

Brain #14 已完成实现与验证,经 PR #128 合入 dev@ee9cfb0433d398721cd6aa020afda379cdaa315a,当前待用户验收。MVP 索引暂不勾选,#15 不提前实施。

Brain #14 已完成实现与验证,经 PR #128 合入 `dev@ee9cfb0433d398721cd6aa020afda379cdaa315a`,当前待用户验收。MVP 索引暂不勾选,#15 不提前实施。
Author
Owner

Brain #14 已由用户验收并关闭,MVP 索引已勾选。下一项进入 #15。

Brain #14 已由用户验收并关闭,MVP 索引已勾选。下一项进入 #15。
Author
Owner

Brain #15 已完成并经 PR #129 合入 dev@6ffdbcce84745e9c71299177fdb82418a285bc38,当前待用户验收。MVP 索引暂不勾选,#16 不提前实施。

Brain #15 已完成并经 PR #129 合入 `dev@6ffdbcce84745e9c71299177fdb82418a285bc38`,当前待用户验收。MVP 索引暂不勾选,#16 不提前实施。
Author
Owner

Brain #15 已由用户验收并关闭,MVP 索引已勾选。下一项进入 #16。

Brain #15 已由用户验收并关闭,MVP 索引已勾选。下一项进入 #16。
Author
Owner

Brain #16 已完成并经 PR #130 合入 dev@96bd4ad2c8c5f010a0caa1746154471dd0d031cc,当前待用户验收。MVP 索引暂不勾选;验收后需另行执行 #8 三项目独立纵切集成验收。

Brain #16 已完成并经 PR #130 合入 `dev@96bd4ad2c8c5f010a0caa1746154471dd0d031cc`,当前待用户验收。MVP 索引暂不勾选;验收后需另行执行 #8 三项目独立纵切集成验收。
Author
Owner

Brain #16 已于 2026-08-28 23:30:16 +08:00 由用户明确验收并关闭,MVP 索引已勾选。

#10、#11、#13–#16 现已全部完成;Sense 与 Bell 子任务也均已勾选。#8 保持打开,下一步必须单独执行三项目独立纵切集成验收并核对正文五项 MVP 标准,不能以子工单完成自动代替 MVP 验收。

Brain #16 已于 2026-08-28 23:30:16 +08:00 由用户明确验收并关闭,MVP 索引已勾选。 #10、#11、#13–#16 现已全部完成;Sense 与 Bell 子任务也均已勾选。#8 保持打开,下一步必须单独执行三项目独立纵切集成验收并核对正文五项 MVP 标准,不能以子工单完成自动代替 MVP 验收。
Author
Owner

MVP #8 独立纵切集成验收执行结果(2026-08-29)

基线:dev@96bd4ad2c8c5f010a0caa1746154471dd0d031cc,执行前后仓库工作区均为 clean,并与 origin/dev 一致。验证期间未启动 Bell;为核对独立性,暂时停止了 Supervisor 管理的 Sense 实例,Brain/Bell 验证均在 Sense 未监听时执行。

已通过

  • Sense 独立纵切:通过。
    • 静态兼容回归:22 assertions passed。
    • 从当前 HEAD 导出的干净临时源码完成 Windows 打包与包审计。
    • 隔离 E2E 通过:干净 PostgreSQL、登录/RBAC、中文设备、Digest ONVIF/RTSP、凭据分离、MediaMTX 按需播放、实时监看、区域重标定、浏览器 GoAdmin 外壳、冷启动和 Windows 停止。
    • 第一次 E2E 未进入产品流程:脚本只用 TCP 探测空闲端口,却把其中一个端口用于 UDP;本机 Windows 将 61625 列为 UDP 排除端口,MediaMTX 报 UDP bind denied。重跑选到非排除端口后完整通过。这是测试脚本的独立缺陷,未在本 MVP 内修改。
  • Brain 独立纵切:通过。
    • Brain\.venv\Scripts\python.exe -m pytest Brain\tests -q:43 passed。
    • 合成区域输入 CLI 成功输出 1 条确定性的 brain.internal.event-candidate/v1 匿名事件,汇总为 3 frames / 3 detections / 1 event。
  • Bell 当前 GoAdmin 骨架:构建与基础冒烟通过。
    • 后端:go test ./...、go vet ./...、go build ./... 通过。
    • 前端:lint 0 errors(30 warnings)、7 suites / 29 tests passed、production build passed。
    • 隔离 PostgreSQL 冒烟:health=ok、login=200、未认证请求被拒绝、禁用路由 404/404,迁移及管理员/菜单数据断言通过。

阻塞结论

MVP #8 当前不能进入待验收,Bell 的核心验收标准无法执行。

当前 dev 的 Bell/ 只有 #62 导入的 GoAdmin 骨架,没有 Event、Receipt、合成事件、Rule、Alert、ack/close 业务模块或对应纵切测试。#62 正文明确排除迁移这些旧业务。#17–#20 虽已关闭并在本 MVP 中勾选,但其验收评论明确说明代码只保留于 explore,不恢复为 dev 基线。因此这些历史工单不能作为当前 GoAdmin 基线 Bell 的完成证据。

未满足的正文标准:

  • Bell 在 Sense/Brain 未启动时完成 Event → Alert → ack → close:未满足。
  • 三项目均拥有可复制的完整构建、测试和运行命令:Sense、Brain 已证实;Bell 仅证实骨架,业务纵切缺失,整体未满足。
  • 独立任务写路径/协同边界:本轮未发现跨项目写入,且测试未修改仓库;但不能抵消 Bell 功能缺口。

建议先建立新的 Bell GoAdmin 基线单元任务,按 Event/Receipt 与合成输入 → Rule/Alert → ack/close/UI 与独立 E2E 的真实依赖重建;完成并验收后重新执行 #8。#17–#20 保持历史关闭状态,不应直接恢复或把 explore 代码原样合入 dev。

本机环境恢复说明

隔离测试产生的服务均已停止。恢复 Supervisor yovision-sense 时发现本机 postgresql-x64-17 在测试开始前即为 Stopped,重启 Sense 因 127.0.0.1:5432 connection refused 失败;当前权限无法启动该 Windows 服务。为避免无限重试,yovision-sense 已停止并处于 Fatal。恢复方法:以有权限的终端启动 postgresql-x64-17,再执行 Supervisor 的 start yovision-sense。

## MVP #8 独立纵切集成验收执行结果(2026-08-29) 基线:`dev@96bd4ad2c8c5f010a0caa1746154471dd0d031cc`,执行前后仓库工作区均为 clean,并与 `origin/dev` 一致。验证期间未启动 Bell;为核对独立性,暂时停止了 Supervisor 管理的 Sense 实例,Brain/Bell 验证均在 Sense 未监听时执行。 ### 已通过 - **Sense 独立纵切:通过。** - 静态兼容回归:22 assertions passed。 - 从当前 `HEAD` 导出的干净临时源码完成 Windows 打包与包审计。 - 隔离 E2E 通过:干净 PostgreSQL、登录/RBAC、中文设备、Digest ONVIF/RTSP、凭据分离、MediaMTX 按需播放、实时监看、区域重标定、浏览器 GoAdmin 外壳、冷启动和 Windows 停止。 - 第一次 E2E 未进入产品流程:脚本只用 TCP 探测空闲端口,却把其中一个端口用于 UDP;本机 Windows 将 61625 列为 UDP 排除端口,MediaMTX 报 UDP bind denied。重跑选到非排除端口后完整通过。这是测试脚本的独立缺陷,未在本 MVP 内修改。 - **Brain 独立纵切:通过。** - `Brain\.venv\Scripts\python.exe -m pytest Brain\tests -q`:43 passed。 - 合成区域输入 CLI 成功输出 1 条确定性的 `brain.internal.event-candidate/v1` 匿名事件,汇总为 3 frames / 3 detections / 1 event。 - **Bell 当前 GoAdmin 骨架:构建与基础冒烟通过。** - 后端:`go test ./...`、`go vet ./...`、`go build ./...` 通过。 - 前端:lint 0 errors(30 warnings)、7 suites / 29 tests passed、production build passed。 - 隔离 PostgreSQL 冒烟:health=ok、login=200、未认证请求被拒绝、禁用路由 404/404,迁移及管理员/菜单数据断言通过。 ### 阻塞结论 **MVP #8 当前不能进入待验收,Bell 的核心验收标准无法执行。** 当前 `dev` 的 `Bell/` 只有 #62 导入的 GoAdmin 骨架,没有 Event、Receipt、合成事件、Rule、Alert、ack/close 业务模块或对应纵切测试。#62 正文明确排除迁移这些旧业务。#17–#20 虽已关闭并在本 MVP 中勾选,但其验收评论明确说明代码只保留于 `explore`,不恢复为 `dev` 基线。因此这些历史工单不能作为当前 GoAdmin 基线 Bell 的完成证据。 未满足的正文标准: - Bell 在 Sense/Brain 未启动时完成 Event → Alert → ack → close:**未满足**。 - 三项目均拥有可复制的完整构建、测试和运行命令:Sense、Brain 已证实;Bell 仅证实骨架,业务纵切缺失,**整体未满足**。 - 独立任务写路径/协同边界:本轮未发现跨项目写入,且测试未修改仓库;但不能抵消 Bell 功能缺口。 建议先建立新的 Bell GoAdmin 基线单元任务,按 Event/Receipt 与合成输入 → Rule/Alert → ack/close/UI 与独立 E2E 的真实依赖重建;完成并验收后重新执行 #8。#17–#20 保持历史关闭状态,不应直接恢复或把 `explore` 代码原样合入 `dev`。 ### 本机环境恢复说明 隔离测试产生的服务均已停止。恢复 Supervisor `yovision-sense` 时发现本机 `postgresql-x64-17` 在测试开始前即为 Stopped,重启 Sense 因 127.0.0.1:5432 connection refused 失败;当前权限无法启动该 Windows 服务。为避免无限重试,`yovision-sense` 已停止并处于 Fatal。恢复方法:以有权限的终端启动 `postgresql-x64-17`,再执行 Supervisor 的 `start yovision-sense`。
Author
Owner

Bell GoAdmin 纵切修复工单已建立(2026-08-29)

根据本次集成验收阻塞与用户确认方案,已建立:

  • #131 Event、Receipt 与仅限测试的合成事件入口
  • #132 Rule、Alert 与 Event-Alert 可导航链路
  • #133 并发安全 ack、close 与仅追加审计时间线
  • #134 独立 E2E、Windows 构建/运行与包审计

真实依赖:#62 → #131 → #132 → #133 → #134。四项均为 Bell 单项目任务,标签为 kind/task、priority/p0、project/bell、scope/independent;禁止修改 Sense、Brain、contracts 和根级共享路径。

MVP 正文已修正:#9、#12、#17–#20 移入 explore 历史对照区,不再把历史验收误算为当前 dev 能力。#8 保持 open,等待 #131–#134 分别实施、人工验收后重新执行三项目独立纵切集成验收。

## Bell GoAdmin 纵切修复工单已建立(2026-08-29) 根据本次集成验收阻塞与用户确认方案,已建立: - #131 Event、Receipt 与仅限测试的合成事件入口 - #132 Rule、Alert 与 Event-Alert 可导航链路 - #133 并发安全 ack、close 与仅追加审计时间线 - #134 独立 E2E、Windows 构建/运行与包审计 真实依赖:#62 → #131 → #132 → #133 → #134。四项均为 Bell 单项目任务,标签为 `kind/task`、`priority/p0`、`project/bell`、`scope/independent`;禁止修改 Sense、Brain、contracts 和根级共享路径。 MVP 正文已修正:#9、#12、#17–#20 移入 `explore` 历史对照区,不再把历史验收误算为当前 `dev` 能力。#8 保持 open,等待 #131–#134 分别实施、人工验收后重新执行三项目独立纵切集成验收。
Author
Owner

Bell 进度更新(2026-08-29):#131 已通过用户验收并关闭,PR #135 已合入 dev@689de560bb0d8928de77dd5ed2cae9ead581e3ef。MVP 索引已勾选 #131;下一真实前置任务为 #132。#133、#134 及 Bell 完整纵切仍未完成,因此 #8 保持 open。

Bell 进度更新(2026-08-29):#131 已通过用户验收并关闭,PR #135 已合入 `dev@689de560bb0d8928de77dd5ed2cae9ead581e3ef`。MVP 索引已勾选 #131;下一真实前置任务为 #132。#133、#134 及 Bell 完整纵切仍未完成,因此 #8 保持 open。
Author
Owner

Bell 进度更新(2026-08-29):#133 已由用户明确验收并关闭,实现经 PR #137 合入 dev@452cd71035d6a1c2a6059dfd418950045286b1f3;MVP 索引已勾选。下一真实前置任务为 #134(Bell 独立纵切 E2E 与 Windows 构建运行验证)。#134 尚未完成,因此 #8 保持 open,不能提前重新执行或关闭 MVP 验收。

Bell 进度更新(2026-08-29):#133 已由用户明确验收并关闭,实现经 PR #137 合入 `dev@452cd71035d6a1c2a6059dfd418950045286b1f3`;MVP 索引已勾选。下一真实前置任务为 #134(Bell 独立纵切 E2E 与 Windows 构建运行验证)。#134 尚未完成,因此 #8 保持 open,不能提前重新执行或关闭 MVP 验收。
Author
Owner

Bell #134 执行中发现生产登录缺陷:生产模式要求验证码,但匿名验证码路由未注册;同时现有验证码处理会把答案写入日志。已按 #134 的停止条件拆分 #138,并将依赖调整为 #133 → #138 → #134。#134 当前保留未提交实施现场,等待 #138 确认、修复并验收后继续。

Bell #134 执行中发现生产登录缺陷:生产模式要求验证码,但匿名验证码路由未注册;同时现有验证码处理会把答案写入日志。已按 #134 的停止条件拆分 #138,并将依赖调整为 #133 → #138 → #134。#134 当前保留未提交实施现场,等待 #138 确认、修复并验收后继续。
Author
Owner

Bell 阻塞修复 #138 已完成实现与自动化验证,提交 cabc29c、PR #139,当前待用户验收。#138 验收并合入 dev 前,#134 继续保持暂停。

Bell 阻塞修复 #138 已完成实现与自动化验证,提交 `cabc29c`、PR #139,当前待用户验收。#138 验收并合入 `dev` 前,#134 继续保持暂停。
Author
Owner

#138 已由用户验收并经 PR #139 合入 dev@86c3e79121b9db9239dc7a1062bdd15540e25336;Bell 生产登录阻塞解除,继续执行 #134。

#138 已由用户验收并经 PR #139 合入 `dev@86c3e79121b9db9239dc7a1062bdd15540e25336`;Bell 生产登录阻塞解除,继续执行 #134。
Author
Owner

Bell #134 继续执行时发现管理员仍暴露未启用 GoAdmin 默认菜单,已拆分 #140 并调整依赖为 #138 → #140 → #134。#134 按测试门禁暂停。

Bell #134 继续执行时发现管理员仍暴露未启用 GoAdmin 默认菜单,已拆分 #140 并调整依赖为 #138 → #140 → #134。#134 按测试门禁暂停。
Author
Owner

Bell #140 已由用户验收并关闭,经 PR #141 合入 dev@f99fe8d4f73c1f49248043092c7e50e1fabae0c4。MVP 索引已勾选 #140;#134 阻塞解除并恢复进行中。MVP #8 仍保持 open。

Bell #140 已由用户验收并关闭,经 PR #141 合入 `dev@f99fe8d4f73c1f49248043092c7e50e1fabae0c4`。MVP 索引已勾选 #140;#134 阻塞解除并恢复进行中。MVP #8 仍保持 open。
Author
Owner

Bell #134 的 API/包级独立纵切已通过,但浏览器验收发现生产 UI 因 Sass 变量导出缺失启动白屏,已拆分阻塞工单 #142。依赖调整为 #140 → #142 → #134;MVP 保持 open。

Bell #134 的 API/包级独立纵切已通过,但浏览器验收发现生产 UI 因 Sass 变量导出缺失启动白屏,已拆分阻塞工单 #142。依赖调整为 #140 → #142 → #134;MVP 保持 open。
Author
Owner

Bell #142 已由用户验收并关闭,经 PR #143 合入 dev@6194b664ee822912c51803024453457c9b1e1c36。MVP 索引已勾选 #142;#134 恢复进行中。MVP #8 保持 open。

Bell #142 已由用户验收并关闭,经 PR #143 合入 `dev@6194b664ee822912c51803024453457c9b1e1c36`。MVP 索引已勾选 #142;#134 恢复进行中。MVP #8 保持 open。
Author
Owner

子工单 #134 已于 2026-08-29 由用户验收,通过 PR #144 合入 dev@6702b8a5b9bc0c6383e707904074b9885eeb3661 并关闭。

MVP #8 的单元任务索引现已全部完成;MVP 自身验收标准仍保持未勾选,需单独执行/确认三项目独立纵切集成验收后再关闭。

子工单 #134 已于 2026-08-29 由用户验收,通过 PR #144 合入 `dev@6702b8a5b9bc0c6383e707904074b9885eeb3661` 并关闭。 MVP #8 的单元任务索引现已全部完成;MVP 自身验收标准仍保持未勾选,需单独执行/确认三项目独立纵切集成验收后再关闭。
Author
Owner

三项目独立纵切集成验收启动(2026-08-29)

  • 基线:dev@6702b8a5b9bc0c6383e707904074b9885eeb3661,工作区 clean。
  • 所有单元任务已验收;本轮只执行 MVP 验收,不修改产品代码。
  • 顺序:Sense 独立纵切 → Brain 合成输入纵切 → Bell 独立告警纵切 → 仓库级检查。
  • 每端运行时不启动或调用另外两端;使用临时数据库、动态端口、合成/匿名测试数据。
  • 已确认本机具备 PostgreSQL 17、MediaMTX、Brain 隔离 Python 环境及固定 Go/Node/pnpm 调用入口。
  • 若出现产品缺陷,将保留真实失败证据并停止对应验收,不在 MVP 工单内修复。
## 三项目独立纵切集成验收启动(2026-08-29) - 基线:`dev@6702b8a5b9bc0c6383e707904074b9885eeb3661`,工作区 clean。 - 所有单元任务已验收;本轮只执行 MVP 验收,不修改产品代码。 - 顺序:Sense 独立纵切 → Brain 合成输入纵切 → Bell 独立告警纵切 → 仓库级检查。 - 每端运行时不启动或调用另外两端;使用临时数据库、动态端口、合成/匿名测试数据。 - 已确认本机具备 PostgreSQL 17、MediaMTX、Brain 隔离 Python 环境及固定 Go/Node/pnpm 调用入口。 - 若出现产品缺陷,将保留真实失败证据并停止对应验收,不在 MVP 工单内修复。
Author
Owner

三项目独立纵切集成验收结果(2026-08-29)

结论:未全部通过,#8 保持开启。 三端产品纵切均通过,但 Sense 的默认隔离测试入口不满足“独立、可复制的构建/测试/运行命令”与测试后 clean 要求。

已通过

  • Sense 静态兼容回归:22 assertions 通过。
  • Sense 当前 dev 源码直接构建 Windows 包:通过。
  • Sense 使用当前构建包的隔离 E2E:通过;覆盖临时 PostgreSQL、登录/RBAC、中文设备、Digest ONVIF/RTSP、凭据隔离、MediaMTX 按需播放、实时监看、区域重校准、Chrome GoAdmin 外壳、冷启动和停止。
  • Brain:Brain/.venv/Scripts/python.exe -m pytest Brain/tests -q,43 passed;CLI 合成输入实际生成匿名 danger_area_entered、brain.internal.event-candidate/v1 本地事件。
  • Bell:完整独立 E2E 通过;覆盖构建/包审计、登录/RBAC、最小菜单、Event/Receipt 幂等、Rule/Alert、20 路并发 ack、close 权限/幂等、时间线、冷重启和停止。
  • 仓库:harness.py check --strict 通过;48 项仓库单测通过;git diff --check 通过。
  • 测试结束未发现验收所属 Sense/Bell/Brain/MediaMTX/PostgreSQL 运行进程;Git 工作区已恢复 clean。

阻塞项

  1. 文档默认命令 Sense/tests/e2e/run-isolated-e2e.ps1 在已有 Sense/ui/node_modules 的正常开发工作区中,使用 Copy-Item -Recurse 复制整个 Sense,因 pnpm 深层路径失败;产品 E2E 尚未开始。
  2. 使用脚本已有的 -PreparedPackageRoot 绕过复制并验证产品时,E2E 会在 Sense/ui/ 留下未跟踪的 sense-browser-smoke.cjs,不满足测试后工作区 clean;本次已仅清除该测试生成文件。
  3. prepared-package 首次运行曾在 Sense 根 URL 就绪检查超时,第二次完整通过,说明启动就绪检查还存在一次偶发不稳定,需在修复工单中复现并处理或提供诊断证据。

保留的诊断目录

  • C:/Users/ila20/AppData/Local/Temp/sense-e2e-e7e8e3e7f459448ea3ce8931fe932943:为诊断使用 -KeepTemporary 保留,已确认无残留运行进程;目录可能含随机运行时秘密。当前执行安全策略拒绝递归删除,需人工安全删除,不应共享或归档。

MVP 清单

  • 已勾选 Sense、Brain、Bell 三个功能纵切和独立写路径边界。
  • “三个项目拥有独立、可复制的构建、测试和运行命令”保持未勾选。

建议建立一个 Sense 测试/交付缺陷工单:让隔离 E2E 仅复制受控源码(排除 node_modules/dist),所有生成脚本写入临时目录,并提高启动失败诊断与就绪稳定性;修复后只需重跑 Sense 默认入口及仓库 clean 检查,再恢复 #8 验收。

## 三项目独立纵切集成验收结果(2026-08-29) 结论:**未全部通过,#8 保持开启。** 三端产品纵切均通过,但 Sense 的默认隔离测试入口不满足“独立、可复制的构建/测试/运行命令”与测试后 clean 要求。 ### 已通过 - Sense 静态兼容回归:22 assertions 通过。 - Sense 当前 `dev` 源码直接构建 Windows 包:通过。 - Sense 使用当前构建包的隔离 E2E:通过;覆盖临时 PostgreSQL、登录/RBAC、中文设备、Digest ONVIF/RTSP、凭据隔离、MediaMTX 按需播放、实时监看、区域重校准、Chrome GoAdmin 外壳、冷启动和停止。 - Brain:`Brain/.venv/Scripts/python.exe -m pytest Brain/tests -q`,43 passed;CLI 合成输入实际生成匿名 `danger_area_entered`、`brain.internal.event-candidate/v1` 本地事件。 - Bell:完整独立 E2E 通过;覆盖构建/包审计、登录/RBAC、最小菜单、Event/Receipt 幂等、Rule/Alert、20 路并发 ack、close 权限/幂等、时间线、冷重启和停止。 - 仓库:`harness.py check --strict` 通过;48 项仓库单测通过;`git diff --check` 通过。 - 测试结束未发现验收所属 Sense/Bell/Brain/MediaMTX/PostgreSQL 运行进程;Git 工作区已恢复 clean。 ### 阻塞项 1. 文档默认命令 `Sense/tests/e2e/run-isolated-e2e.ps1` 在已有 `Sense/ui/node_modules` 的正常开发工作区中,使用 `Copy-Item -Recurse` 复制整个 `Sense`,因 pnpm 深层路径失败;产品 E2E 尚未开始。 2. 使用脚本已有的 `-PreparedPackageRoot` 绕过复制并验证产品时,E2E 会在 `Sense/ui/` 留下未跟踪的 `sense-browser-smoke.cjs`,不满足测试后工作区 clean;本次已仅清除该测试生成文件。 3. prepared-package 首次运行曾在 Sense 根 URL 就绪检查超时,第二次完整通过,说明启动就绪检查还存在一次偶发不稳定,需在修复工单中复现并处理或提供诊断证据。 ### 保留的诊断目录 - `C:/Users/ila20/AppData/Local/Temp/sense-e2e-e7e8e3e7f459448ea3ce8931fe932943`:为诊断使用 `-KeepTemporary` 保留,已确认无残留运行进程;目录可能含随机运行时秘密。当前执行安全策略拒绝递归删除,需人工安全删除,不应共享或归档。 ### MVP 清单 - 已勾选 Sense、Brain、Bell 三个功能纵切和独立写路径边界。 - “三个项目拥有独立、可复制的构建、测试和运行命令”保持未勾选。 建议建立一个 Sense 测试/交付缺陷工单:让隔离 E2E 仅复制受控源码(排除 `node_modules`/`dist`),所有生成脚本写入临时目录,并提高启动失败诊断与就绪稳定性;修复后只需重跑 Sense 默认入口及仓库 clean 检查,再恢复 #8 验收。
Author
Owner

已根据 2026-08-29 集成验收失败证据建立 Sense 缺陷工单 #145。该任务只修复验收脚本的受控源码复制、临时产物清理和启动诊断;不修改 Sense 产品行为。#145 已加入 Sense 依赖链并阻断 #8 最后一项“独立、可复制命令”验收。

已根据 2026-08-29 集成验收失败证据建立 Sense 缺陷工单 #145。该任务只修复验收脚本的受控源码复制、临时产物清理和启动诊断;不修改 Sense 产品行为。#145 已加入 Sense 依赖链并阻断 #8 最后一项“独立、可复制命令”验收。
Author
Owner

#145 已于 2026-08-29 由用户验收,并经 PR #146 合入 dev@19c0868c5d1719f2554b275f23e0fd714dd17b3b 后关闭。

Sense 文档默认 E2E 已从最终提交在 clean 工作区完整通过,prepared-package、失败注入、UDP 绑定、临时清理和脱敏诊断也通过;此前 Brain 43 项/合成事件纵切、Bell 完整告警纵切及仓库 48 项测试证据未受本次 Sense 脚本改动影响。

因此 #8 的五项 MVP 验收标准现已全部有通过证据,状态更新为“待验收”。等待用户明确验收 #8 后再关闭 MVP,并同步 Epic #7;不以 #145 的单元验收替代 MVP 验收。

#145 已于 2026-08-29 由用户验收,并经 PR #146 合入 `dev@19c0868c5d1719f2554b275f23e0fd714dd17b3b` 后关闭。 Sense 文档默认 E2E 已从最终提交在 clean 工作区完整通过,prepared-package、失败注入、UDP 绑定、临时清理和脱敏诊断也通过;此前 Brain 43 项/合成事件纵切、Bell 完整告警纵切及仓库 48 项测试证据未受本次 Sense 脚本改动影响。 因此 #8 的五项 MVP 验收标准现已全部有通过证据,状态更新为“待验收”。等待用户明确验收 #8 后再关闭 MVP,并同步 Epic #7;不以 #145 的单元验收替代 MVP 验收。
Author
Owner

用户验收结论(2026-08-29)

用户明确回复“#8 验收通过”。MVP 三项目首个独立纵切验收通过:

  • Sense:在 Brain/Bell 未启动时,独立登录、摄像头接入、实时监看和区域配置通过;#145 修复后的默认 E2E 从 clean 提交运行通过。
  • Brain:在 Sense/Bell 未启动时,43 项测试通过,合成输入实际生成匿名 brain.internal.event-candidate/v1 本地事件。
  • Bell:在 Sense/Brain 未启动时,合成事件到 Event → Alert → ack → close 的独立 E2E 通过。
  • 三项目具有独立、可复制的构建、测试和运行入口,且独立任务未引入跨项目写路径。

最终代码基线:dev@19c0868c5d1719f2554b275f23e0fd714dd17b3b(含 #145)。

长期文档:线上 Wiki Project-Profile revision 3ec1fe54504a9c5eabb76dc19f0e46eb6c58ba08;核心 Wiki 镜像经 PR #147 合入 dev@49aa79f3b9685aad803d3c6b7208016be532830a。sync --check、DevHarness strict 检查和仓库 48 项单测通过。

结论:#8 已完成并关闭;后续跨项目契约、机器身份、根级部署和端到端协同不属于本 MVP,继续由 Epic #7 管理。

## 用户验收结论(2026-08-29) 用户明确回复“#8 验收通过”。MVP 三项目首个独立纵切验收通过: - Sense:在 Brain/Bell 未启动时,独立登录、摄像头接入、实时监看和区域配置通过;#145 修复后的默认 E2E 从 clean 提交运行通过。 - Brain:在 Sense/Bell 未启动时,43 项测试通过,合成输入实际生成匿名 `brain.internal.event-candidate/v1` 本地事件。 - Bell:在 Sense/Brain 未启动时,合成事件到 Event → Alert → ack → close 的独立 E2E 通过。 - 三项目具有独立、可复制的构建、测试和运行入口,且独立任务未引入跨项目写路径。 最终代码基线:`dev@19c0868c5d1719f2554b275f23e0fd714dd17b3b`(含 #145)。 长期文档:线上 Wiki `Project-Profile` revision `3ec1fe54504a9c5eabb76dc19f0e46eb6c58ba08`;核心 Wiki 镜像经 PR #147 合入 `dev@49aa79f3b9685aad803d3c6b7208016be532830a`。`sync --check`、DevHarness strict 检查和仓库 48 项单测通过。 结论:#8 已完成并关闭;后续跨项目契约、机器身份、根级部署和端到端协同不属于本 MVP,继续由 Epic #7 管理。
ila closed this issue 2026-08-29 20:50:18 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ila/yovision#8