返回 Bug 清单
BUG-0525project-52高已修复backend-logic

syncCrossPlatform 用 slug 分组导致跨平台 compareMultiplePlatforms 被跳过

发现:2026-10-07验证:2026-10-27置信度:70%

症状

跨平台同步时 compareMultiplePlatforms 返回空数组,日志显示 skipped: no matching repos found 但两个平台都有同名仓库。

根因

GitHub slug=owner/repo,Gitea slug=不同 owner/repo(因为 project-52 在不同平台注册的 owner 不一样)。syncCrossPlatform 原来用 slug 做 Map key → GitHub 的 omnispark/project-52 和 Gitea 的 omnispark/project-52 因为 owner 不同被当成两个不同仓库,compareMultiplePlatforms 找不到"对应"的仓库直接跳过。

修复方案

分组 key 从 slug 改为 repo name(纯仓库名,不带 owner)。同时加 sourceSlug 和 targetSlug 参数让 MCP 工具层显式指定跨平台映射。GitHub omnispark/project-52 和 Gitea someone-else/project-52 按 name=project-52 归为一组。

错误签名

syncCrossPlatform compareMultiplePlatforms returns [] when both platforms have the same repo

技术信息

来源项目

project-52

涉及文件

packages/core/src/sync/SyncRunner.ts

标签

project-52, mcp-reported, source-agent