- 新增 GET /api/internal/sync/config 接口,Master 下发 MinBalanceThreshold、MaxRetryCount、SyncBatchSize、SyncIntervalSeconds - Slave 每 5 分钟从 Master 拉取配置并持久化到本地数据库,确保重启不丢失 - 统一 startWorker 支持动态间隔,同步间隔前端修改后无需重启立即生效 - 主节点地址从 TagInput 改为 Form.Input,修复 JSON 数组格式问题 - stringToArray 兼容 JSON 数组和换行分隔两种格式 - 清理根目录测试脚本(已迁移到 test-scripts/) Co-Authored-By: Claude <noreply@anthropic.com>
- 新增 settled 状态,防止 SyncManager 在 PreConsume/Settle 之间同步未结算记录 - Settle 使用 AdjustSyncedQuota(增量 gorm.Expr)替代 UpdateSyncedQuota(绝对值),修复并发覆写 - 网络失败时标记所有记录为 failed 并增加 retry_count,避免无限重试 - 新增 ArchiveStalePendingRecords 定时清理崩溃请求的 pending 记录 - 简化 IsSyncedUser/IsLocalUser 移除冗余 id 参数 - Dockerfile 切换华为云 Go 镜像,移除不兼容的 GOEXPERIMENT=greenteagc Co-Authored-By: Claude <noreply@anthropic.com>
实现 Master-Slave 架构的跨区域用户和配额同步功能,支持国内主节点与 海外从节点之间的用户创建推送、余额同步、预扣费批量回传。 主要变更: - 新增 region_sync 服务层(SyncManager/SyncClient/推送逻辑) - User 模型扩展 Source/RemoteUserId/SyncedQuota/LastSyncAt 字段 - BillingSession 支持 SyncedUserFunding 资金来源 - 新增 SyncAuth 中间件(X-Sync-API-Key + 常量时间比较) - 新增 PendingSyncRecord/QuotaSyncLog 数据模型 - 前端新增区域同步配置面板 - 支持 SESSION_NAME 环境变量避免多节点 cookie 冲突 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>