[SEN] 实现默认 16 路批量开通与失败项重试 #72
Closed
opened 2026-08-14 10:29:13 +08:00 by ila
·
6 comments
No Branch/Tag Specified
dev
feat/183-bell-contact-schedule
docs/171-coordination-e2e-wiki
feature/155-coordination-e2e
docs/168-sync-coordination-wiki
feature/154-coordination-deployment
docs/152-153-connectors
feature/153-event-evidence-connector
feature/152-brain-control
docs/151-machine-identity-acceptance
task/151-machine-identity
docs/150-contract-acceptance
docs/148-149-contract-acceptance
feature/149-runtime-status-contract
feature/150-event-evidence-contract
feature/148-source-config-contract
docs/8-mvp-acceptance
feature/145-sense-e2e-isolation-cleanup
feature/134-bell-independent-e2e
feature/142-bell-ui-shell-startup
feature/140-bell-minimal-admin-menu
feature/138-bell-production-captcha
feature/133-bell-alert-lifecycle
feature/132-bell-rule-alert
feature/131-bell-event-receipt
feature/16-brain-local-events
feature/15-brain-rules
feature/14-brain-vision
feature/13-brain-decode
feature/11-brain-input
main
feat/sense-79-ops-alerts
feat/sense-78-outbox
feat/77-sense-media-shards
feat/76-sense-edge-node-status
feat/75-sense-quota-capacity
feature/74-sense-operations
feature/73-sense-local-events
feature/72-sense-bulk-provisioning
feature/113-record-parallel-acceptance
feature/113-sync-parallel-implementation-docs
feature/71-sense-e2e-regression
feature/62-bell-goadmin-skeleton
feature/10-brain-python-cuda-skeleton
feature/108-sync-devharness
feature/90-sense-root-launcher
feature/106-supervisor-sense
fix/101-sense-layout-shell
feature/104-sense-login-30-days
docs/99-acceptance
feature/99-sense-app-config
feature/70-sense-windows-delivery
fix/95-sense-media-path-constraint
feature/97-sense-password-login
docs/92-acceptance
fix/92-sense-capabilities-jsonb
docs/69-acceptance
feature/69-sense-area
feature/68-sense-liveview
feature/67-sense-mediamtx-reconcile
feature/66-sense-onvif-admission
feature/65-sense-device-credential
feature/64-sense-auth-rbac-audit
feature/61-sense-goadmin-source-baseline
docs/acceptance-batch-20260814
coordination/58-finalize-branch-governance
explore
agent/codex/56-sense-device-edit-payload
agent/codex/54-sense-liveview-on-demand
agent/codex/51-sense-auto-liveview
agent/codex/50-sense-split-camera-credentials
agent/codex/48-sense-onvif-digest
agent/codex/46-sense-env-loader
agent/codex/44-sense-empty-navigation
agent/codex/42-sense-password-length-only
agent/codex/40-sense-password-min-6
agent/codex/37-sense-windows-package
agent/codex/36-bell-docs
agent/codex/9-bell-mvp
agent/codex/21-sense-mvp
agent/codex/28-current-prototypes
agent/codex/5-goadmin-baseline
agent/codex/3-go-admin-ui-reuse
agent/codex/1-collaboration-rules
No results found.
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: ila/yovision#72
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
状态
已完成
基本信息
原始需求与追溯
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 业务规则、配置、运行、排错和验收页面;本地镜像由单一协调工单同步。
验收标准
验证方式
风险与回退
批量写入可能放大凭据与部分失败风险。按条目事务和幂等键处理;回退批次,不删除已成功建立的独立设备。
协同需求摘要
本工单只实现 Sense 内部端口和夹具。涉及 Sense→Brain、Brain→Sense、Sense/Brain→Bell 的正式 schema、机器身份、部署或 E2E 时另建协调工单。
设计证据门禁(2026-08-28)
只读核对发现:已验收的 #28/#30/#32 Sense 原型仅覆盖单台摄像头接入,没有覆盖本工单的批量导入、预校验、待激活、部分成功、失败项重试和结果导出;当前生产页面也不存在这些交互。按仓库“新页面/独立用户功能”双门禁,#72 暂停在设计确认,尚未修改生产代码。
待确认原型 v0.1
Sense 批量开通摄像头交互原型,生成日期 2026-08-28;确认后将把确认人、时间和覆盖范围补回本工单。非目标
本设计不加入 Brain/Bell、共享契约、128 路承诺、密码 CSV、自动删除已成功设备或新的顶级导航。
状态:等待用户确认 v0.1,确认前不实施正式代码。
原型 v0.1 用户审核通过
Sense 批量开通摄像头原型 v0.1;仓库外源文件D:\OPC\yovision-visualizations\issue-72\sense-bulk-provisioning.html原型未要求导出到仓库;按规则保留对话审核版本,不创建
prototypes/快照。实施前技术核对与写路径校正(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.goSense/server/cmd/migrate/migration/version/*provisioning*Sense/server/tests/provisioning/**Sense/ui/src/views/sense/provisioning/**Sense/ui/src/api/sense/provisioning.jsSense/ui/tests/unit/sense/provisioning*.spec.js原授权中的
Sense/ui/src/components/sense/import/**暂不使用:现有 Element Plus 与页面内纯业务辅助模块足以满足,不新增通用组件。禁止路径保持不变。技术方案
SENSE_PROVISIONING_QUOTA读取,缺省 16;只作可配置当前上限,不成为数组、循环、数据库或分页硬上限。该校正不改变用户已确认的 v0.1 功能结果或验收标准,继续实施。
PR #116 已创建。发现 PR 正文误含自动关闭关键字;为严格遵守“用户验收前不得关闭工单”,需要立即移除。当前 Gitea MCP 不提供编辑 PR 正文能力,因此本次仅为修正 PR 正文回退 Gitea API;凭据继续只从
.codex/gitea.env安全读取,不写入仓库或日志。实现完成,等待用户验收
最终差异
SENSE_PROVISIONING_QUOTA调整;批次保存配额快照,16 未写成数据库/循环/分页硬上限。v-permisaction,没有新增通用组件或顶级模块。测试与构建
go test ./...:通过。go test -race ./app/sense/provisioning:通过。go vet ./...:通过。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
ae19e59703f2a4913ae6717e869de80f838a3a92dev:44b60b5b464e0642b30439c0ac2b4039a883cf60main。长期文档
线上 Wiki 已更新并在线回读确认:
b5d964e189b6bf5c61edd86fb265a88ea03d0a26eaa14464fe848747e0577afb374c57dbe310d338859fafc5d86998bc1375c48afd3f968cf65ee8da本工单禁止写共享
docs/**;sync --check已确认本地docs/02-architecture-and-code-map.md相对 Wiki 过期,需由后续单一文档协调工单同步,未在 #72 混入。未验证内容
SENSE_PROVISIONING_MIGRATION_TEST_DATABASE_URL,所以没有执行隔离 PostgreSQL schema smoke;可选迁移测试已随代码提供。请按原型 v0.1 验收;验收通过前不关闭 #72。
用户验收通过(2026-08-28)
#72、#74 验收通过ae19e59703f2a4913ae6717e869de80f838a3a92dev:44b60b5b464e0642b30439c0ac2b4039a883cf60