Files
yovision/docs/task/90-Sense项目根目录Windows启动脚本.md
T

5.0 KiB
Raw Blame History

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 的子工单索引同步勾选。