Repository navigation
JavSP-fork v0.4.4
JavSP-fork v0.4.4 发布说明
派生自 Yuukiy/JavSP 的带 WEBUI 刮削器。本版本是纯修复版本:把桌面版在**网络驱动器(网盘 / UNC 路径)**下
「立即升级必定失败」的问题修好并带入发布资产;无新增功能,Docker 与 Windows 桌面版均可平滑升级。
本次要点
修复:网盘 / UNC 路径下桌面版无法升级
现象
在网络驱动器上运行的桌面版点「立即升级」后:检查新版本正常、安装包正常下载、主程序也确实退出了,
但程序停在那里不回来、目录也没有被替换——点了升级等于没升。
根因(两个原因叠加,只在网络驱动器上暴露)
- 文件锁:桌面壳用的 pywebview 退出后经常残留
msedgewebview2.exe孤儿进程,仍锁着_internal/webview下的文件。
升级要把整个运行目录改名备份来完成替换,在本地磁盘上偶发失败还能靠等待重试蒙混过去,
但在 SMB 网络路径上文件锁更"粘",目录改名几乎必然失败。 - 失败残留目录的权限异常:一旦某次升级中途失败遗留的
update/目录,其在 NAS 一侧的访问权限会变成异常状态,
SMB 客户端对它直接"拒绝访问",导致后续每一次升级都卡在目录改名那一步。
修复
- 升级助手在移动旧目录之前,主动结束残留的
msedgewebview2进程释放文件锁。 - 目录改名包进最多 10 次的重试循环:每次失败都记录原因、再次清锁、等待 2 秒后重试;
10 次仍失败才判定为"被其他程序占用"并中止,不再无声失败。 - 启动新版本改为容错:网络路径下偶发启动失败不再触发"假回滚"(把已装好的新版本又换回旧版)。
建议
桌面版优先装在本地磁盘(如 C:\JavSP)运行,网络驱动器只作为例外。
本次修复让网盘路径下的升级"基本可靠",但本地盘才是治本方案——
网络驱动器自身的文件锁与权限行为不可控,升级只是被修复到不再必然失败。
安装 / 升级
Docker(推荐,NAS / 服务器)
docker load -i javsp-fork-0.4.4-image.tar.gz
docker restart javsp容器内版本以
/api/health返回的version为准;界面右下角显示版本号。
Windows 桌面版
- 下载
JavSP-0.4.4-windows.zip,解压到任意目录(便携,exe 同级即数据目录)。 - 升级已有安装:启动旧版 → 设置页「软件更新」→「立即升级」会自动完成下载、替换并保留
config.yml/.sessions.json/JavSP.log;或直接把新 zip 内容覆盖到旧目录(保留旧config.yml)。 - 首次使用请把自己的
config.yml放到 exe 同级。
校验
下载后可用发布资产 javsp-fork-0.4.4.sha256 核对(含 windows.zip 与 image.tar.gz 两个值):
sha256sum -c javsp-fork-0.4.4.sha256回归验证
- 6 个指定回归用例文件共 42/42 通过。
- Windows 桌面版 exe 实跑验证:
/api/health返回version=0.4.4、status=ok,更新端点current=0.4.4。 - NAS 部署后
/api/health返回version=0.4.4、container=true;前端资产名与构建一致;挂载卷config.yml未被改动。
附注
- 本版本 Docker 端仅同步源码(含本次修复),无容器运行时行为变化。
- 历史 CHANGELOG 中保留的早期部署位置描述(如本机安装目录、网盘共享名)属已发布记录,本次未做破坏性清洗。
- 完整变更见仓库
CHANGELOG_FORK.md的 v0.4.4 段。