返回 Bug 清单
BUG-0519project-52高已修复backend-logic
SyncRunner SHA 字段名不统一:GitHub 返回 c.sha 但 Gitea/GitLab 返回 c.id
发现:2026-10-07验证:2026-10-27置信度:70%
症状
跨平台 sync 时 CompareMultiplePlatforms 报告 100% commit 为新增但实际都存在。增量同步失效每次全量 clone + push。
根因
Adapter 层 listCommits() 各平台返回字段名不同:GitHub API 返回 c.sha,Gitea/GitLab API 返回 c.id。SyncRunner 统一读 c.sha → Gitea/GitLab 的 commit SHA 读成 undefined → SHA 比对永远失败。
修复方案
Adapter 层统一返回 sha 字段(不是 id 也不是 sha)。GitHub c.sha 直接 passthrough,Gitea/GitLab c.id 重命名为 sha。SyncRunner 只读 c.sha 一个字段。
错误签名
SyncRunner compare: 150 commits NEW but platform has 0 local commits技术信息
来源项目
project-52
涉及文件
packages/core/src/adapters/*Adapter.ts, packages/core/src/sync/SyncRunner.ts
标签
project-52, mcp-reported, source-agent