2026-09-07 用户反馈本地同步 #339 失败:当天货运单列表重复 ID。#339 完成昨天后在今天分页退出,下一轮 #340 成功。当前只证明返回集合重复,旧诊断不能区分同页/跨页,不把动态分页漂移当成已证实的上游根因。 关联已验收 #145;其原方案明确将所有重复 ID 排除在快照恢复外。本次用户已确认窄化更新:当天跨页重复可有界重拉,同页与历史日期重复仍失败。 基线 origin/main bf58ad0(#234 集成版本)。只涉及 Server 同步算法、测试及 SYB 接口 Wiki,不涉及 Web/Android、接口字段、数据库、权限、并发模型、真实重同步或发布重启。无前置阻塞;同一同步文件修改不并行。
复用既有 loadDailyListWithRecovery 最多 3 次尝试,不叠加新的重试循环:当天跨页重复作为不完整快照丢弃,重新读取总数并从第 1 页拉取;每次独立 ID 集合。持续重复不得降级保存当天残缺列表或报告成功,既有历史日期成果保留。 同页重复优先判定为硬错误;即使同一页还存在跨页重叠,也不能被提前返回的可恢复错误遮蔽。非法 ID、条数不自洽、历史日期重复、网络及会话错误边界不放宽。 错误只记录日期、尝试次数、首次/再次页码、行位置、pageSize/start、初始总数、已取得唯一数;不保存原始响应、订单编号、商品/个人信息或凭据。用户给出的货运单 ID 不再作为新增诊断必需字段。 非 UI 后端需求,无需原型。保留既有严格数量/唯一性/最终总数验证,禁止简单去重后标记成功。
只增加当天异常时有界只读拉取;不扩大数据库写入资格、不更改任务终态语义。实际本地重启/权限启动对账、线上发布或人工触发同步均不在本次授权内。 需更新 Wiki SYB-ERP-Interface-Contract 的重复 ID 例外与诊断边界,在线回读后一次 sync 与一次 sync --check;不创建任务快照。 Gitea MCP 当前不可用,回退项目忽略配置的 API;凭据不输出。
范围补充(2026-09-07 用户明确授权):将 #235 移入本地实际运行分支并重启 Admin/API,包含既有启动权限对账;不发布线上、不执行真实同步。本地 Supervisor 仍使用 D:/OPC/goauto,不改变运维路径。仅 cherry-pick ff2d0ca,落地提交 5f4d69b;保留现有 settings.yml 与 Wiki 头部未提交改动。只读预检:无 pending/running 采集/采购任务、无 running SYB 同步,全部已登记迁移均已执行,无待追加迁移。定时任务启停配置保持原样。
2026-09-07 用户追加明确授权:合并 #235、重新构建发布并重启线上 GoAuto。origin/main 已由 bf58ad0 快进至 ff2d0ca;仅包含本单 4 文件改动。线上旧版本 20260907-bf58ad0-234,7 类活动任务计数均为 0。采用既有版本目录及 current 原子切换,失败回滚旧目录;不执行迁移、不改任务开关,不触发真实同步,不更新 Web/APK 或 Nginx 配置。运维方法与长期契约未改变,复用本单已完成 Wiki 闭环,不重复同步。Gitea MCP 不可用,延续 API 回退。
bf58ad0
No dependencies set.
The note is not visible to the blocked user.
来源、事实与依赖
2026-09-07 用户反馈本地同步 #339 失败:当天货运单列表重复 ID。#339 完成昨天后在今天分页退出,下一轮 #340 成功。当前只证明返回集合重复,旧诊断不能区分同页/跨页,不把动态分页漂移当成已证实的上游根因。
关联已验收 #145;其原方案明确将所有重复 ID 排除在快照恢复外。本次用户已确认窄化更新:当天跨页重复可有界重拉,同页与历史日期重复仍失败。
基线 origin/main bf58ad0(#234 集成版本)。只涉及 Server 同步算法、测试及 SYB 接口 Wiki,不涉及 Web/Android、接口字段、数据库、权限、并发模型、真实重同步或发布重启。无前置阻塞;同一同步文件修改不并行。
方案与设计证据
复用既有 loadDailyListWithRecovery 最多 3 次尝试,不叠加新的重试循环:当天跨页重复作为不完整快照丢弃,重新读取总数并从第 1 页拉取;每次独立 ID 集合。持续重复不得降级保存当天残缺列表或报告成功,既有历史日期成果保留。
同页重复优先判定为硬错误;即使同一页还存在跨页重叠,也不能被提前返回的可恢复错误遮蔽。非法 ID、条数不自洽、历史日期重复、网络及会话错误边界不放宽。
错误只记录日期、尝试次数、首次/再次页码、行位置、pageSize/start、初始总数、已取得唯一数;不保存原始响应、订单编号、商品/个人信息或凭据。用户给出的货运单 ID 不再作为新增诊断必需字段。
非 UI 后端需求,无需原型。保留既有严格数量/唯一性/最终总数验证,禁止简单去重后标记成功。
验收与验证
风险与文档
只增加当天异常时有界只读拉取;不扩大数据库写入资格、不更改任务终态语义。实际本地重启/权限启动对账、线上发布或人工触发同步均不在本次授权内。
需更新 Wiki SYB-ERP-Interface-Contract 的重复 ID 例外与诊断边界,在线回读后一次 sync 与一次 sync --check;不创建任务快照。
Gitea MCP 当前不可用,回退项目忽略配置的 API;凭据不输出。
范围补充(2026-09-07 用户明确授权):将 #235 移入本地实际运行分支并重启 Admin/API,包含既有启动权限对账;不发布线上、不执行真实同步。本地 Supervisor 仍使用 D:/OPC/goauto,不改变运维路径。仅 cherry-pick ff2d0ca,落地提交 5f4d69b;保留现有 settings.yml 与 Wiki 头部未提交改动。只读预检:无 pending/running 采集/采购任务、无 running SYB 同步,全部已登记迁移均已执行,无待追加迁移。定时任务启停配置保持原样。
已实现并本地启用,待验收
2026-09-07 用户追加明确授权:合并 #235、重新构建发布并重启线上 GoAuto。origin/main 已由
bf58ad0快进至 ff2d0ca;仅包含本单 4 文件改动。线上旧版本 20260907-bf58ad0-234,7 类活动任务计数均为 0。采用既有版本目录及 current 原子切换,失败回滚旧目录;不执行迁移、不改任务开关,不触发真实同步,不更新 Web/APK 或 Nginx 配置。运维方法与长期契约未改变,复用本单已完成 Wiki 闭环,不重复同步。Gitea MCP 不可用,延续 API 回退。线上发布完成(2026-09-07 14:46,待业务验收)