github-actions[bot]
0f5321b0ef
chore: sync VERSION file with release v1.1.260 [skip ci]
v1.1.260
2026-01-21 02:19:34 +00:00
shaw
c7d7bf47d6
fix: 更新claude账号oauth链接生成规则
2026-01-21 10:06:24 +08:00
Wesley Liddick
ebc30b6026
Merge pull request #906 from 0xRichardH/fix-bedrock-sse-stream-event [skip ci]
...
Fix bedrock sse stream event
2026-01-21 09:38:19 +08:00
Wesley Liddick
d5a7af2d7d
Merge pull request #903 from RedwindA/main [skip ci]
...
feat(droid): add prompt_cache_retention and safety_identifier to fiel…
2026-01-21 09:37:19 +08:00
Richard Hao
81a3e26e27
fix: correct Bedrock SSE stream event format to match Claude API spec
...
- message_start: nest fields inside 'message' object with type: 'message'
- content_block_delta: add type field to data
- message_delta: add type field to data
- message_stop: remove usage field, just return type
- Extract usage from message_delta instead of message_stop
2026-01-18 11:38:38 +08:00
Richard Hao
64db4a270d
fix: handle bedrock content block start/stop events
2026-01-18 10:58:11 +08:00
RedwindA
ca027ecb90
feat(droid): add prompt_cache_retention and safety_identifier to fieldsToRemove
2026-01-16 04:22:05 +08:00
github-actions[bot]
21e6944abb
chore: sync VERSION file with release v1.1.259 [skip ci]
v1.1.259
2026-01-15 03:07:53 +00:00
Wesley Liddick
4ea3d4830f
Merge pull request #858 from zengqinglei/feature/gemini-retrieve-user-quota
...
feat: 添加 Gemini retrieveUserQuota 接口支持
2026-01-15 11:07:41 +08:00
github-actions[bot]
3000632d4e
chore: sync VERSION file with release v1.1.258 [skip ci]
v1.1.258
2026-01-15 01:25:03 +00:00
Wesley Liddick
9e3a4cf45a
Merge pull request #899 from UncleJ-h/fix/remove-unused-heapdump
...
fix: remove unused heapdump dependency
2026-01-15 09:24:51 +08:00
UncleJ-h
eb992697b6
fix: remove unused heapdump dependency
...
The heapdump package was added in v1.1.257 but is not actually used anywhere in the codebase.
This causes build failures on platforms without Python (e.g., Zeabur) because heapdump requires node-gyp compilation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-14 16:43:45 +08:00
github-actions[bot]
35ab34d687
chore: sync VERSION file with release v1.1.257 [skip ci]
v1.1.257
2026-01-14 07:41:16 +00:00
Wesley Liddick
bc4b050c69
Merge pull request #895 from wayfind/fix/memory-simple
...
fix(memory): reduce memory retention in request handling
2026-01-14 15:40:59 +08:00
root
189d53d793
style: fix ESLint prefer-const and formatting
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-12 10:46:08 +00:00
root
b148537428
style: fix prettier formatting
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-12 10:42:39 +00:00
root
9d1a451027
fix(memory): comprehensive req closure capture fixes
...
Additional fixes for memory leaks:
- Bedrock stream: extract _apiKeyIdBedrock, _rateLimitInfoBedrock, _requestBodyBedrock
- Non-stream requests: extract variables at block start
- Non-stream service calls: use extracted variables
- Non-stream usage recording: use extracted variables
All async callbacks now use local variables instead of req.* references,
preventing the entire request object (including large req.body with images)
from being retained by closures.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-12 10:29:29 +00:00
root
ba815de08f
fix(memory): extract req properties to avoid closure capturing entire request object
...
Problem:
- usageCallback closures referenced req.apiKey.id and req.rateLimitInfo
- This caused entire req object (including req.body with images) to be retained
- Base64 images in messages accumulated in memory (290 images = 26MB)
Solution:
- Extract needed properties before callback: _apiKeyId, _rateLimitInfo, etc.
- Closures now capture small local variables instead of entire req object
- Enables proper GC of request bodies after stream completion
Results verified via heapdump analysis:
- String memory: 144MB -> 24MB (-83%)
- Base64 images: 290 -> 0 (-100%)
- Heapdump size: 57MB -> 28MB (-51%)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-12 09:53:20 +00:00
root
b26027731e
fix(memory): clear bodyString after req.write() to prevent closure capture
...
Additional memory optimizations:
- Set bodyString = null after req.write() in both stream and non-stream requests
- Use let instead of const for bodyString to allow nullifying
- Store non-stream originalBodyString in bodyStore to avoid closure capture
- Clean up bodyStore in finally block for non-stream requests
This prevents V8 closures (res.on handlers) from retaining large request
body strings until stream completion.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-12 08:57:54 +00:00
root
f535b35a1c
fix(memory): use bodyStore to avoid closure capturing request body
...
Problem:
- Stream response handlers (res.on) captured requestOptions in closures
- requestOptions contained originalBodyString (~800KB per request)
- These strings couldn't be GC'd until stream completed
- With concurrent requests, memory accumulated rapidly
Solution:
- Store request body strings in this.bodyStore Map with unique ID
- Pass only bodyStoreId in requestOptions (not the 800KB string)
- Closures capture small ID, not large string
- Clean up bodyStore on request completion (success/error/timeout)
- Extract needed values before closures to avoid capturing body object
2026-01-12 08:31:47 +00:00
github-actions[bot]
962e01b080
chore: sync VERSION file with release v1.1.256 [skip ci]
v1.1.256
2026-01-10 08:56:29 +00:00
Wesley Liddick
fcc6ac4e22
Merge pull request #885 from junejuneli/feat/add_claude_aws_type
...
为 AWS Bedrock 账户添加 Bearer Token 认证支持
2026-01-10 16:56:13 +08:00
Wesley Liddick
3a03147ac9
Merge pull request #884 from moonsphere/fix_claude_auth [skip ci]
...
fix: claude subscription detection
2026-01-10 16:55:59 +08:00
juenjunli
94f239b56a
feat: 添加 Claude 4.5 系列模型支持到 AWS Bedrock 映射表
...
为 AWS Bedrock 服务添加 Claude 4.5 系列模型的映射支持,包括:
- Claude 4.5 Opus (claude-opus-4-5)
- Claude 4.5 Sonnet (claude-sonnet-4-5)
- Claude 4.5 Haiku (claude-haiku-4-5)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Haiku 3.5 <noreply@anthropic.com >
2026-01-10 16:04:58 +08:00
juenjunli
b07873772c
fix
2026-01-10 14:19:59 +08:00
juenjunli
549c95eb80
feat: 为 AWS Bedrock 账户添加 Bearer Token 认证支持
...
- 新增 credentialType 字段支持 access_key 和 bearer_token 两种认证方式
- 实现 Bedrock 账户的 testAccountConnection 方法,支持 SSE 流式测试
- 前端账户表单增加认证类型选择器,自动切换输入字段
- 前端测试模态框根据账户类型自动选择测试模型(Bearer Token 使用 Sonnet 4.5,Access Key 使用 Haiku)
- 改进测试接口错误处理,避免响应流重复关闭
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-10 14:13:36 +08:00
jett
b397954ea4
fix lint
2026-01-10 11:41:35 +08:00
jett
ed835d0c28
using TTL-based random suffix
2026-01-10 00:56:21 +08:00
jett
28b27e6a7b
fix: claude subscription detection
2026-01-10 00:31:17 +08:00
github-actions[bot]
810fe9fe90
chore: sync VERSION file with release v1.1.255 [skip ci]
v1.1.255
2026-01-09 07:55:15 +00:00
Wesley Liddick
141b07db78
Merge pull request #880 from DaydreamCoding/feature/fix-claude-openai-endpoint
...
fix: 修正Claude通过openaiClaudeRoutes访问失败问题
2026-01-09 15:55:01 +08:00
QTom
1dad810d15
refactor: 统一权限检查逻辑,使用 apiKeyService.hasPermission
...
将散布在各处的权限检查逻辑(permissions || 'all')统一为
apiKeyService.hasPermission() 方法调用,确保:
- 权限检查的唯一真实来源
- 避免默认值不一致导致的安全问题
- 便于后续权限模型的扩展和维护
影响文件:
- geminiHandlers.js: key-info 端点
- apiStats.js: user-stats 统计端点
- openaiClaudeRoutes.js: 权限校验辅助函数
- openaiRoutes.js: key-info 端点
2026-01-09 14:36:31 +08:00
QTom
4723328be4
fix: 添加 OpenAI 兼容路由对 Claude Console 账户的支持
2026-01-09 14:31:06 +08:00
曾庆雷
944ef096b3
fix: eslint 代码风格优化
2026-01-08 18:26:45 +08:00
github-actions[bot]
114e9facee
chore: sync VERSION file with release v1.1.254 [skip ci]
v1.1.254
2026-01-08 04:08:28 +00:00
shaw
e20ce86ad4
feat: Antigravity 账号注入 systemInstruction 和 requestType header
...
- 在 antigravityClient.js 的请求 header 中添加 requestType: agent
- 在 anthropicGeminiBridgeService.js 中为 antigravity 账号前置注入系统提示词
2026-01-08 12:07:50 +08:00
shaw
6caabb5444
update readme
2026-01-08 08:58:16 +08:00
shaw
b924c3c559
update readme
2026-01-08 08:33:09 +08:00
QTom
6682e0a982
fix: 主动刷新等待重置的 Claude 账户 Token(防止 5小时/7天 等待期间 Token 过期)
...
防止非等待等待重置的账号刷新,导致大量错误消息通知问题
2026-01-08 00:05:47 +08:00
github-actions[bot]
b9c088ce58
chore: sync VERSION file with release v1.1.253 [skip ci]
v1.1.253
2026-01-07 14:12:03 +00:00
shaw
2ff74c21d2
Merge branch 'antigravity'
2026-01-07 21:55:15 +08:00
shaw
8a4dadbbc0
fix(security): 修复余额脚本功能的RCE和SSRF漏洞
...
- 将 BALANCE_SCRIPT_ENABLED 默认值改为 false,需显式启用
- 添加 isUrlSafe() SSRF防护,禁止访问:
- localhost/127.x
- 私有IP (10.x, 172.16-31.x, 192.168.x)
- AWS metadata (169.254.x)
- 非HTTP(S)协议
2026-01-07 21:55:08 +08:00
shaw
adf2890f65
fix: 去除context_management会导致压缩失败还原逻辑 [skip ci]
2026-01-07 21:24:39 +08:00
Wesley Liddick
7d892a69f1
Merge pull request #873 from DaydreamCoding/patch-5 [skip ci]
...
fix: 主动刷新等待重置的 Claude 账户 Token(防止 5小时/7天 等待期间 Token 过期)
2026-01-07 08:09:15 -05:00
QTom
a749ddfede
fix: 主动刷新等待重置的 Claude 账户 Token(防止 5小时/7天 等待期间 Token 过期)
...
主动刷新等待重置的 Claude 账户 Token(防止 5小时/7天 等待期间 Token 过期)
2026-01-07 20:57:49 +08:00
Wesley Liddick
dbd4fb19cf
Merge branch 'main' into antigravity
2026-01-07 03:49:14 -05:00
github-actions[bot]
39ba345a43
chore: sync VERSION file with release v1.1.252 [skip ci]
v1.1.252
2026-01-07 08:22:01 +00:00
shaw
2693fd77b7
fix: 移除context_management字段,避免报错
2026-01-07 16:21:41 +08:00
52227
3cc3219a90
docs: 更新中英文 README,完善模型配额查询与 Claude Code 适配说明
...
- 新增 Antigravity 账户额度与模型列表查询指南
- 完善 Claude Code 兼容性特性说明 (Thinking Signature, Zombie Stream Watchdog)
- 移除无关广告信息,优化文档结构
- 明确二开维护者信息
2026-01-05 23:07:04 +08:00
52227
1b834ffcdb
feat: 增强稳定性与Antigravity适配 (僵尸流看门狗/自动重试/签名缓存)
...
主要变更:
1. **僵尸流看门狗 (Zombie Stream Watchdog)**:
- 新增 resetActivityTimeout 机制,45秒无数据强制断开连接,防止服务假死。
2. **智能重试机制**:
- 针对 Antigravity 429 (Resource Exhausted) 错误,自动清理会话并切换账号重试。
- 涵盖流式 (Stream) 和非流式 (Non-stream) 请求。
3. **Thought Signature 增强**:
- 新增签名缓存与恢复机制 (signatureCache)。
- 增加 skip_thought_signature_validator 兜底签名策略。
- 强制补充 thought: true 标记以满足上游校验。
4. **系统稳定性与调试**:
- 使用 util.inspect 替代 JSON.stringify 打印错误日志,彻底修复循环引用导致的服务崩溃。
- 新增针对 Antigravity 参数错误 (400) 的详细请求结构分析日志。
- 优化日志写入为轮转模式 (safeRotatingAppend)。
5. **其他优化**:
- antigravityClient 数据处理安全增强 (safeDataToString)。
2026-01-05 09:37:39 +08:00