[SEN] 让Windows启动脚本读取包内sense.env #46
Closed
opened 2026-08-13 10:27:37 +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#46
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-14 明确验收通过。
基本信息
依赖与并行
子项目影响
Sense/scripts/runtime/start-sense.batSense/scripts/runtime/start-sense.ps1Sense/scripts/runtime/README-WINDOWS.mdSense/scripts/package-windows.batdocs/04-local-development-and-verification.md(Wiki-first)docs/06-troubleshooting.md(Wiki-first)docs/delivery/README.md(Wiki-first)wiki-docs.jsondocs/task/<本工单归档>.mdSense/dist/sense-windows-amd64/**Sense/config/sense.zip、agent_sessions.txt原始需求
Sense/dist/sense-windows-amd64/config已有sense.env,要求更改start-sense.bat读取config/sense.env。要解决什么
包内
config/sense.env已包含 PostgreSQL 等配置,但当前 BAT 从不读取文件,只检查进程环境,导致生产启动错误报告缺少SENSE_DATABASE_URL。做什么 / 不做什么
config/sense.env;仅接受SENSE_*键;忽略空行与#注释;支持含=和 CMD 特殊字符的值;外部非空进程环境变量优先;验证必填键;增加check模式;打包复制启动器;更新说明并重建。sense.env;不打印配置值;不把秘密写入工单/Wiki/日志;不改变 PostgreSQL schema、业务功能或 Brain/Bell。已确认方案
start-sense.bat保持用户入口,调用同目录start-sense.ps1。config/sense.env,再强制 PostgreSQL 模式与包内 UI 路径,验证四个必填秘密/连接字段后启动。demo:同样可读取非秘密端口等配置,但强制内存模式。check:只加载并验证生产配置,不连接数据库、不启动服务、不输出值。config/sense.env> 启动器非秘密默认值。验收标准
config/sense.env时,无需手工set即可通过生产必填配置检查。check不连接数据库、不启动服务且不输出任何值。=及 CMD 特殊字符的值被安全处理。SENSE_*键和格式错误行被拒绝且只报告行号。sense.env。验证方式
另用临时测试目录验证解析边界和环境优先级;执行前只检查键是否为空,不输出值。运行前端构建、Sense 测试、Harness 与 Wiki 镜像检查。
风险和回退
风险:错误解析可能截断连接串,命令注入可能执行配置内容,回显可能泄密。通过 PowerShell 逐行数据解析、键白名单、无 eval/Invoke-Expression、无值输出降低风险。回退:恢复环境变量专用启动器并重新打包;不涉及数据迁移。
范围内补充(2026-08-13)
nn只读检查确认当前包内config/sense.env四个生产必填键均存在且非空。发现同一配置生命周期缺陷:现有打包脚本重建会删除运行目录,可能误删用户已填写的config/sense.env。在既有Sense/scripts/package-windows.batwrite_path 内补充安全暂存/恢复:本地运行目录保留配置,但 ZIP 继续只含 example,绝不含真实sense.env;若存在异常暂存文件则拒绝覆盖,失败时保留可恢复副本。实施完成,待验收
已完成 Windows 包内配置加载并推送,工单保持开启。
结果
start-sense.bat现在调用同目录start-sense.ps1,自动读取config\sense.env。SENSE_*键,不执行配置内容、不打印配置值。start-sense.bat check,只检查生产必填配置,不连接数据库、不启动服务。config\sense.env,但交付 ZIP 不包含真实配置。验证证据
cmd /c Sense\dist\sense-windows-amd64\start-sense.bat check:通过,退出码 0。start-sense.ps1、sense.env.example,不含config/sense.env。6311B29F1899691AF793A4758CD59096C5388D3C85214209B9EAFBCAD232BA8A。python dev_scripts/sync_wiki_docs.py --check:通过。git diff --check:通过。python dev_scripts/check_harness.py --strict:被基线工单 #44 归档缺少“最终方案”章节阻塞;不是本工单引入,未混入修复。未验证:未连接用户 PostgreSQL 启动生产服务,真实 PostgreSQL、MediaMTX 与摄像机仍留待部署验收。
提交与文档
5a17898实现配置加载和安全打包。6bbaa07同步启动、排错和交付 Wiki 镜像。ef85943登记任务归档。eab38da7cae8089d9cf7ed38e48d3e52962b68b4docs/task/46-Sense-Windows包内配置加载.md请在部署目录先运行
start-sense.bat check,通过后再运行start-sense.bat。用户验收通过(2026-08-14)
用户已明确确认当前未验收工单通过验收。本工单的实现、测试与既有证据按记录接受,Wiki 归档状态已更新为“已完成”(revision
0a84806ab339)。该交付属于重建前历史实现;Wiki 归档已完成,代码与原归档镜像继续保留在explore追溯。此验收不改变 #58 的架构决定:旧自研基础框架不会恢复为
dev基线,Sense/Bell 后续仍分别由 #61/#62 从冻结 GoAdmin 源码重建。