[SEN] 实现默认 16 路批量开通与失败项重试 #72

Closed
opened 2026-08-14 10:29:13 +08:00 by ila · 6 comments
Owner

状态

已完成

基本信息

  • 类型:需求 / Sense 单项目独立任务
  • 任务类型:单项目
  • 主项目:Sense
  • 主 agent:Sense agent
  • 所属 Epic:#7
  • 所属 MVP / 版本:#80
  • 前置工单:#66
  • 是否允许与前置工单并行:否;必须先冻结前置领域接口
  • 独立运行:Brain、Bell 均不启动时完成实现和验收
  • 需求编号:SEN-004

原始需求与追溯

  • 来源:用户于 2026-08-14 要求建立 Sense 全部独立任务;Product-Requirements、Requirements-Migration-Matrix 和 Sense/AGENTS.md。
  • 摘要:Sense 单产品能够独立完成的后续能力全部建单;跨项目正式契约、Brain 控制和 Bell connector 留给协调工单。
  • 旧 explore 只用于需求、行为与测试对照,不复制自研基础框架。

目标

提供默认 16 路设备导入、预校验、待激活、逐项结果和仅重试失败项,部分成功不整体回滚。

范围

实现 CSV/表格导入、字段预检、凭据安全输入、批次与条目状态、逐项接入调用、失败重试、审计和结果导出;16 路是默认配额,不是硬上限。

非目标

不做现场 128 路容量承诺;不跨项目发布设备/配额契约;不把真实摄像头密码写入导入文件、日志或结果。

GoAdmin 复用要求

复用 #61/#64 建立的 GoAdmin/go-admin-ui 认证、RBAC、审计、Router、Store、Axios、Layout、表格、表单、分页、Dialog、Tag 和权限按钮;实施前读取相关冻结 go-admin-doc 并在评论记录采用方式。业务专用组件必须说明复用缺口并保持整体风格。

写路径

  • Sense/server/app/sense/provisioning/**
  • Sense/server/database/migrations/*provisioning*
  • Sense/ui/src/views/sense/provisioning/**
  • Sense/ui/src/api/sense/provisioning*
  • Sense/ui/src/components/sense/import/**
  • Sense/tests/provisioning/**

禁止写入:Brain/**、Bell/**、contracts/**、根级构建/部署、docs/**、wiki-docs.json。需要共享路径时停止并转协调工单。

文档影响

更新对应 Sense Wiki 业务规则、配置、运行、排错和验收页面;本地镜像由单一协调工单同步。

验收标准

  • 默认 16 路可导入、预校验、待激活并逐项显示成功或失败
  • 部分成功不整体回滚,仅重试失败项且保持幂等
  • 超过当前配额给出明确结果,不把 16 写成数据库或循环硬上限
  • 导入、日志、响应和导出均不泄漏密码
  • Brain/Bell 不启动时可完成批量开通验收

验证方式

  • 批次状态、幂等、部分成功、失败重试和并发测试
  • 前端导入/校验/表格/分页/结果导出测试
  • 合成 ONVIF/RTSP 多设备集成与 16 路基线 smoke

风险与回退

批量写入可能放大凭据与部分失败风险。按条目事务和幂等键处理;回退批次,不删除已成功建立的独立设备。

协同需求摘要

本工单只实现 Sense 内部端口和夹具。涉及 Sense→Brain、Brain→Sense、Sense/Brain→Bell 的正式 schema、机器身份、部署或 E2E 时另建协调工单。

## 状态 已完成 ## 基本信息 - 类型:需求 / Sense 单项目独立任务 - 任务类型:单项目 - 主项目:Sense - 主 agent:Sense agent - 所属 Epic:#7 - 所属 MVP / 版本:#80 - 前置工单:#66 - 是否允许与前置工单并行:否;必须先冻结前置领域接口 - 独立运行:Brain、Bell 均不启动时完成实现和验收 - 需求编号:SEN-004 ## 原始需求与追溯 - 来源:用户于 2026-08-14 要求建立 Sense 全部独立任务;Product-Requirements、Requirements-Migration-Matrix 和 Sense/AGENTS.md。 - 摘要:Sense 单产品能够独立完成的后续能力全部建单;跨项目正式契约、Brain 控制和 Bell connector 留给协调工单。 - 旧 `explore` 只用于需求、行为与测试对照,不复制自研基础框架。 ## 目标 提供默认 16 路设备导入、预校验、待激活、逐项结果和仅重试失败项,部分成功不整体回滚。 ## 范围 实现 CSV/表格导入、字段预检、凭据安全输入、批次与条目状态、逐项接入调用、失败重试、审计和结果导出;16 路是默认配额,不是硬上限。 ## 非目标 不做现场 128 路容量承诺;不跨项目发布设备/配额契约;不把真实摄像头密码写入导入文件、日志或结果。 ## GoAdmin 复用要求 复用 #61/#64 建立的 GoAdmin/go-admin-ui 认证、RBAC、审计、Router、Store、Axios、Layout、表格、表单、分页、Dialog、Tag 和权限按钮;实施前读取相关冻结 go-admin-doc 并在评论记录采用方式。业务专用组件必须说明复用缺口并保持整体风格。 ## 写路径 - `Sense/server/app/sense/provisioning/**` - `Sense/server/database/migrations/*provisioning*` - `Sense/ui/src/views/sense/provisioning/**` - `Sense/ui/src/api/sense/provisioning*` - `Sense/ui/src/components/sense/import/**` - `Sense/tests/provisioning/**` 禁止写入:`Brain/**`、`Bell/**`、`contracts/**`、根级构建/部署、`docs/**`、`wiki-docs.json`。需要共享路径时停止并转协调工单。 ## 文档影响 更新对应 Sense Wiki 业务规则、配置、运行、排错和验收页面;本地镜像由单一协调工单同步。 ## 验收标准 - [x] 默认 16 路可导入、预校验、待激活并逐项显示成功或失败 - [x] 部分成功不整体回滚,仅重试失败项且保持幂等 - [x] 超过当前配额给出明确结果,不把 16 写成数据库或循环硬上限 - [x] 导入、日志、响应和导出均不泄漏密码 - [x] Brain/Bell 不启动时可完成批量开通验收 ## 验证方式 - 批次状态、幂等、部分成功、失败重试和并发测试 - 前端导入/校验/表格/分页/结果导出测试 - 合成 ONVIF/RTSP 多设备集成与 16 路基线 smoke ## 风险与回退 批量写入可能放大凭据与部分失败风险。按条目事务和幂等键处理;回退批次,不删除已成功建立的独立设备。 ## 协同需求摘要 本工单只实现 Sense 内部端口和夹具。涉及 Sense→Brain、Brain→Sense、Sense/Brain→Bell 的正式 schema、机器身份、部署或 E2E 时另建协调工单。
ila added the kind/taskproject/sensescope/independentpriority/p0 labels 2026-08-14 10:29:13 +08:00
Author
Owner

设计证据门禁(2026-08-28)

只读核对发现:已验收的 #28/#30/#32 Sense 原型仅覆盖单台摄像头接入,没有覆盖本工单的批量导入、预校验、待激活、部分成功、失败项重试和结果导出;当前生产页面也不存在这些交互。按仓库“新页面/独立用户功能”双门禁,#72 暂停在设计确认,尚未修改生产代码。

待确认原型 v0.1

  • 识别方式:当前 Codex 对话内 Sense 批量开通摄像头 交互原型,生成日期 2026-08-28;确认后将把确认人、时间和覆盖范围补回本工单。
  • 信息架构:作为“摄像头管理”的子页面,不新增顶级模块;保留 GoAdmin Sidebar/Navbar/TagsView/AppMain。
  • 四步流程:导入清单 → 校验与安全填写凭据 → 确认开通 → 查看结果。
  • 清单不允许密码列;账号密码只在受控表单临时输入,不进入 CSV、日志或结果导出。
  • 页面显示当前已用、本次清单、当前可用;默认 16 路只作当前配额展示,明确可配置且不是硬上限。
  • 条目状态:待补充、可开通、超出当前配额、开通中、成功、失败/原因;状态同时使用文字/符号,不只依赖颜色。
  • 部分成功不回滚;提供单项重试和“仅重试失败项”;同一批次重试保持幂等。
  • 导出只包含设备、状态和可行动原因,不含任何凭据。
  • 复用 Element Plus Steps/Form/Upload/Table/Pagination/Dialog/Tag/Alert/Button 与权限指令;不新增通用视觉体系。
  • 可访问性:可见标签、错误就地提示、aria-live、键盘焦点、375/768/1440 响应式。

非目标

本设计不加入 Brain/Bell、共享契约、128 路承诺、密码 CSV、自动删除已成功设备或新的顶级导航。

状态:等待用户确认 v0.1,确认前不实施正式代码。

## 设计证据门禁(2026-08-28) 只读核对发现:已验收的 #28/#30/#32 Sense 原型仅覆盖单台摄像头接入,没有覆盖本工单的批量导入、预校验、待激活、部分成功、失败项重试和结果导出;当前生产页面也不存在这些交互。按仓库“新页面/独立用户功能”双门禁,#72 暂停在设计确认,尚未修改生产代码。 ### 待确认原型 v0.1 - 识别方式:当前 Codex 对话内 `Sense 批量开通摄像头` 交互原型,生成日期 2026-08-28;确认后将把确认人、时间和覆盖范围补回本工单。 - 信息架构:作为“摄像头管理”的子页面,不新增顶级模块;保留 GoAdmin Sidebar/Navbar/TagsView/AppMain。 - 四步流程:导入清单 → 校验与安全填写凭据 → 确认开通 → 查看结果。 - 清单不允许密码列;账号密码只在受控表单临时输入,不进入 CSV、日志或结果导出。 - 页面显示当前已用、本次清单、当前可用;默认 16 路只作当前配额展示,明确可配置且不是硬上限。 - 条目状态:待补充、可开通、超出当前配额、开通中、成功、失败/原因;状态同时使用文字/符号,不只依赖颜色。 - 部分成功不回滚;提供单项重试和“仅重试失败项”;同一批次重试保持幂等。 - 导出只包含设备、状态和可行动原因,不含任何凭据。 - 复用 Element Plus Steps/Form/Upload/Table/Pagination/Dialog/Tag/Alert/Button 与权限指令;不新增通用视觉体系。 - 可访问性:可见标签、错误就地提示、aria-live、键盘焦点、375/768/1440 响应式。 ### 非目标 本设计不加入 Brain/Bell、共享契约、128 路承诺、密码 CSV、自动删除已成功设备或新的顶级导航。 状态:等待用户确认 v0.1,确认前不实施正式代码。
Author
Owner

原型 v0.1 用户审核通过

  • 确认人:用户
  • 确认时间:2026-08-28(Asia/Shanghai)
  • 版本识别:当前 Codex 对话内 Sense 批量开通摄像头 原型 v0.1;仓库外源文件 D:\OPC\yovision-visualizations\issue-72\sense-bulk-provisioning.html
  • 状态:已确认,可进入正式实现
  • 覆盖范围:摄像头管理子页面、四步批量开通、无密码 CSV、安全凭据输入、配额展示、逐项状态、部分成功、单项/失败项重试、无秘密结果导出、GoAdmin/Element Plus 复用和响应式/可访问性边界
  • 非目标保持:不新增顶级模块,不接入 Brain/Bell 或共享契约,不承诺 128 路,不把密码写入导入文件、日志或结果。

原型未要求导出到仓库;按规则保留对话审核版本,不创建 prototypes/ 快照。

## 原型 v0.1 用户审核通过 - 确认人:用户 - 确认时间:2026-08-28(Asia/Shanghai) - 版本识别:当前 Codex 对话内 `Sense 批量开通摄像头` 原型 v0.1;仓库外源文件 `D:\OPC\yovision-visualizations\issue-72\sense-bulk-provisioning.html` - 状态:已确认,可进入正式实现 - 覆盖范围:摄像头管理子页面、四步批量开通、无密码 CSV、安全凭据输入、配额展示、逐项状态、部分成功、单项/失败项重试、无秘密结果导出、GoAdmin/Element Plus 复用和响应式/可访问性边界 - 非目标保持:不新增顶级模块,不接入 Brain/Bell 或共享契约,不承诺 128 路,不把密码写入导入文件、日志或结果。 原型未要求导出到仓库;按规则保留对话审核版本,不创建 `prototypes/` 快照。
Author
Owner

实施前技术核对与写路径校正(2026-08-28)

前置 #66 已验收并合入 dev。已完整阅读冻结 go-admin-doc:router.md、api.md、models.md、dto.md、service.md、db.md;采用现有 JWT + Casbin + PermissionAction 路由链、严格 DTO、Service/Model 分层、GORM/PostgreSQL 迁移。前端复用现有 BasicLayout、Element Plus Steps/Upload/Form/Table/Pagination/Dialog/Tag/Alert/Button、Axios 和 v-permisaction。

工单早期路径按旧目录写成 server/database/migrations/*provisioning*,当前 GoAdmin 派生树不存在该目录;批量页面也必须注册到现有动态菜单和认证路由。校正后的精确写路径为:

  • Sense/server/app/sense/provisioning/**
  • Sense/server/app/admin/router/sense_provisioning.go
  • Sense/server/cmd/migrate/migration/version/*provisioning*
  • Sense/server/tests/provisioning/**
  • Sense/ui/src/views/sense/provisioning/**
  • Sense/ui/src/api/sense/provisioning.js
  • Sense/ui/tests/unit/sense/provisioning*.spec.js

原授权中的 Sense/ui/src/components/sense/import/** 暂不使用:现有 Element Plus 与页面内纯业务辅助模块足以满足,不新增通用组件。禁止路径保持不变。

技术方案

  • PostgreSQL 持久化批次/条目、幂等键、状态、逐项结果、设备引用和配额快照;不持久化任何账号密码。
  • 默认配额从 SENSE_PROVISIONING_QUOTA 读取,缺省 16;只作可配置当前上限,不成为数组、循环、数据库或分页硬上限。
  • 导入只提交名称、位置、地址与稳定行号;密码字段和未知字段严格拒绝。
  • 激活/失败重试请求按条目提交临时 ONVIF/RTSP 凭据;凭据只进入现有 Vault,审计中由递归脱敏器隐藏,不进入批次、条目、响应或导出。
  • 每条设备独立推进:先记录设备引用,再写凭据并调用 #66 admission;失败保留可行动原因,成功项不回滚;相同批次/条目重试复用设备引用,不重复创建设备。
  • API:批次创建/预检、列表/详情、执行准备项、仅重试失败项、单项重试和无秘密 CSV 结果导出。

该校正不改变用户已确认的 v0.1 功能结果或验收标准,继续实施。

## 实施前技术核对与写路径校正(2026-08-28) 前置 #66 已验收并合入 `dev`。已完整阅读冻结 go-admin-doc:`router.md`、`api.md`、`models.md`、`dto.md`、`service.md`、`db.md`;采用现有 JWT + Casbin + PermissionAction 路由链、严格 DTO、Service/Model 分层、GORM/PostgreSQL 迁移。前端复用现有 BasicLayout、Element Plus Steps/Upload/Form/Table/Pagination/Dialog/Tag/Alert/Button、Axios 和 `v-permisaction`。 工单早期路径按旧目录写成 `server/database/migrations/*provisioning*`,当前 GoAdmin 派生树不存在该目录;批量页面也必须注册到现有动态菜单和认证路由。校正后的精确写路径为: - `Sense/server/app/sense/provisioning/**` - `Sense/server/app/admin/router/sense_provisioning.go` - `Sense/server/cmd/migrate/migration/version/*provisioning*` - `Sense/server/tests/provisioning/**` - `Sense/ui/src/views/sense/provisioning/**` - `Sense/ui/src/api/sense/provisioning.js` - `Sense/ui/tests/unit/sense/provisioning*.spec.js` 原授权中的 `Sense/ui/src/components/sense/import/**` 暂不使用:现有 Element Plus 与页面内纯业务辅助模块足以满足,不新增通用组件。禁止路径保持不变。 ### 技术方案 - PostgreSQL 持久化批次/条目、幂等键、状态、逐项结果、设备引用和配额快照;不持久化任何账号密码。 - 默认配额从 `SENSE_PROVISIONING_QUOTA` 读取,缺省 16;只作可配置当前上限,不成为数组、循环、数据库或分页硬上限。 - 导入只提交名称、位置、地址与稳定行号;密码字段和未知字段严格拒绝。 - 激活/失败重试请求按条目提交临时 ONVIF/RTSP 凭据;凭据只进入现有 Vault,审计中由递归脱敏器隐藏,不进入批次、条目、响应或导出。 - 每条设备独立推进:先记录设备引用,再写凭据并调用 #66 admission;失败保留可行动原因,成功项不回滚;相同批次/条目重试复用设备引用,不重复创建设备。 - API:批次创建/预检、列表/详情、执行准备项、仅重试失败项、单项重试和无秘密 CSV 结果导出。 该校正不改变用户已确认的 v0.1 功能结果或验收标准,继续实施。
Author
Owner

PR #116 已创建。发现 PR 正文误含自动关闭关键字;为严格遵守“用户验收前不得关闭工单”,需要立即移除。当前 Gitea MCP 不提供编辑 PR 正文能力,因此本次仅为修正 PR 正文回退 Gitea API;凭据继续只从 .codex/gitea.env 安全读取,不写入仓库或日志。

PR #116 已创建。发现 PR 正文误含自动关闭关键字;为严格遵守“用户验收前不得关闭工单”,需要立即移除。当前 Gitea MCP 不提供编辑 PR 正文能力,因此本次仅为修正 PR 正文回退 Gitea API;凭据继续只从 `.codex/gitea.env` 安全读取,不写入仓库或日志。
Author
Owner

实现完成,等待用户验收

最终差异

  • 新增 PostgreSQL 批次/条目模型、迁移、GoAdmin 动态菜单、RBAC/Casbin 与认证 API。
  • 默认配额为 16,可由 SENSE_PROVISIONING_QUOTA 调整;批次保存配额快照,16 未写成数据库/循环/分页硬上限。
  • 支持 CSV/XLSX 导入预校验、批次列表/详情、逐项开通、部分成功、仅重试失败项、单项重试和服务端 CSV 导出。
  • 执行使用批次幂等键、持久化设备引用、PostgreSQL 唯一键识别和条目状态条件领取,避免并发重复创建;成功设备不因其他条目失败而回滚。
  • 导入严格拒绝未知/密码字段;凭据只进入执行 DTO、既有加密 Vault,并在请求结束清空前端/后端临时值;批次、条目、响应和导出无凭据字段。
  • 前端复用 GoAdmin BasicLayout、动态菜单、Axios、Element Plus Steps/Upload/Form/Table/Pagination/Dialog/Tag/Alert/Button 与 v-permisaction,没有新增通用组件或顶级模块。

测试与构建

  • go test ./...:通过。
  • go test -race ./app/sense/provisioning:通过。
  • 批量领域测试重复 10 次:通过;覆盖默认/自定义配额、超配额、重复地址、并发幂等、并发条目领取、部分成功、批量失败重试、16 路基线、无凭据响应/持久化。
  • go vet ./...:通过。
  • Sense 服务与迁移命令构建:通过。
  • pnpm run test:unit:20 suites、51 tests 全部通过。
  • pnpm run lint:0 errors;32 个冻结上游既有 warnings,本工单文件无 warning。
  • pnpm run build:prod:通过;仅保留冻结上游 Sass/codemirror/包体积 warning。
  • python dev_scripts/harness.py check --strict:通过。

Git / PR

  • 实现提交:ae19e59703f2a4913ae6717e869de80f838a3a92
  • PR:#116
  • 已按治理路径合入 dev:44b60b5b464e0642b30439c0ac2b4039a883cf60
  • 工单保持开启,状态为待验收;未合入 main。

长期文档

线上 Wiki 已更新并在线回读确认:

  • Product-Requirements:b5d964e189b6bf5c61edd86fb265a88ea03d0a26
  • Architecture-and-Code-Map:eaa14464fe848747e0577afb374c57dbe310d338
  • Deployment-and-Operations:859fafc5d86998bc1375c48afd3f968cf65ee8da

本工单禁止写共享 docs/**;sync --check 已确认本地 docs/02-architecture-and-code-map.md 相对 Wiki 过期,需由后续单一文档协调工单同步,未在 #72 混入。

未验证内容

  • 未提供 SENSE_PROVISIONING_MIGRATION_TEST_DATABASE_URL,所以没有执行隔离 PostgreSQL schema smoke;可选迁移测试已随代码提供。
  • 本地 Sense 正在监听,但浏览器登录会话已过期;未代填管理员密码,因此未完成登录后的真实页面视觉检查。
  • 未连接真实 16 路摄像头;16 路基线使用合成 Activator 完成,现场真机仍需人工验收。

请按原型 v0.1 验收;验收通过前不关闭 #72。

## 实现完成,等待用户验收 ### 最终差异 - 新增 PostgreSQL 批次/条目模型、迁移、GoAdmin 动态菜单、RBAC/Casbin 与认证 API。 - 默认配额为 16,可由 `SENSE_PROVISIONING_QUOTA` 调整;批次保存配额快照,16 未写成数据库/循环/分页硬上限。 - 支持 CSV/XLSX 导入预校验、批次列表/详情、逐项开通、部分成功、仅重试失败项、单项重试和服务端 CSV 导出。 - 执行使用批次幂等键、持久化设备引用、PostgreSQL 唯一键识别和条目状态条件领取,避免并发重复创建;成功设备不因其他条目失败而回滚。 - 导入严格拒绝未知/密码字段;凭据只进入执行 DTO、既有加密 Vault,并在请求结束清空前端/后端临时值;批次、条目、响应和导出无凭据字段。 - 前端复用 GoAdmin BasicLayout、动态菜单、Axios、Element Plus Steps/Upload/Form/Table/Pagination/Dialog/Tag/Alert/Button 与 `v-permisaction`,没有新增通用组件或顶级模块。 ### 测试与构建 - `go test ./...`:通过。 - `go test -race ./app/sense/provisioning`:通过。 - 批量领域测试重复 10 次:通过;覆盖默认/自定义配额、超配额、重复地址、并发幂等、并发条目领取、部分成功、批量失败重试、16 路基线、无凭据响应/持久化。 - `go vet ./...`:通过。 - Sense 服务与迁移命令构建:通过。 - `pnpm run test:unit`:20 suites、51 tests 全部通过。 - `pnpm run lint`:0 errors;32 个冻结上游既有 warnings,本工单文件无 warning。 - `pnpm run build:prod`:通过;仅保留冻结上游 Sass/codemirror/包体积 warning。 - `python dev_scripts/harness.py check --strict`:通过。 ### Git / PR - 实现提交:`ae19e59703f2a4913ae6717e869de80f838a3a92` - PR:#116 - 已按治理路径合入 `dev`:`44b60b5b464e0642b30439c0ac2b4039a883cf60` - 工单保持开启,状态为待验收;未合入 `main`。 ### 长期文档 线上 Wiki 已更新并在线回读确认: - Product-Requirements:`b5d964e189b6bf5c61edd86fb265a88ea03d0a26` - Architecture-and-Code-Map:`eaa14464fe848747e0577afb374c57dbe310d338` - Deployment-and-Operations:`859fafc5d86998bc1375c48afd3f968cf65ee8da` 本工单禁止写共享 `docs/**`;`sync --check` 已确认本地 `docs/02-architecture-and-code-map.md` 相对 Wiki 过期,需由后续单一文档协调工单同步,未在 #72 混入。 ### 未验证内容 - 未提供 `SENSE_PROVISIONING_MIGRATION_TEST_DATABASE_URL`,所以没有执行隔离 PostgreSQL schema smoke;可选迁移测试已随代码提供。 - 本地 Sense 正在监听,但浏览器登录会话已过期;未代填管理员密码,因此未完成登录后的真实页面视觉检查。 - 未连接真实 16 路摄像头;16 路基线使用合成 Activator 完成,现场真机仍需人工验收。 请按原型 v0.1 验收;验收通过前不关闭 #72。
Author
Owner

用户验收通过(2026-08-28)

  • 用户明确指令:#72、#74 验收通过
  • 结论:#72 验收通过,状态更新为“已完成”并关闭。
  • 实现提交:ae19e59703f2a4913ae6717e869de80f838a3a92
  • PR:#116;合入 dev:44b60b5b464e0642b30439c0ac2b4039a883cf60
  • 已知验证边界保持不变:未执行真实 16 路摄像头现场验收;未提供隔离 PostgreSQL 迁移测试库;这些边界已在最终证据中披露,不阻止本次人工验收结论。
  • 文档影响:验收本身未产生新的长期事实,不重复更新 Wiki,也不创建任务归档。
## 用户验收通过(2026-08-28) - 用户明确指令:`#72、#74 验收通过` - 结论:#72 验收通过,状态更新为“已完成”并关闭。 - 实现提交:`ae19e59703f2a4913ae6717e869de80f838a3a92` - PR:#116;合入 `dev`:`44b60b5b464e0642b30439c0ac2b4039a883cf60` - 已知验证边界保持不变:未执行真实 16 路摄像头现场验收;未提供隔离 PostgreSQL 迁移测试库;这些边界已在最终证据中披露,不阻止本次人工验收结论。 - 文档影响:验收本身未产生新的长期事实,不重复更新 Wiki,也不创建任务归档。
ila closed this issue 2026-08-28 11:13:28 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ila/yovision#72