Wenaixi
b2bb744916
chore: 更新健康检查注释,反映简化后的逻辑(只依赖providerTypes,不使用per-provider checkHealth flag)
2026-03-31 01:42:00 +08:00
Wenaixi
157bb489b5
Merge remote-tracking branch 'origin/main'
2026-03-31 01:24:06 +08:00
Wenaixi
e764075cd9
fix: 修复审查发现的两个问题
...
1. 移除 api-server.js 中重复的启动健康检查代码
2. 恢复 ClaudeConverter 和 OpenAIConverter 中对 googleSearch、url_context、googleMaps 扩展工具的支持
2026-03-31 01:23:22 +08:00
Wenaixi
9172401a50
fix: 简化健康检查逻辑,支持热更新interval,修复provider-tag点击问题
...
- 移除checkHealth per-instance flag,简化逻辑为只依赖providerTypes勾选
- performHealthChecks启动检查也遵循providerTypes过滤
- 优化健康检查日志:显示耗时、通过/失败计数
- 支持修改interval后热更新,无需重启(globalThis.reloadHealthCheckTimer)
- 移除openai-iflow选项(未注册的provider)
- 修复config-manager.js中scheduledHealthCheckProviders点击不生效问题
- providerTypes配置修改后下次检查自动生效
2026-03-31 01:14:44 +08:00
Wenaixi
df9a36291c
fix: 添加配置验证防止格式错误的数据
...
1. config-api.js: 添加 SCHEDULED_HEALTH_CHECK 结构验证
2. config-manager.js: 添加 interval 值范围验证 (60000-3600000ms)
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-30 23:41:49 +08:00
Wenaixi
1bc193f5eb
feat: 添加定时健康检查供应商类型选择功能
...
类似启用代理的提供商,现在可以选择对哪些供应商类型进行定时健康检查
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-30 23:28:19 +08:00
Wenaixi
21c92ff214
fix: 修复定时健康检查两个bug
...
1. startupRun配置现在会在启动时立即运行健康检查
2. 修复快捷按钮重复绑定事件监听器的问题
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-30 23:20:07 +08:00
Wenaixi
129b4f688f
fix: 修复定时健康检查enabled检查bug
...
将scheduledConfig?.disabled改为!scheduledConfig?.enabled
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-30 23:13:47 +08:00
Wenaixi
94561f2750
feat: 优化定时健康检查配置UI,支持手动输入间隔
...
改为数字输入框+快捷按钮,支持自定义任意间隔值
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-30 23:12:59 +08:00
Wenaixi
ceb078c455
fix: 添加定时健康检查 i18n 中文翻译
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-30 23:08:48 +08:00
Wenaixi
79d2441c23
feat: 添加定时健康检查前端配置 UI
...
在配置管理页面添加定时健康检查开关、间隔配置
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-30 23:06:05 +08:00
Wenaixi
1e7e391b0d
feat: 添加 SCHEDULED_HEALTH_CHECK 配置管理支持
...
允许通过 UI API 查看和修改定时健康检查配置
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-30 22:58:04 +08:00
hex2077
8e8a8fc551
feat(converter): 支持转换 url_context 和 google_maps 工具
...
扩展 OpenAI 和 Claude 转换器以支持将 url_context 和 google_maps 工具转换为 Gemini API 格式。现在工具数组可以包含多个独立的工具对象,而不是合并到单个对象中。
2026-03-30 12:00:11 +08:00
Wenaixi
b6206a5d5c
feat: 添加定时健康检查功能
...
实现对供应商节点进行周期性健康测试,失败1次立即标记unhealthy
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-30 01:14:49 +08:00
hex2077
6eee878574
fix(gemini): 确保请求thinking时始终包含includeThoughts字段
...
当上游请求gemini-3的thinking功能时,可能未显式设置includeThoughts字段,
导致无法稳定接收thought parts。添加兜底逻辑,在检测到thinkingLevel或
thinkingBudget非零时自动设置includeThoughts=true,确保思考功能正常工作。
2026-03-29 20:40:45 +08:00
何夕2077
b3b78d2fa5
Merge pull request #421 from yin1245/fix/per-model-context-tokens
...
fix: use per-model context window size for accurate input_tokens estimation
2026-03-29 19:50:30 +08:00
yin1245
88523e099c
fix: use per-model context window size for accurate input_tokens estimation
...
Different Claude models have different context window sizes:
- Opus 4.5/4.6: 1M tokens
- Sonnet 4.5/4.6: 200K tokens
- Haiku 4.5: 200K tokens
The current implementation uses a single hardcoded TOTAL_CONTEXT_TOKENS
constant for all models, which causes input_tokens to be overestimated
for small-context models or underestimated for large-context models.
This change adds a MODEL_CONTEXT_TOKENS mapping and a helper function
getContextTokensForModel() that selects the correct context window size
based on the model being used, falling back to KIRO_CONSTANTS.TOTAL_CONTEXT_TOKENS
for unknown models.
2026-03-29 12:31:46 +08:00
hex2077
a639ca3d26
chore: 更新项目版本号至2.12.0
2026-03-28 17:56:18 +08:00
何夕2077
c603d87eeb
Merge pull request #419 from wsyh4567/fix/responses-api-tool-call-events
...
fix: Responses API 工具调用事件格式错误导致 Codex CLI 无法多轮工作
2026-03-28 17:55:21 +08:00
wsyh4567
4ee01706aa
fix: Responses API 工具调用事件格式错误导致 Codex CLI 无法多轮工作
...
修复 6 个问题:
1. requestId 未传入 convertStreamChunk, 每个 chunk 生成新 UUID,
导致 state 不共享, response.completed 时 fullText 为空
2. TOTAL_CONTEXT_TOKENS=1000000 但 Claude 实际上下文只有 200K,
token 数虚报 5 倍触发异常压缩
3. 默认模型名硬编码为 gpt-4.1-2025-04-14
4. 工具调用参数事件类型用了 response.custom_tool_call_input.delta,
应为 response.function_call_arguments.delta
5. response.completed 的 output 只有空 message, 缺少 function_call 项,
Codex 收不到工具调用结果无法进入多轮
6. 缺少 response.function_call_arguments.done 和工具专属
response.output_item.done 事件
2026-03-28 11:40:29 +08:00
hex2077
8e0541d766
docs: 从README中移除废弃的优先级配置说明
...
移除所有语言版本README中关于provider_pools.json优先级配置的过时文档,
因为该功能已被移除。相应调整后续章节的编号以保持文档连贯性。
2026-03-27 18:12:25 +08:00
hex2077
9bbde40e4c
fix(provider): 修复令牌刷新机制中的并发和状态问题
...
修复 provider-pool-manager 中令牌刷新逻辑的多个问题:
- 将最大刷新次数从 3 更正为 5 以匹配注释
- 添加防并发机制,避免同一节点重复刷新
- 刷新成功后统一重置 needsRefresh、refreshCount 并记录 lastRefreshTime
- 在 Grok 服务中添加重置刷新状态的调用
- 防止 30 秒内的重复刷新请求
这些更改解决了因 401 错误滞后导致的重复刷新、状态不一致以及节点被过早标记为不健康的问题。
2026-03-26 12:32:09 +08:00
何夕2077
c5d475c7e0
Merge pull request #411 from yin1245/fix/kiro-context-tokens
...
fix: update TOTAL_CONTEXT_TOKENS to 1M for Kiro context window upgrade
2026-03-26 12:27:48 +08:00
yin1245
a362243fdd
fix: update TOTAL_CONTEXT_TOKENS to 1M for Kiro context window upgrade
...
Kiro has upgraded its context window from 173k to 1M tokens. The hardcoded
TOTAL_CONTEXT_TOKENS: 172500 causes input_tokens in the converted Claude
SSE response to be severely underestimated (~17% of actual value).
input_tokens is calculated as:
totalTokens = TOTAL_CONTEXT_TOKENS * contextUsagePercentage / 100
inputTokens = totalTokens - outputTokens
With the old 172500 constant, a request with real input of 169,944 tokens
gets reported as ~35,000 tokens, causing downstream billing systems to
undercharge by ~5x.
2026-03-25 19:29:54 +08:00
hex2077
dd32e91b81
docs: 在README中添加赞助商联系信息
...
在README的赞助商部分添加了微信二维码和联系说明,方便潜在赞助商联系项目。更新了中文、英文和日文三个版本的文档以保持一致性。
2026-03-25 16:13:03 +08:00
hex2077
ff4fc850cd
docs: 添加 PackyCode 赞助商信息到 README 文件
...
在英文、简体中文和日文 README 文件中新增赞助商章节,包含 PackyCode 的 Logo 图片、服务介绍和专属优惠信息。
2026-03-25 15:44:43 +08:00
hex2077
d345ec67b7
fix(provider): 清除刷新标记避免节点卡死并更新模型列表
...
当 provider 报错时,清除 needsRefresh 和 refreshCount 标记,防止健康检查逻辑陷入刷新循环导致节点卡死。同时更新 provider-models.js 中的模型列表,添加 gpt-5.4-mini 模型,并更新项目版本号至 2.11.8。
2026-03-25 12:48:54 +08:00
hex2077
d15de54e79
chore: 移除Grok API的初始使用量同步调用
...
移除初始化时自动获取使用量限制的逻辑,避免因API调用失败导致的警告日志干扰
2026-03-20 22:57:56 +08:00
hex2077
19b81381b8
Revert "refactor(grok): 移除流式请求重试逻辑并简化错误处理"
...
This reverts commit 807e3670b1 .
2026-03-20 22:56:27 +08:00
hex2077
807e3670b1
refactor(grok): 移除流式请求重试逻辑并简化错误处理
...
移除 generateContentStream 方法中的重试机制及相关辅助方法,将错误处理简化为仅处理认证错误。版本号更新至 2.11.7.1。
2026-03-20 22:45:46 +08:00
hex2077
46038a5459
feat: 优化OAuth授权流程并更新UI样式
...
- 在OAuth授权成功页面添加倒计时自动关闭功能,提升用户体验
- 改进授权弹窗通信机制,支持postMessage方式主动关闭窗口
- 更新Gemini OAuth回调页面,添加提供商标识和跨窗口通信
- 重构Grok API错误处理和重试逻辑,增强网络稳定性
- 修改头部组件购买链接为AI账号购买,并更新对应样式
2026-03-20 22:39:52 +08:00
hex2077
2a3312df15
feat(providers): 更新 Claude Kiro 版本并增强 Grok API 重试机制
...
- 升级 Claude Kiro 版本至 0.11.63 并更新 AWS SDK 版本
- 为 Grok API 添加统一的重试机制,支持 429/5xx 状态码和网络错误
- 在 Claude Kiro 请求头中添加 agentTaskType 和 x-amzn-codewhisperer-optout
- 优化 Grok 错误处理,网络错误时触发凭证切换但不增加错误计数
2026-03-20 20:52:00 +08:00
hex2077
82c667ac5d
fix(gemini): 修复认证初始化顺序和令牌刷新逻辑
...
调整 initializeAuth 方法中凭证加载和令牌刷新检查的顺序,确保在评估令牌过期前已加载凭证。添加 isTokenExpiringSoon 方法用于主动检查令牌过期状态,防止使用即将过期的令牌。同时修复 Antigravity 服务中模型别名转换的逻辑错误。
2026-03-16 22:54:45 +08:00
hex2077
2680651e3a
chore: 更新版本号至 2.11.5.1
2026-03-16 19:54:01 +08:00
hex2077
e62cc8278a
feat(gemini): 添加 Gemini 2.5 Flash 系列模型支持
...
更新 provider-models.js 以包含新的 Gemini 2.5 Flash 系列模型标识符。
同时,将 antigravity-core.js 中的默认回退模型从可用模型列表的第一个元素硬编码为 'gemini-3-flash',以提高默认行为的可预测性和稳定性。
2026-03-16 19:53:02 +08:00
hex2077
602c6be836
feat: 增强TLS sidecar支持并更新模型列表
...
- 扩展TLS sidecar配置,支持按提供商启用和设置上游代理
- 更新gemini-antigravity提供商模型列表至最新版本
- 修复JSON schema转换中数组type的处理以兼容Google Gemini API
- 为所有主要提供商集成TLS sidecar支持
- 修复CodexConverter中系统消息重复问题
- 改进gemini-core的错误处理和请求头设置
2026-03-16 18:26:16 +08:00
何夕2077
b37ead525c
Merge pull request #384 from obdagli/fix/grok-async-initial-usage-sync
...
fix(grok): avoid blocking the first request on initial usage sync
2026-03-16 10:53:19 +08:00
Ömer Burak Dağlı
0969fad37e
fix(grok): avoid blocking first request on usage sync
2026-03-14 18:12:46 +03:00
hex2077
90ffd83c78
fix(grok): 移除请求体中的tools字段以兼容API
...
Grok API不支持tools参数,在构建请求负载时主动删除该字段,避免调用失败。
2026-03-13 12:13:19 +08:00
hex2077
f82b781214
perf(provider-pool-manager): 优化节点评分算法以提升选择性能
...
- 重构 _calculateNodeScore 方法,简化评分逻辑并减少重复计算
- 提前计算池中最小序列号,避免排序时重复 O(N) 计算
- 统一新鲜节点和普通节点的评分基准,确保轮询公平性
- 更新版本号至 2.11.4.1
2026-03-12 16:08:35 +08:00
hex2077
beba030650
feat(update): 为GitHub API和tarball下载添加多个代理备选
...
添加多个GitHub API和tarball下载的代理源(包括gh-proxy.org各节点和gitclone.com),以增强更新功能的可用性。当某个代理失败时,系统会自动尝试下一个备选源,避免因单个代理不可用导致更新检查或下载失败。
同时更新项目版本号至2.11.4。
2026-03-12 12:24:40 +08:00
hex2077
80102989e1
feat: 添加大锅饭修改密钥名称功能
...
- 在密钥管理界面添加编辑按钮,支持修改密钥名称
- 新增修改名称模态框,包含输入验证和保存功能
- 更新前端API调用以支持名称修改操作
2026-03-12 11:45:43 +08:00
何夕2077
27ac8c9eaf
Merge pull request #379 from Cishoon/fix/codex-claude-content-block-start
...
fix: 修复 Codex→Claude 流式转换并发串流导致 content_block_start 丢失的问题
2026-03-12 11:37:59 +08:00
hex2077
606c05b91c
chore: 更新版本号至2.11.2
2026-03-11 11:29:42 +08:00
hex2077
0bef99ef4f
feat(upload-config): 添加配置文件下载功能并显示节点状态
...
- 新增配置文件下载 API 端点,支持安全下载 configs 目录下的文件
- 在用量管理界面为每个实例添加下载按钮,可直接下载关联的授权文件
- 在配置文件管理界面添加下载按钮,支持单独下载配置文件
- 为关联节点显示健康状态标签(正常/异常/禁用),使用不同颜色区分
- 更新 Claude Kiro 模型映射,修正 sonnet-4-5 模型名称
- 添加相关国际化翻译和样式支持
2026-03-11 11:29:13 +08:00
hex2077
7d2704b14e
fix(system-monitor): 改进进程CPU使用率计算准确性和稳定性
...
- 优先使用Node.js内置的process.cpuUsage()计算当前进程CPU使用率,提高跨平台准确性
- 为外部进程ps命令添加错误处理,避免在BusyBox环境下报错干扰日志
- 更新Dockerfile安装procps工具以支持系统监控功能
- 同步更新版本号至2.11.1
2026-03-09 19:05:41 +08:00
hex2077
f2f02b365f
refactor(providers): 重构 Codex 认证刷新机制以支持后台异步刷新
...
- 将直接调用 refreshAccessToken 改为调用 initializeAuth(true) 以统一认证流程
- 新增 triggerBackgroundRefresh 方法,在 token 即将过期或收到 401 时异步触发刷新
- 移除多处重复的 PoolManager 标记逻辑,统一由 triggerBackgroundRefresh 处理
- 优化 initializeAuth 方法,仅在需要时加载凭证,避免不必要的阻塞
- 更新版本号至 2.11.0
2026-03-09 19:00:15 +08:00
Cishoon
98caecb463
fix: 通过 per-request requestId 彻底解决 Codex→Claude 流式转换的并发串流问题
...
原有 item_id→resId 映射方案中,response.output_item.added 事件不携带
response.id,建立映射时仍依赖共享的 lastClaudeStreamResponseId,并发场景下
映射关系可能从一开始就是错的。
修复:在 handleStreamRequest 中为每个请求生成唯一 requestId,通过调用链传入
toClaudeStreamChunk 作为 streamParams 的隔离 key,使并发流状态完全独立,
不再依赖任何共享状态做并发关联。
2026-03-09 15:49:36 +08:00
hex2077
0631d0db05
fix: 修复服务器时间格式和保留监控字段
...
- 将服务器时间格式从本地字符串改为 ISO 字符串以确保一致性
- 在客户端正确格式化从服务器接收的 ISO 时间字符串
- 在 CodexConverter 中保留监控相关字段(_monitorRequestId 和 _requestBaseUrl)以支持请求追踪
2026-03-08 22:56:42 +08:00
hex2077
8fb4d59b23
fix(openai): 修复 prepareRequestBody 异步调用问题并添加监控钩子
...
将 prepareRequestBody 方法改为异步以支持插件钩子调用,修复因缺少 await 导致的潜在问题。同时添加内部请求转换监控钩子,便于跟踪请求处理流程。
2026-03-08 22:23:43 +08:00