Repository navigation
v1.0.8
狐径 FoxPath v1.0.8 — 升级链路加固与仓库治理(一次代码体检带来的修复)
下载
| 文件 | 说明 |
|---|---|
FoxPath.exe |
主程序,绿色单文件,双击即用。版本号写在 exe 属性里(鼠标悬停 / 右键-属性-详细信息) |
version.json |
升级信息,已装用户点「检查更新」时读取。这个附件不能少,否则老版本拿不到升级提示 |
这一版改了什么
这一版没有新功能,全部来自一次完整的源码体检(逐行读代码 + 语法检查 + 隔离实验 + 线上升级源比对)
之后的修复。目的只有一个:让升级这条路更不容易断,也让"照文档就能复现"这句话成立。
升级链路
- 升级脚本里的版本号做了转义:以前写进 PowerShell 小助手脚本时是直接拼字符串,
版本号里若出现单引号会让整段脚本语法出错 —— 结果是覆盖、重试、回滚一行都执行不到,
用户侧看到的就是"点了升级没反应"。现在统一转义,并在入口按字符集卡死,非法版本号直接拒绝。 - 失败时的清理不再被跳过:发版前自检脚本里的收尾逻辑(还原注册表、还原升级源文件、
把用户原本在跑的程序拉起来)此前依赖一个在异常路径上可能还不存在的变量 ——
一旦演练中途出错,整段清理都会被跳过,还会把真正的错误盖掉。已修正初始化顺序。
仓库治理(评审与协作者直接受益)
- 发版前自检脚本现在能在仓库目录里直接跑:此前它按"工作区布局"推导路径,
在仓库里执行文档给的那条命令会直接报错(FileNotFoundError)——
评审或协作者照 README 操作看到的是一堆异常。现在两种目录布局都能自动识别。 - 自检脚本在中文控制台下不再崩:结论那行用了符号字符,在某些代码页下会抛编码异常,
于是"检查明明全绿"却以一段报错收场。已统一改成 UTF-8 输出。 - 上传清单里删掉一个早已不存在的文件:以前即使其余文件全部上传成功,
也会因为这一条永远报"完成 14/15"并返回失败码。 - 移除三个一次性图标脚本:它们把输入输出路径写死在作者本机、在别的机器上跑不通,
其中还有一个用到了第三方的吉祥物素材 —— 与仓库里"图标为自绘、不含任何第三方吉祥物或标志"
的合规声明相冲突。当前在用的图标确为自绘,这一版把遗留脚本清理掉,让声明与仓库一致。 - README 的图标说明同步改成中性表述并强化了"图标为自绘"。
升级时请注意
- 从 v1.0.6 或更早升上来:那一跳用的仍是老版小助手(不重试、不回滚),可能失败一次;
失败了双击一下FoxPath.exe即可(升级本身是完成的)。 - 从 v1.0.7 往后:升级全程带护栏 —— 拒绝降级、失败会自动回滚并保留一个能用的版本。
- 程序退出前会还原系统代理,所以升级过程中不影响上网。
已知边界(照旧)
- 运营商如果按 SNI 掐断(TLS 握手里能看到域名),本地代理帮不上忙 —— 只能换网络或换方案。
- raw / 发布附件的专属池在部分线路上时通时不通,体检会如实反映,不会假装成功。
- 只代理 GitHub 相关域名;不改 hosts、不改系统 DNS,退出时还原系统设置。
- 控制面板只监听
127.0.0.1,接口已做 Host/Origin 同源校验(挡网页 CSRF 与 DNS rebinding)。
版本历史(近几版)
| 版本 | 日期 | 说明 |
|---|---|---|
| v1.0.8 | 2026-10-10 | 升级链路加固与仓库治理(本次对外发布,Gitee 与 GitHub 同步):升级脚本版本号转义 + 非法版本号拒绝、失败清理不再被跳过;发版前自检脚本可在仓库内直接运行、中文控制台不再报错;上传清单清理;移除三个一次性图标脚本(与"图标为自绘"的合规声明保持一致) |
| v1.0.7 | 2026-10-09 | 升级护栏:拒绝降级、升级失败自动回滚、修掉「升级后新版起不来」的真因(_PYI_* 继承,同时更正此前「杀毒软件拦截」的误判);默认自动升级 + 升级结果气泡与面板回执;接管 github.io |
| v1.0.6 | 2026-10-08 | 联通/移动友好:候选池扩到官方全量、IP 表三源依次试、raw 文件与发布附件也能加速(回应 issue #1)、面板线路体检与手动指定 IP |
| v1.0.5 | 2026-09-22 | 网页版在线升级:检查更新 / 立即升级 / 进度条,下载校验 SHA256 后由独立小助手接管覆盖重启 |
| v1.0.1 | 2026-09-22 | 修「还原不了系统代理」一类缺陷;Fix-GitHub.ps1 补 UTF-8 BOM(此前无法运行) |
| v1.0.0 | 2026-09-19 | 首个版本:本地代理 + PAC、每 5 分钟 IP 体检、候选池自动刷新、全灭自愈、退出还原 |
反馈:GitHub Issues · Gitee Issues
维护约定(发版的人看):这份文件的首行版本号就是当前线上版本。发新版前把它整篇换成新版本的说明
(或改用 --notes <文件>);tools/publish.py 不带 --notes 时会读这份文件,并校验首行版本号与
要发的版本一致,不一致直接中止 —— 免得发行页挂着上一版的文案。