fix: 服务 changed 状态以本地/云端版本比对为准,不依赖 manifest 的 changed 字段

manifest.changed 是 Jenkins 构建时标记的,表示"本次 release 有改动",
不能反映私有部署是否需要更新。改为 current != latest 比对,
避免 current==latest 时误报"有更新"。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
XuqmGroup 2026-06-24 16:42:46 +08:00
父节点 15a1d79d39
当前提交 9580f77b68

查看文件

@ -310,8 +310,10 @@ public class SystemUpdateService {
Object remoteSvc = remoteServices.get(manifestKey); Object remoteSvc = remoteServices.get(manifestKey);
if (remoteSvc instanceof Map) { if (remoteSvc instanceof Map) {
Map<String, Object> rMap = (Map<String, Object>) remoteSvc; Map<String, Object> rMap = (Map<String, Object>) remoteSvc;
svcInfo.put("latest", rMap.getOrDefault("version", "")); String latestVer = (String) rMap.getOrDefault("version", "");
svcInfo.put("changed", rMap.getOrDefault("changed", false)); String currentVer = localVersions.get(svc);
svcInfo.put("latest", latestVer);
svcInfo.put("changed", !latestVer.isEmpty() && !"unknown".equals(latestVer) && !currentVer.equals(latestVer));
} else { } else {
svcInfo.put("latest", ""); svcInfo.put("latest", "");
svcInfo.put("changed", false); svcInfo.put("changed", false);