Repository navigation
cli-v3.6.6
CLI 3.6.6
修复 Windows 下 flow2spec update 永久认为 Core 已是最新(update --core 实际 no-op)的问题。
根因
queryLatestCoreMetadata() 用 npm view <core>@^3.8.2 … 查兼容范围内最新 Core。Windows 下必须 shell: true 才能找到 npm.cmd,而参数只拼接不转义,cmd.exe 把 ^ 当转义符吃掉,查询退化成精确版本 @3.8.2,目标永远等于当前基线。Linux/macOS 与 CI 一直正常,所以此前未暴露。
改法
- 先
npm view <core> versions --json列全部版本,在 JS 里按 caret 范围过滤取最大 - 再对选中的精确版本查
templateVersion(老版本缺该字段时回落到 Core 版本本身) - 全程不向 argv 传特殊字符;新增
satisfiesCoreRange()
验证
- Windows 真实 registry 实测:
update --check正确报告Core: 3.8.3 -> 3.8.3 - Windows 等价回放(复刻
test-cli-update的 mock):^3.8.2 → 3.9.0、^0.2.3 → 0.2.4、--core生效校验通过、任何调用都不含^ - CI(Node 18/20/22)跑完整 mock 通过;
version:check/pack:check通过
版本
CLI 3.6.5 → 3.6.6;Core 保持 3.8.3、Template 3.8.2,兼容范围仍 ^3.8.2。
本次仅发布 @double-coding/flow2spec@3.6.6。