 Rose DingandClaude Opus 4.6
|
963494ec6f
|
fix: Anthropic tool schema 转 Responses API 时补充缺失的 properties 字段
当 Claude Code 发来的 MCP tool 的 input_schema 为 {"type":"object"} 且缺少
properties 字段时,OpenAI Codex 后端会拒绝并报错:
Invalid schema for function '...': object schema missing properties.
新增 normalizeToolParameters 函数,在 convertAnthropicToolsToResponses 中
对每个 tool 的 InputSchema 做规范化处理后再赋给 Parameters。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-19 21:08:20 +08:00 |
|
 Rose DingandClaude Opus 4.6
|
aadc6a763a
|
feat(subscriptions): 订阅管理页面添加教程指南弹窗
在订阅管理页面工具栏添加教程指南按钮(? 图标),点击弹出模态框,
引导管理员完成订阅功能的完整使用流程:
- 步骤一:创建订阅分组(含跳转分组管理链接)
- 步骤二:分配订阅给用户(搜索用户、选择分组、设置有效期)
- 步骤三:管理已有订阅(调整/重置配额/撤销操作说明表格)
- 底部提示:说明下拉列表为空时的解决方案
弹窗样式参照 BackupView 的 R2 Guide 模态框实现,保持 UI 一致性。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-18 10:49:41 +08:00 |
|
 Rose DingandClaude Opus 4.6
|
f16af8bf88
|
feat(i18n): 添加订阅管理教程指南英文翻译
在 en.ts 中为订阅管理页面新增 guide 相关翻译词条,
与中文翻译保持结构一致,支持中英文切换。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-18 10:49:32 +08:00 |
|
 Rose DingandClaude Opus 4.6
|
5ceaef4500
|
feat(i18n): 添加订阅管理教程指南中文翻译
在 zh.ts 中为订阅管理页面新增 guide 相关翻译词条,包括:
- 教程弹窗标题与副标题
- 三步操作引导文案(创建分组、分配订阅、管理订阅)
- 操作说明表格(调整/重置配额/撤销)
- 底部提示信息
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-18 10:49:13 +08:00 |
|
 Rose DingandClaude Opus 4.6
|
1047f973d5
|
fix: 按 review 意见重构数据库备份服务(安全性 + 架构 + 健壮性)
1. S3 凭证加密存储:使用 SecretEncryptor (AES-256-GCM) 加密 SecretAccessKey,
防止备份文件中泄露 S3 凭证,兼容旧的未加密数据
2. 修复 saveRecord 竞态条件:添加 recordsMu 互斥锁保护 records 的 load/save
3. 恢复操作增加服务端验证:handler 层要求重新输入管理员密码,通过 bcrypt
校验,前端弹出密码输入框
4. pg_dump/psql/S3 操作抽象为接口:定义 DBDumper 和 BackupObjectStore 接口,
实现放入 repository 层,遵循项目依赖注入架构规范
5. 改为流式处理避免大数据库 OOM:备份时 pg_dump stdout -> gzip -> io.Pipe ->
S3 upload;恢复时 S3 download -> gzip reader -> psql stdin,不再全量加载
6. loadRecords 区分"无数据"和"数据损坏"场景:JSON 解析失败返回明确错误
7. 添加 18 个核心逻辑单元测试:覆盖加密、并发、流式备份/恢复、错误处理等
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-14 17:48:21 +08:00 |
|
 Rose DingandClaude Opus 4.6
|
f7177be3b6
|
fix: golangci-lint 修复(gofmt 格式化 + errcheck 返回值检查)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-13 12:01:05 +08:00 |
|
 Rose DingandClaude Opus 4.6
|
875b417fde
|
fix: 补充 wire_gen_test.go 中 provideCleanup 缺少的 backupSvc 参数
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-13 11:53:46 +08:00 |
|
 Rose DingandClaude Opus 4.6
|
53ad1645cf
|
feat: 数据库定时备份与恢复(S3 兼容存储,支持 Cloudflare R2)
新增管理员专属的数据库备份与恢复功能:
- 全量 PostgreSQL 备份(pg_dump),gzip 压缩后上传到 S3 兼容存储
- 支持手动备份和 cron 定时备份
- 支持从备份恢复(psql --single-transaction)
- 备份文件自动过期清理(默认 14 天)
- 前端完整管理页面(S3 配置、定时配置、备份列表、恢复/下载/删除)
- 内置 Cloudflare R2 配置教程弹窗
- Dockerfile 从 postgres 镜像多阶段复制 pg_dump/psql,确保版本一致
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-13 10:38:19 +08:00 |
|
Rose Ding
|
3fcefe6c32
|
feat: prioritize new gemini image models in frontend
|
2026-03-11 17:34:44 +08:00 |
|
Rose Ding
|
bf6585a40f
|
feat: add gemini image test preview
|
2026-03-11 17:12:57 +08:00 |
|
Rose Ding
|
1c0519f1c7
|
feat: add gemini 2.5 flash image support
|
2026-03-11 15:21:52 +08:00 |
|
 Rose DingandClaude Opus 4.6
|
e4bc35151f
|
test: 添加单账号 503 退避重试机制的单元测试
覆盖 Service 层和 Handler 层的所有新增逻辑:
- isSingleAccountRetry context 标记检查
- handleSmartRetry 中 503 + SingleAccountRetry 分支
- handleSingleAccountRetryInPlace 原地重试逻辑
- antigravityRetryLoop 预检查跳过限流
- sleepAntigravitySingleAccountBackoff 固定延迟退避
- 端到端集成场景验证
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-09 22:06:06 +08:00 |
|
Rose Ding
|
021abfca18
|
fix: 单账号分组首次 503 不设模型限流标记,避免后续请求雪崩
单账号 antigravity 分组收到 503 (MODEL_CAPACITY_EXHAUSTED) 时,
原逻辑会设置 ~29s 模型限流标记。由于只有一个账号无法切换,
后续所有新请求在预检查时命中限流 → 几毫秒内直接返回 503,
导致约 30 秒的雪崩窗口。
修复:在 Handler 入口处检查分组是否只有单个 antigravity 账号,
如果是则提前设置 SingleAccountRetry context 标记,让 Service 层
首次 503 就走原地重试逻辑(不设限流标记),避免污染后续请求。
|
2026-02-09 17:25:36 +08:00 |
|
Rose Ding
|
f6cfab9901
|
feat: 添加 Antigravity 单账号 503 退避重试机制
当分组内只有一个可用账号且上游返回 503 (MODEL_CAPACITY_EXHAUSTED) 时,
不再设置模型限流+切换账号(因为切换回来还是同一个账号),而是在 Service 层
原地等待+重试,避免双重等待问题。
主要变更:
- Handler 层:检测单账号 503 场景,清除排除列表并设置 SingleAccountRetry 标记
- Service 层:新增 handleSingleAccountRetryInPlace 原地重试逻辑
- Service 层:预检查跳过单账号模式下的限流检查
- 新增 ctxkey.SingleAccountRetry 上下文标记
|
2026-02-09 14:26:01 +08:00 |
|