5.0 KiB
5.0 KiB
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件) wiki_page: Task-90-Sense项目根目录Windows启动脚本 wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Task-90-Sense%E9%A1%B9%E7%9B%AE%E6%A0%B9%E7%9B%AE%E5%BD%95Windows%E5%90%AF%E5%8A%A8%E8%84%9A%E6%9C%AC.- wiki_revision: cdfab02efe085b8e40cc19b0941e5c3d3c1ae7aa synchronized_at: 2026-08-27T08:40:20Z
90 Sense项目根目录Windows启动脚本
- 类型:需求
- 所属 Epic:#7
- 所属 MVP / 版本:#8
- 状态:已完成
- 日期:2026-08-15
- Gitea 工单:#90
- Wiki 页面:Task-90-Sense项目根目录Windows启动脚本
- Wiki revision:见本地镜像头
背景与目标
#70 建立的 Windows 交付包入口位于 Sense/dist/sense-windows-amd64/start-sense.bat,用户从项目目录启动时需要进入多层目录。工单 #90 增加项目根目录快捷入口,同时保持包内脚本为配置、迁移和服务编排的唯一事实源。
最终方案
新增 Sense/start_sense.bat。脚本使用 %~dp0 定位同一项目下的交付包,不依赖调用者当前工作目录;通过 call ... %* 原样透传 production、demo 和开关参数,并保存子脚本退出码。交付包入口不存在时输出预期路径和构建命令,返回退出码 2。
脚本不读取 sense.env、不处理密码或 token、不自动构建,也不直接启动 Go/Node 开发服务。项目 README 与 Wiki Project-Profile 记录快捷命令;#70 的包内说明和运行脚本保持不变。
修改文件
Sense/start_sense.bat:项目根目录 Windows 启动入口。Sense/README.md:增加 production/demo 快捷启动说明与职责边界。- Wiki
Project-Profile、docs/00-project-profile.md:记录长期启动入口。 wiki-docs.json、docs/task/90-Sense项目根目录Windows启动脚本.md:登记任务归档镜像。
验收结果
| 验收标准 | 结果 |
|---|---|
| 从任意工作目录定位包内入口 | 通过;从 C:\Windows 使用隔离夹具和当前本地交付包验证 |
| 参数和退出码原样传递 | 通过;demo -SkipMigration "two words" 原样到达假包内脚本,退出码 17 保持 |
| 缺失交付包时明确失败 | 通过;输出预期路径和构建命令,退出码 2 |
| 不包含秘密、不解析配置、不复制启动实现 | 通过;脚本仅 17 行定位、检查、调用和退出码逻辑 |
| 项目说明和 Wiki 镜像一致 | 通过;受影响页面定向同步与检查通过 |
测试
- 隔离缺失包夹具:从
C:\Windows调用,错误信息可行动,退出码 2。 - 隔离假包内脚本:参数输出为
demo -SkipMigration "two words",子脚本退出码 17 被根入口保留。 - 当前 #70 本地交付包:从
C:\Windows分别调用包内入口和根入口并传入安全的无效模式,两者均返回参数校验退出码 1,证明真实路径连接和退出码一致。 - 敏感关键词扫描:脚本不含 password、token、secret、database URL 或 credential。
git diff --check:通过。- Wiki 受影响页面定向
sync_wiki_docs.py --check --config .tmp-wiki-90.json:通过。 - 未验证部分:未通过根入口实际启动 production/demo 服务,以避免在本工单重复操作数据库和服务进程;真实启动链已由 #70 验证。完整 Wiki 全量检查暂受待验收 PR #89 已更新但尚未合入
dev的三个 #70 镜像影响,#90 只对不冲突页面做定向一致性检查。
遗留问题
dev合入 #70 后才包含根入口所调用的版本化包内构建和启动脚本;在此之前根入口会按设计提示先构建且返回 2。
相关提交
a865dda增加 Sense 根目录启动脚本。06d982d记录 Sense 根目录启动方式。
最新 dev 组合回归(2026-08-27)
- 分支合并
dev@15142157299936231fc4dda9aa6624bba34aeed3,合并提交为404e25584e41e4c3ba4e8850b4aa07452ae3f7af。 - 唯一冲突位于
wiki-docs.json:#90 与后续 #70/#95/#97/#99/#101/#104/#106 同时新增任务归档映射;解决时保留全部映射。Sense 业务代码和启动脚本无冲突。 - 在仓库外隔离夹具中从
D:\调用根脚本,demo -SkipMigration "two words"原样到达包内脚本,退出码 17 保持。 - 缺失交付包时输出预期路径与构建命令并返回 2;当前真实交付包入口存在于约定路径。
- 根脚本敏感关键词扫描、
git diff --check、Harness 31 项单测通过;全量 Wiki 镜像检查通过。 check_harness.py --strict仍仅被既有 #66/#67 归档缺少模板章节的 4 项问题阻断,与 #90 无关。- 为避免与当前 Supervisor 托管的生产实例争用 18080,本轮没有通过根入口重复启动服务;
yovision-sense保持 Running,健康检查返回 200。
验收确认
- 2026-08-27,用户明确确认“#90 验收通过”。
- PR #91 按规定合入
dev,main未变更。 - 工单 #90 状态更新为“已完成”并关闭;所属 MVP #8 的子工单索引同步勾选。