agentscope-ai / agentscope-ai/QwenPaw
[Bug]: llama.cpp v0.4.0-dev 新版本号格式解析失败,has_update 误判"有更新"并静默回滚用户升级的运行时
- Vorherrschende Sprache
- Python
- Sterne
- 34.9k
- Forks
- 3.1k
- Ø Merge
- 1 T. 15 Std.
- Gemergte PRs (30 T.)
- 225
Beschreibung
### 环境
- QwenPaw Desktop 2.2.0 正式版(Windows 10 x64)
- 组件:QwenPaw Local 内置 llama.cpp 运行时(`~/.qwenpaw/local_models/bin`)
### 问题描述
手工将 bin 目录升级到 llama.cpp **b10853**(2026-09-08 nightly,**5 位 build 号**)并验证可用后,约 40 分钟内 QwenPaw 在无任何提示的情况下将 bin 整体恢复为内置钉死的 **b8744**(2026-04-10 快照,4 位 build 号),手工升级被静默回滚。
### 复现步骤
1. 正常使用 QwenPaw Local(bin = b8744)
2. 用 llama.cpp b10853 官方发行包(llama-b10853-bin-win-cpu-x64.zip)替换 bin 全部内容
3. 验证 `bin\llama-server.exe --version` 输出 `0.4.0-dev (build 10853, commit 9dcf84e5a)`,MiniCPM5-2B GGUF 手工冒烟测试通过(/health 200 + 正常推理)
4. 在 Console 本地模型页进行常规操作(加载其他模型)
5. bin 目录时间戳更新、exe 恢复为旧版单体形态(15,457,792 字节 = b8744),版本号实测回到 `8744 (d91b48d07)`
6. 再选 MiniCPM5 报 `unknown pre-tokenizer type: 'minicpm5'`(b8744 早于 2026-05-27 合并的 minicpm5 分词器支持)
### 根因分析(含与 #5035 的关系)
`src/qwenpaw/local_models/llamacpp.py` 的 `has_update()`:
```python
return int(latest_version[1:]) > int(await self.get_version())
except Exception:
return True # 解析失败 → 误判"有更新"
```
上游 llama.cpp 约 2026-09-04 起进入 v0.4.0 版本化发布(nightly tag b10853+),`--version` 输出格式随之改变:
- 旧格式(b8744):`version: 8744 (d91b48d07)`
- 新格式(b10853 实测):`version: 0.4.0-dev (build 10853, commit 9dcf84e5a)`
#5035(已合并,6/15)将定宽切片改为"取 `version:` 后第一个空格分隔 token",解决了 5 位 build 号的**截断**问题;但新格式下第一个 token 是 `0.4.0-dev`(非纯数字),`int("0.4.0-dev")` 抛 ValueError → except 兜底返回 True → QwenPaw 误判"有更新" → 自动从钉死源重装 b8744,覆盖用户手工升级的 bin。(若环境仍为更早的定宽切片逻辑,`line[9:13]` 取到 `"0.4."` 同样崩溃,殊途同归。)
### 影响
- 用户手工升级 llama.cpp 会被**静默回滚**(全程无提示),新版特性(如 2026-05-27 合并的 MiniCPM5/MiniCPM-V 分词器支持)无法在 QwenPaw Local 使用,报 `unknown pre-tokenizer type: 'minicpm5'`
- 内置钉死的 b8744 已落后上游 5 个月,且表象是"升级后莫名其妙失效",排障成本高
### 期望行为
1. `get_version()` 兼容新格式:优先从 `build ` 提取 build 号,兼容新旧两种输出
2. `has_update()` 解析失败时**不应默认"有更新"并静默重装**——至少应显著提示用户
3. 建议提供配置项:允许用户固定/自定义 llama.cpp 版本或关闭自动恢复;或随版本更新内置运行时(当前钉死版已落后上游较久)
---
*AI 披露:本 issue 由 AI 助手协助整理(对应 #4333 披露惯例),技术证据来自 2026-09-08 实际排障记录(版本实测、日志时间戳、源码比对)。*
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.