hex2077
|
8afcb479fa
|
fix(api-potluck): 修复令牌计数回退并改进显示格式
- 在 normalizeUsageCandidate 中添加缺失的令牌计数回退字段(inputTokenCount/outputTokenCount)
- 确保凭证切换重试上下文始终可用
- 为令牌数量添加紧凑格式化函数(K/M/G 单位),在多个统计页面中应用
- 更新版本号至 2.13.4
|
2026-04-10 15:55:31 +08:00 |
|
hex2077
|
82a6ec2f43
|
feat(plugin): 新增模型用量统计插件并增强 API Potluck 的 token 统计功能
- 新增 `model-usage-stats` 插件,提供模型级别的 token 用量统计和 API 接口
- 增强 API Potluck 插件,记录并展示 prompt、completion 和 total tokens 用量
- 更新插件管理器以支持禁用插件的路由拦截和静态文件访问控制
- 在前端页面中展示 token 用量统计数据
- 升级版本号至 2.13.3
|
2026-04-09 16:30:02 +08:00 |
|
hex2077
|
a069feea71
|
feat: 新增系统提示词内容替换功能并重构常量定义
- 新增 SYSTEM_PROMPT_REPLACEMENTS 配置项,支持在系统提示词中执行顺序内容替换
- 将 MODEL_PROVIDER 等常量从 common.js 迁移到独立的 constants.js 文件
- 为所有提供商策略(OpenAI、Claude、Gemini、Grok、Forward、Codex Responses)添加系统提示词替换支持
- 更新 UI 配置界面,添加替换规则管理功能
- 更新 Grok 提供商模型列表至 4.20 版本
|
2026-04-07 00:04:00 +08:00 |
|
hex2077
|
9f270e714d
|
feat: 扩展管理模型列表提供商支持并优化健康检查
- 将 claude-custom 添加到管理模型列表提供商集合中
- 优化模型列表提取逻辑,避免不必要的协议转换
- 重构工具函数导入,提高代码组织性
- 增强暗黑主题下的模型选择器样式支持
- 改进健康检查逻辑,为管理模型列表提供商自动选择测试模型
- 添加文件锁机制防止配置持久化时的并发写入冲突
|
2026-04-06 16:59:09 +08:00 |
|
hex2077
|
fb26659c23
|
Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API
|
2026-04-06 16:10:30 +08:00 |
|
hex2077
|
77f73f0603
|
feat(grok): 增强图片生成功能并支持提供商置顶
- 更新 Grok 图片生成的 WebSocket 协议以适配最新服务端接口
- 扩展资源代理支持至 imagine-public.x.ai 和 grok.com 域名
- 在配置页面为预加载模型提供商添加置顶功能,可设置默认提供商
- 改进图片渲染逻辑,避免流式输出中的重复图片显示
- 更新相关界面文本以更准确描述预加载提供商功能
|
2026-04-06 16:08:13 +08:00 |
|
HenryZ-0302
|
a497aaaf19
|
feat: add per-node health check action in provider modal
|
2026-04-05 19:57:22 -07:00 |
|
HenryZ-0302
|
75f2676236
|
feat: add managed model list picker for custom providers
|
2026-04-05 13:38:01 -07:00 |
|
hex2077
|
1ee4ca37d1
|
feat(ui): 增强提供商刷新状态显示和版本选择功能
- 在提供商管理界面添加刷新状态徽章,显示“刷新中”状态
- 为更新功能添加版本选择下拉框,支持选择特定版本进行更新
- 在提供商状态中新增 needsRefresh 字段用于跟踪刷新状态
- 修复冷启动时刷新状态重置逻辑,避免持久化状态影响新会话
- 为刷新操作添加超时保护机制,防止适配器调用无限挂起
- 完善国际化翻译,添加相关状态和版本标签
|
2026-04-05 21:46:05 +08:00 |
|
hex2077
|
85d7b50cb1
|
fix: 修复Qwen API配额错误处理和Gemini初始化顺序问题
- 修复Qwen API的配额错误识别和速率限制,避免因配额耗尽导致服务中断
- 修正Gemini API服务初始化顺序,确保OAuth2客户端在HTTP代理配置后创建
- 优化提供商数据脱敏逻辑,防止保存时覆盖真实的敏感信息
- 增强前端错误处理,支持国际化错误消息的翻译和显示
- 移除Antigravity中冗余的思考签名修复代码,简化历史记录处理
- 修复服务管理器初始化逻辑,确保提供商池状态正确更新
- 统一日志下载文件名格式,改进文件下载错误处理
- 更新翻译文件,添加缺失的通用错误消息国际化支持
|
2026-04-05 17:50:11 +08:00 |
|
hex2077
|
02fdc39571
|
Reapply "feat: 支持动态提供商配置组和前缀匹配机制"
This reverts commit b8a983a3cd.
|
2026-04-05 15:20:48 +08:00 |
|
hex2077
|
47d92a41cb
|
docs: 添加 Poixe AI 赞助商信息
在 README 及其翻译版本中新增 Poixe AI 作为赞助商,并添加其徽标图片。此举旨在感谢赞助商支持并为用户提供更多 API 服务选择。
|
2026-04-05 15:20:24 +08:00 |
|
hex2077
|
7c0f26fca4
|
docs: 在README中添加LingtrueAPI赞助商信息
- 在README.md、README-ZH.md、README-JA.md的赞助商部分添加LingtrueAPI条目
- 添加赞助商Logo图片 static/lingtrueapi.png
- 描述LingtrueAPI服务内容及为用户提供的专属优惠
|
2026-04-05 08:12:02 +08:00 |
|
hex2077
|
b8a983a3cd
|
Revert "feat: 支持动态提供商配置组和前缀匹配机制"
This reverts commit 0c9d52f537.
|
2026-04-04 22:49:52 +08:00 |
|
hex2077
|
ceff3771ea
|
Revert "feat: 更新版本至2.12.3并修复多个问题"
This reverts commit 1570fbb096.
|
2026-04-04 22:49:44 +08:00 |
|
hex2077
|
1570fbb096
|
feat: 更新版本至2.12.3并修复多个问题
更新项目版本至2.12.3,新增赞助商LingtrueAPI信息至README文档。修复Qwen提供商缺少系统提示词时自动添加默认提示词的问题。优化Gemini和Antigravity提供商的OAuth2Client代理配置逻辑,根据baseURL自动选择HTTP/HTTPS agent。修复Antigravity提供商中thinking budget逻辑及历史记录中思考签名缺失的问题。将Windows安装脚本翻译为英文。
|
2026-04-03 23:21:32 +08:00 |
|
hex2077
|
0c9d52f537
|
feat: 支持动态提供商配置组和前缀匹配机制
- 添加动态提供商配置组功能,支持通过后缀创建自定义配置组
- 实现前缀匹配机制,使自定义配置组能继承基础类型的配置和模型
- 更新代理、TLS Sidecar、健康检查等系统以支持前缀匹配
- 添加提供商组管理界面,支持创建和显示自定义配置组
- 改进提供商状态API,支持显示所有配置组及其状态
- 升级axios依赖至v1.14.0以获取安全更新
|
2026-04-03 22:42:26 +08:00 |
|
Wenaixi
|
1018750388
|
fix: 深度review后续修复——安全强化、i18n补全、代码清理
安全修复:
- PBKDF2迭代次数从100k提升至310k(OWASP 2023 SHA-512标准)
- 密码最小长度从8位提升至12位
- sanitizeProviderData正则加强:data:协议拒绝而非部分移除,
on\w+事件处理器更严格,javascript:加单词边界防止误匹配
- withFileLock错误处理改为重新抛出,不再静默吞错误
- 后端interval上限校验(MAX_INTERVAL_MS)确保配置一致性
功能修复:
- 重命名performHealthChecks/performScheduledHealthChecks方法,
明确区分初始化检查和定时检查的职责
- generateUUID回退方案兼容Node.js <14.17.0
- 凭据无expiry字段时强制刷新(安全措施)
代码清理:
- 移除未使用的RETRY.DEFAULT_RETRIES常量
- 添加定时健康检查完整英文i18n翻译
|
2026-04-03 02:56:34 +08:00 |
|
Wenaixi
|
740f930f34
|
fix: 深度代码审查修复——空队列泄漏、XSS防护、docker代理清理
- fix(provider-pool): 修复 ownsGlobalSlot=false 时空队列未清理的内存泄漏
- fix(provider-api): 新增 sanitizeProviderData/ProviderPools,对 customName 等用户输入字段做 HTML 转义,防止 XSS
- fix(docker): 删除 docker-compose.yml 中的代理硬编码配置
- fix(api-server): 重构定时健康检查 timer 管理,支持热更新 enabled 状态(stopHealthCheckTimer + 状态变化追踪)
- fix(constants): 提取 HEALTH_CHECK/PASSWORD/NETWORK/RETRY 常量到 constants.js
- style(api-server): 移除日志中密码长度记录,防止敏感元信息泄露
|
2026-04-03 02:56:34 +08:00 |
|
hex2077
|
31708f97c4
|
docs: 添加 AICodeMirror 赞助商信息与趋势徽章
- 在 README 中新增 AICodeMirror 赞助商区块,包含介绍、图片与注册链接
- 为所有语言版本的 README 添加 Trendshift 仓库趋势徽章
- 新增赞助商 logo 图片文件 static/aicodemirror.jpg
|
2026-04-03 02:56:33 +08:00 |
|
Wenaixi
|
a97b05dd2d
|
fix: 修复代码审查发现的10个安全与正确性问题
- fix: provider-pool-manager: 移除 if(true) 占位符,改为读取凭据文件真实过期时间
- fix: provider-pool-manager: Math.min 展开大数组改为 reduce,防止栈溢出
- fix: provider-pool-manager: forceRefreshToken 调用前检查方法是否实现,不存在则 fallback
- fix: provider-api: handleAddProvider 默认路径统一为 configs/provider_pools.json
- fix: config-api: handleGetConfig 改为白名单字段过滤,REQUIRED_API_KEY 脱敏返回
- fix: api-server: 启动日志中 API Key 遮码处理
- fix: utils: generateUUID 改用 crypto.randomUUID() 替代 Math.random()
- fix: config-manager: renderProviderTags innerHTML 加 escHtml 防 XSS 注入
- fix: config-manager: PROVIDER_POOLS_FILE_PATH 未定义时加 || '' 兜底
- fix: section-config.css: white 改为 var(--bg-primary, white) 支持暗黑模式
- chore: .gitignore 添加 AGENTS.md
- chore: docker-compose.yml 添加代理环境变量
|
2026-04-03 02:56:33 +08:00 |
|
Wenaixi
|
801917b478
|
fix: 修复审查发现的3个问题
1. api-server.js: 更新过时的 performHealthChecks(true) 调用
- 方法签名改了,不再接受 isInit 参数
- 改为 performHealthChecks()
2. i18n.js: 更新描述以匹配实际行为
- '留空则检查所有供应商' -> '留空则不进行任何检查'
3. provider-pool-manager.js & provider-api.js: 移除死代码
- _checkProviderHealth 从不返回 null
- 移除对 result === null 的检查
|
2026-03-31 22:46:30 +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
|
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 |
|
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
|
46038a5459
|
feat: 优化OAuth授权流程并更新UI样式
- 在OAuth授权成功页面添加倒计时自动关闭功能,提升用户体验
- 改进授权弹窗通信机制,支持postMessage方式主动关闭窗口
- 更新Gemini OAuth回调页面,添加提供商标识和跨窗口通信
- 重构Grok API错误处理和重试逻辑,增强网络稳定性
- 修改头部组件购买链接为AI账号购买,并更新对应样式
|
2026-03-20 22:39:52 +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 |
|
hex2077
|
80102989e1
|
feat: 添加大锅饭修改密钥名称功能
- 在密钥管理界面添加编辑按钮,支持修改密钥名称
- 新增修改名称模态框,包含输入验证和保存功能
- 更新前端API调用以支持名称修改操作
|
2026-03-12 11:45:43 +08:00 |
|
hex2077
|
0bef99ef4f
|
feat(upload-config): 添加配置文件下载功能并显示节点状态
- 新增配置文件下载 API 端点,支持安全下载 configs 目录下的文件
- 在用量管理界面为每个实例添加下载按钮,可直接下载关联的授权文件
- 在配置文件管理界面添加下载按钮,支持单独下载配置文件
- 为关联节点显示健康状态标签(正常/异常/禁用),使用不同颜色区分
- 更新 Claude Kiro 模型映射,修正 sonnet-4-5 模型名称
- 添加相关国际化翻译和样式支持
|
2026-03-11 11:29:13 +08:00 |
|
hex2077
|
0631d0db05
|
fix: 修复服务器时间格式和保留监控字段
- 将服务器时间格式从本地字符串改为 ISO 字符串以确保一致性
- 在客户端正确格式化从服务器接收的 ISO 时间字符串
- 在 CodexConverter 中保留监控相关字段(_monitorRequestId 和 _requestBaseUrl)以支持请求追踪
|
2026-03-08 22:56:42 +08:00 |
|
hex2077
|
25bcb5a232
|
feat(oauth): 新增 Codex Token 批量导入功能并优化 OAuth 服务器关闭逻辑
- 添加 Codex Token 批量导入功能,支持 SSE 实时进度显示
- 统一各 OAuth 服务器关闭逻辑,添加超时机制和错误处理
- 更新 Codex 支持的模型列表,添加 gpt-5.4 模型
- 优化 Codex API 版本管理,修复模型回退逻辑
- 添加前端批量导入界面及多语言支持
|
2026-03-06 12:46:12 +08:00 |
|
hex2077
|
05fea676b9
|
fix: 修复配置加载失败时回退到模拟数据的问题
移除模拟数据生成函数,当配置加载失败时显示空列表而非错误数据,提高用户体验
|
2026-03-05 17:53:21 +08:00 |
|
hex2077
|
fa19bae517
|
refactor(potluck): 简化 API 大锅饭系统并增强安全性和 UI
- 移除凭证管理和资源包系统,简化为基于每日限额的 Key 管理
- 新增登录安全防护(频率限制、账户锁定、IP 追踪)
- 重构日志系统使用 AsyncLocalStorage 替代全局状态
- 全面升级 UI 界面(主题切换、使用分布统计、响应式设计)
- 优化安装脚本(PowerShell 支持、手动安装指引)
BREAKING CHANGE: API Potluck 插件不再支持凭证资源包功能,所有 Key 仅基于每日限额进行配额管理。user-data-manager 模块已禁用,相关 API 端点已移除。
|
2026-03-05 17:21:47 +08:00 |
|
hex2077
|
32c46f8bfa
|
fix(i18n): 将健康状态翻译从“健康”改为“可用”
更新中英文翻译文件中 providers.status.healthy 的显示文本,使其更准确地反映“可用”状态而非单纯的“健康”状态。
|
2026-03-04 14:59:06 +08:00 |
|
hex2077
|
9ca8b86a4f
|
refactor: 优化提供商加载逻辑并修复流式重试问题
- 将静态提供商配置更新逻辑移至加载函数,避免重复执行
- 修复流式请求重试时已发送数据导致响应损坏的问题
- 增强模型列表和内容生成的服务适配器选择逻辑
- 改进错误处理和日志记录
|
2026-03-04 13:26:08 +08:00 |
|
hex2077
|
8947f93471
|
refactor: 移除 Ollama 协议支持并重构模型路由
- 删除 Ollama 协议相关代码,包括处理器、转换器、文档和常量
- 重构模型列表获取逻辑,支持 auto 模式下的多提供商聚合
- 新增 token 计算工具函数,统一各提供商 token 计数逻辑
- 改进模型前缀路由解析,增强 auto 模式的健壮性
- 更新多语言文档,移除 Ollama 相关内容
|
2026-03-03 23:09:04 +08:00 |
|
hex2077
|
05df61df74
|
feat: 添加 TLS Sidecar 支持并重构前端提供商配置系统
- 新增 TLS Sidecar 功能文档,支持绕过 Grok 等服务的 Cloudflare 403 封锁
- 重构前端提供商配置管理,实现动态配置缓存和统一数据源
- 升级配置文件管理界面 UI,优化信息展示和交互体验
- 改进 Claude Kiro 工具调用流式响应,实时推送 content_block 事件
- 修复 Codex 配额重置时间格式问题
主要变更:
- README 文档新增 TLS Sidecar 配置说明和使用指南
- 新增 tutorial-manager.js 模块,动态渲染 OAuth 授权路径
- routing-examples.js 支持动态生成路径路由示例卡片
- upload-config-manager.js 重构列表项布局,支持节点关联信息展示
- config-manager、models-manager、usage-manager 统一使用提供商配置缓存
- i18n 新增多语言翻译键,更新 Gemini 模型版本信息
|
2026-03-03 20:05:51 +08:00 |
|
hex2077
|
f22cc4499a
|
fix(tls-sidecar): 修复代理请求标头处理和配置显示空值问题
修复 Cloudflare 403 错误:彻底清理代理和网络特征标头,保持小写形式
修复前端配置显示:正确处理 null/undefined 值,避免显示 "null" 字符串
|
2026-03-01 22:01:09 +08:00 |
|
hex2077
|
517120a000
|
fix: 修复Claude内容处理和iFlow模型验证问题
- 修复ClaudeConverter中字符串内容处理逻辑,确保字符串能正确转换为OpenAI格式
- 移除claude-kiro.js中重复的内容处理代码,避免重复计算tokens
- 修复iFlow模型验证逻辑,当模型不存在时使用默认模型
- 优化插件状态提示信息,使用通用的"已启用/已禁用"翻译
|
2026-02-28 17:52:45 +08:00 |
|
hex2077
|
81dd6a3f86
|
feat(tls): 添加 Go uTLS sidecar 以绕过 Cloudflare TLS 指纹检测
- 新增 Go 语言编写的 TLS sidecar 服务,使用 uTLS 库模拟 Chrome 指纹
- 在 Dockerfile 中添加多阶段构建以编译 sidecar 二进制文件
- 扩展配置系统,支持启用/禁用 sidecar 及自定义端口
- 修改 Grok 提供商,使其请求可通过 sidecar 转发
- 在前端界面添加 TLS sidecar 配置选项和国际化支持
- 服务启动时自动启动 sidecar,关闭时优雅停止
|
2026-02-28 00:02:12 +08:00 |
|
hex2077
|
68719879c5
|
feat(architecture): 重构适配器注册机制并引入并发控制系统
建立可扩展的提供商适配器注册表,实现动态服务发现与插槽管理:
架构改进:
- 采用 Map 注册表替代 switch-case 硬编码,支持热插拔适配器
- 实现 acquireSlot/releaseSlot 机制,精确追踪活跃请求与等待队列
- 新增节点评分算法,综合考量并发数、队列长度、健康状态
核心能力:
- 支持并发限制与队列等待,避免单节点过载 (concurrencyLimit/queueLimit)
- 实现 Fallback 链式调用,429 错误自动切换备用凭证
- 添加请求级 IP 追踪,日志格式优化为 `clientIp:requestId`
配套更新:
- 管理界面新增并发/队列配置字段与 Grok 逆向提供商选项
- 用量查询服务扩展 Grok 支持,同步剩余查询次数 (固定总量 80)
- 新增并发测试脚本 (tests/concurrent-test.js),支持自定义并发数与 RPM 限制
配置项:
- GROK_COOKIE_TOKEN, GROK_CF_CLEARANCE, GROK_USER_AGENT, GROK_BASE_URL
|
2026-02-26 18:19:38 +08:00 |
|
lly835
|
f44222bf61
|
fix: clear plugin list container before rendering to prevent duplicate cards
|
2026-02-26 00:48:20 +08:00 |
|
hex2077
|
27acc72dfd
|
feat: 增加登录过期配置并优化错误处理
- 新增 LOGIN_EXPIRY 配置项,支持自定义管理后台登录 Token 有效期
- 优化 provider 错误计数逻辑,当 MAX_ERROR_COUNT 为 0 时禁用自动标记不健康
- 修复工具消息转换中对象内容未序列化的问题
- 增强网络错误处理,可重试的网络错误不再导致进程退出
- 过滤 Claude Kiro provider 中描述为空的工具,避免 API 调用失败
|
2026-02-09 19:50:35 +08:00 |
|
hex2077
|
9ab39d0a9c
|
fix: 将 iflow 配置中的 providerType 更正为 openai-iflow
原 providerType 'openai-iflow-oauth' 与后端定义不匹配,导致上传配置时提供商识别错误。统一使用 'openai-iflow' 以确保前后端一致。
|
2026-02-05 22:14:02 +08:00 |
|