v0.5.4
修复
安装器覆盖用户 PATH 的严重 Bug
现象:安装或更新 smtc2web 后,用户的环境变量 PATH 被重置为仅包含安装目录,导致 uv、winget、npm 等命令行工具全部失效。
原因:NSIS 安装脚本使用 ReadRegStr 读取现有 PATH。当 PATH 长度超过 NSIS 字符串上限(本构建为 1024 字符)时,读取会失败并返回空值;旧代码把“读取失败”误判为“PATH 为空”,于是用安装目录覆盖了整个 PATH。
修复:安装脚本现在会先通过 Win32 API(RegQueryValueEx)查询 PATH 的真实长度,只有确认长度安全时才进行追加或移除操作;PATH 过长时直接跳过,绝不再覆盖。卸载逻辑同样加固,并按独立条目精确匹配,避免误删包含相同前缀的其他路径。
说明:受 NSIS 字符串长度限制,当用户 PATH 超过约 1000 字符时,smtc2web 不会自动加入 PATH(可手动添加),但不会再破坏任何现有条目。
如果已经遇到 PATH 被覆盖的问题,可在注册表 HKCU\Environment\Path 中恢复原有内容,然后重新打开终端即可生效。
