Skip to content

JavSP-fork v0.4.4

Choose a tag to compare

@luckwalter luckwalter released this 26 Oct 03:21
· 10 commits to master since this release

JavSP-fork v0.4.4 发布说明

派生自 Yuukiy/JavSP 的带 WEBUI 刮削器。本版本是纯修复版本:把桌面版在**网络驱动器(网盘 / UNC 路径)**下
「立即升级必定失败」的问题修好并带入发布资产;无新增功能,Docker 与 Windows 桌面版均可平滑升级。

本次要点

修复:网盘 / UNC 路径下桌面版无法升级

现象

在网络驱动器上运行的桌面版点「立即升级」后:检查新版本正常、安装包正常下载、主程序也确实退出了,
但程序停在那里不回来、目录也没有被替换——点了升级等于没升。

根因(两个原因叠加,只在网络驱动器上暴露)

  1. 文件锁:桌面壳用的 pywebview 退出后经常残留 msedgewebview2.exe 孤儿进程,仍锁着 _internal/webview 下的文件。
    升级要把整个运行目录改名备份来完成替换,在本地磁盘上偶发失败还能靠等待重试蒙混过去,
    但在 SMB 网络路径上文件锁更"粘",目录改名几乎必然失败。
  2. 失败残留目录的权限异常:一旦某次升级中途失败遗留的 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 桌面版

  1. 下载 JavSP-0.4.4-windows.zip,解压到任意目录(便携,exe 同级即数据目录)。
  2. 升级已有安装:启动旧版 → 设置页「软件更新」→「立即升级」会自动完成下载、替换并保留 config.yml / .sessions.json / JavSP.log;或直接把新 zip 内容覆盖到旧目录(保留旧 config.yml)。
  3. 首次使用请把自己的 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 段。