[SEN] 修复独立纵切验收脚本的源码隔离、产物清理与启动诊断 #145
Closed
opened 2026-08-29 19:25:41 +08:00 by ila
·
3 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#145
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.
状态
已完成(2026-08-29,PR #146 已合入 dev)
基本信息
原始需求与证据
dev@6702b8a5b9bc0c6383e707904074b9885eeb3661。已确认缺陷
pwsh -NoProfile -File Sense/tests/e2e/run-isolated-e2e.ps1使用Copy-Item -Recurse复制整个Sense/。当Sense/ui/node_modules存在时,pnpm 深层路径复制失败,产品 E2E 尚未开始。-PreparedPackageRoot Sense/dist/sense-windows-amd64时,浏览器脚本被生成到Sense/ui/sense-browser-smoke.cjs,导致测试后出现未跟踪源码文件。目标
node_modules、dist、本地配置、缓存、日志或其他忽略产物。-KeepTemporary仅显式保留当前隔离目录并提示敏感边界。Sense/ui/node_modules与Sense/dist的正常开发工作区执行文档默认命令,完整产品纵切通过且 Git 工作区前后 clean。非目标
contracts/、根级部署或跨项目协议。精确 write_paths
Sense/tests/e2e/run-isolated-e2e.ps1Sense/tests/e2e/browser-smoke.cjs(仅当需要调整脚本输入/输出位置;不得改变产品交互验收范围)Sense/tests/compatibility/**(仅新增或调整本缺陷的脚本静态回归)Sense/ACCEPTANCE.md(仅同步真实可复制命令、临时目录与排错说明)禁止写:Sense 业务实现目录、
Sense/ui/src/**、Sense/server/**、Sense/scripts/build/**、Brain/**、Bell/**、contracts/**、docs/**、根级配置。已确认方案
受控源码隔离
Sense/。node_modules、dist、.env、本地数据库、缓存、日志、凭据和未跟踪文件。临时产物与清理
finally只停止本次脚本启动且可证明归属的进程树,然后清理本次临时目录。-KeepTemporary只保留隔离目录,不影响进程清理。启动就绪与诊断
验收标准
Sense/tests/compatibility/run-static-regression.ps1通过,并覆盖禁止整树复制、禁止源码树生成运行产物、进程提前退出诊断与敏感字段过滤。Sense/ui/node_modules和Sense/dist均存在时,直接运行文档默认命令,不再发生 pnpm 深层路径复制错误。-PreparedPackageRoot模式完成同一产品 E2E,源码树不产生sense-browser-smoke.cjs或其他未跟踪运行文件。git status --short一致且 clean;git diff --check通过。python dev_scripts/harness.py check --strict与python -m unittest discover -s tests -v通过。风险与回退
设计与文档影响
Sense/ACCEPTANCE.md。docs/:本缺陷不改变产品架构、配置、业务规则或部署入口;若实施后命令语义发生长期变化,再由协调任务更新对应 Wiki。从干净且与远端一致的
dev@6702b8a5b9bc0c6383e707904074b9885eeb3661创建feature/145-sense-e2e-isolation-cleanup。当前会话未提供 codebase-memory 图工具,按仓库规则回退到对工单授权 PowerShell/Markdown 文件的本地只读检查;不读取或修改 Sense 业务实现。最终实施证据(2026-08-29)
状态:待验收;提交已推送,PR #146(
feature/145-sense-e2e-isolation-cleanup→dev)可合并。最终差异
git ls-files -- Sense复制当前跟踪源码并在临时仓库提交,排除node_modules、dist、本地配置、日志和所有未跟踪文件。Sense/ACCEPTANCE.md已同步真实隔离、诊断、清理、预检和协议级端口规则。验证
Sense/tests/compatibility/run-static-regression.ps1:31 assertions 通过。sense-browser-smoke.cjs或其他运行文件,无残留进程。1c6b30fac014913457086fe8910ce6d8c47872ab后,从 clean 工作区运行文档默认 E2E:全新源码构建、包审计、PostgreSQL、登录/RBAC、中文设备、Digest ONVIF/RTSP、凭据隔离、MediaMTX、实时监看、区域重校准、Chrome GoAdmin 外壳、冷启动和停止全部通过。python dev_scripts/harness.py check --strict:通过。python -m unittest discover -s tests -v:48 passed。git diff --check与精确写路径检查:通过;仅修改工单授权的 3 个 Sense 文件。实施中定位并闭环的原始偶发超时
MediaMTX readiness timeout提前退出。bind ... forbidden by access permissions;根因是旧脚本以 TCP 空闲结果选择 UDP 端口。提交与文档
1c6b30fac014913457086fe8910ce6d8c47872ab。Sense/ACCEPTANCE.md;无产品架构、配置、业务规则或部署入口变化,不修改 Wiki/根docs/。等待用户验收;验收前不合并、不关闭。
验收结论(2026-08-29)
#145通过。dev。1c6b30fac014913457086fe8910ce6d8c47872ab。dev合并提交:19c0868c5d1719f2554b275f23e0fd714dd17b3b。origin/dev历史。Sense 项目内长期验收说明已更新;无 Wiki/根
docs/变化。