hex2077
|
ea86844be2
|
chore: 更新版本号至2.10.7
|
2026-03-06 12:46: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 |
|
何夕2077
|
81d404761a
|
Update VERSION
|
2026-03-05 17:24:42 +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
|
8456f64615
|
fix(CodexConverter): 修复流式响应中事件与状态不匹配的问题
当 Codex 增量事件缺少 response.id 时,现在会智能选择最近活跃的流状态进行归并,避免使用固定 "default" key 导致状态污染。同时为流状态添加最后更新时间戳,并维护最近响应ID的引用,确保流式转换的准确性和稳定性。
|
2026-03-04 15:26:53 +08:00 |
|
hex2077
|
eec5cb8d81
|
chore: 更新版本号至 2.10.5.2
|
2026-03-04 14:59:24 +08:00 |
|
hex2077
|
32c46f8bfa
|
fix(i18n): 将健康状态翻译从“健康”改为“可用”
更新中英文翻译文件中 providers.status.healthy 的显示文本,使其更准确地反映“可用”状态而非单纯的“健康”状态。
|
2026-03-04 14:59:06 +08:00 |
|
何夕2077
|
8a92e4d055
|
Merge pull request #362 from Cishoon/fix/claude-streaming-content-block-events
fix: 补齐 Claude 流式响应的 content_block_start/stop 事件序列
|
2026-03-04 14:58:25 +08:00 |
|
Cishoon
|
5d8ad5a925
|
fix: 补齐 Claude 流式响应的 content_block_start/stop 事件序列
修复通过 /v1/messages 对接 Claude 客户端时「长时间无输出,最后一次性出现大量内容」的问题。
问题原因:
- CodexConverter 在文本增量场景只发送了 content_block_delta,
缺少对应文本块的 content_block_start 和 content_block_stop 事件
- Claude 兼容客户端无法将 delta 识别为可渲染增量
修复内容:
- 为 text/thinking 输出分支补齐完整的 Claude SSE 事件序列:
首个 delta 前发送 content_block_start,块结束时发送 content_block_stop
- 新增 blockStarted/currentBlockType 状态跟踪,正确处理块类型切换
- 在 tool_use 和 response.completed 前关闭已打开的内容块
- message_start 事件补充 content: [] 字段
影响范围:CodexConverter、ClaudeConverter 流式转换逻辑
|
2026-03-04 14:40:30 +08:00 |
|
何夕2077
|
76eaf58b32
|
Update VERSION
|
2026-03-04 13:28:10 +08:00 |
|
hex2077
|
9ca8b86a4f
|
refactor: 优化提供商加载逻辑并修复流式重试问题
- 将静态提供商配置更新逻辑移至加载函数,避免重复执行
- 修复流式请求重试时已发送数据导致响应损坏的问题
- 增强模型列表和内容生成的服务适配器选择逻辑
- 改进错误处理和日志记录
|
2026-03-04 13:26:08 +08:00 |
|
何夕2077
|
694f0c9099
|
Update VERSION
|
2026-03-03 23:10:38 +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
|
3989add60b
|
chore: 更新版本至2.10.4并移除iFlow协议支持
- 更新VERSION文件至2.10.4
- 在tls-sidecar中强制日志输出到stdout,避免Node.js误判
- 更新程序时排除tls-sidecar目录
- 增强GrokConverter的模型列表转换逻辑,支持更多数据结构
|
2026-03-03 01:15:43 +08:00 |
|
hex2077
|
1798fc3df1
|
chore: 更新版本号并优化Docker构建顺序
- 将版本号从2.10.3.2更新至2.10.3.3
- 调整Dockerfile中复制tls-sidecar二进制文件的位置,避免被本地文件覆盖
- 在tls-sidecar启动时增加Linux/macOS平台下的执行权限设置
- 增强二进制文件存在性检查,确保目标为常规文件
|
2026-03-03 00:35:15 +08:00 |
|
何夕2077
|
65cdcaa3b5
|
Update VERSION
|
2026-03-03 00:29:40 +08:00 |
|
何夕2077
|
8d5c3339b4
|
Update VERSION
|
2026-03-02 22:12:04 +08:00 |
|
hex2077
|
698c6e11d3
|
fix(codex): 修复凭据刷新和过期时间处理逻辑
- 记录加载凭据的路径,确保刷新后写回同一文件
- 修复 token 刷新时过期时间字段名错误(expired vs expire)
- 增加 expiresAt 有效性检查,防止 NaN 导致刷新永不触发
- 优化凭据保存路径逻辑,避免读写不一致问题
|
2026-03-02 22:11:45 +08:00 |
|
hex2077
|
1fda373742
|
Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API
|
2026-03-02 21:19:20 +08:00 |
|
hex2077
|
eeff72141c
|
docs: 更新 README 文档以添加 Grok 协议支持说明
- 在中文、日文和英文 README 中更新版本日志,新增 Grok 协议支持条目
- 在核心优势部分将 Grok 添加到支持模型列表中
- 在最新模型支持部分添加 Grok 3/4 的详细描述
- 新增 Grok Cookie/SSO 配置步骤章节
- 在提供商列表和代理配置示例中添加 Grok 支持
|
2026-03-02 21:19:13 +08:00 |
|
何夕2077
|
89ce298703
|
Update VERSION
|
2026-03-02 19:50:14 +08:00 |
|
hex2077
|
0b071f261d
|
feat(converter): 为Grok协议添加完整的转换支持
- 在GeminiConverter、ClaudeConverter和OpenAIResponsesConverter中增加toGrokRequest方法
- 扩展GrokConverter以支持向Gemini、OpenAI Responses、Codex等协议的响应转换
- 移除IFLOW_API适配器的注册以清理未使用的代码
- 修复Grok媒体URL处理中不必要的SSO令牌追加逻辑
|
2026-03-02 19:47:43 +08:00 |
|
hex2077
|
3f8fdc0b8e
|
feat(grok): 使用 UUID 替换 SSO token 进行资源代理以提高安全性
- 在 Grok 资源代理接口中优先使用 UUID 获取 token,避免 token 泄露在 URL 中
- 为 ProviderPoolManager 添加 findProviderByUuid 方法,支持通过 UUID 查找配置
- 重构 GrokConverter,将 SSO token 依赖改为 UUID 依赖
- 更新 VERSION 文件至 2.10.2.1
|
2026-03-02 00:14:37 +08:00 |
|
hex2077
|
c91d2ce3ab
|
feat(grok): 添加资源代理功能并优化用量显示
- 新增 Grok 资源代理接口,将 assets.grok.com 的资源通过本地代理访问
- 在请求处理中注入 requestBaseUrl 配置,供转换器生成正确的代理链接
- 统一各提供商核心服务中删除 _requestBaseUrl 字段的逻辑
- 优化 Grok 用量显示逻辑,支持按 token 或 query 显示剩余额度
- 更新 UI 管理器,允许 /api/grok/assets 接口免认证访问
- 改进 Grok 转换器,在流式输出中智能处理被截断的 URL
|
2026-03-01 23:55:07 +08:00 |
|
何夕2077
|
1cf6f9092b
|
Update VERSION
|
2026-03-01 22:02:10 +08:00 |
|
hex2077
|
f22cc4499a
|
fix(tls-sidecar): 修复代理请求标头处理和配置显示空值问题
修复 Cloudflare 403 错误:彻底清理代理和网络特征标头,保持小写形式
修复前端配置显示:正确处理 null/undefined 值,避免显示 "null" 字符串
|
2026-03-01 22:01:09 +08:00 |
|
何夕2077
|
829fafc651
|
Update VERSION
|
2026-02-28 17:53:36 +08:00 |
|
hex2077
|
517120a000
|
fix: 修复Claude内容处理和iFlow模型验证问题
- 修复ClaudeConverter中字符串内容处理逻辑,确保字符串能正确转换为OpenAI格式
- 移除claude-kiro.js中重复的内容处理代码,避免重复计算tokens
- 修复iFlow模型验证逻辑,当模型不存在时使用默认模型
- 优化插件状态提示信息,使用通用的"已启用/已禁用"翻译
|
2026-02-28 17:52:45 +08:00 |
|
hex2077
|
f8de8aad67
|
feat(config-api): 添加 TLS Sidecar 配置支持
在配置更新处理中新增对 TLS_SIDECAR_ENABLED 和 TLS_SIDECAR_PORT 两个配置项的支持,使系统能够通过 API 动态管理 TLS Sidecar 的启用状态和端口设置。
|
2026-02-28 00:23:16 +08:00 |
|
hex2077
|
afedccf934
|
chore: 更新版本号至2.9.9.32并优化Docker构建
- 更新VERSION文件中的版本号
- 在go mod download失败时继续执行构建
- 在构建tls-sidecar前执行go mod tidy以确保依赖整洁
|
2026-02-28 00:06:01 +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 |
|
何夕2077
|
4f9189e96e
|
Update VERSION
|
2026-02-27 22:32:44 +08:00 |
|
hex2077
|
04904dc38b
|
Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API
|
2026-02-27 22:32:17 +08:00 |
|
hex2077
|
89e80148d0
|
fix(grok): 禁用 HTTP/2 协商以适配 axios
axios 底层仅支持 HTTP/1.1,强制协商 h2 会导致服务端返回的 H2 帧解析失败。将 ALPN 协议列表修改为仅 'http/1.1' 以确保连接兼容性。
|
2026-02-27 22:32:11 +08:00 |
|
何夕2077
|
33981db33b
|
Update VERSION
|
2026-02-27 22:24:20 +08:00 |
|
hex2077
|
73079dc4ee
|
Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API
|
2026-02-27 22:23:55 +08:00 |
|
hex2077
|
f0445d96e4
|
feat(grok): 模拟 Chrome TLS 指纹以绕过 Cloudflare 检测
- 引入 TLS 模块并配置 HTTPS agent 以精确匹配 Chrome 136 的加密套件、签名算法和 ALPN 顺序
- 更新默认 User-Agent 至 Chrome 136 并动态生成更真实的 Statsig ID
- 优化请求头,根据 UA 自动填充 sec-ch-ua 系列字段,增强指纹一致性
- 移除调试日志并调整 Cloudflare 令牌缺失的日志级别
|
2026-02-27 22:23:48 +08:00 |
|
何夕2077
|
66a9dcd1a5
|
Update VERSION
|
2026-02-27 13:43:44 +08:00 |
|
hex2077
|
3b345887d4
|
docs: 添加关于脚本编码和换行符的注释
确保脚本使用 Windows CRLF 换行符和 UTF-8 编码,以提高可读性和跨平台一致性。
|
2026-02-27 13:43:06 +08:00 |
|
何夕2077
|
1ada4246ec
|
Merge pull request #344 from lly835/refactor/config-cli-parsing
refactor: 用声明式定义表替换 CLI 参数解析的 if-else 链
|
2026-02-27 13:23:59 +08:00 |
|
何夕2077
|
328bdcee43
|
Merge pull request #342 from lly835/fix/logger-context-memory-leak
fix: 为 Logger.requestContext 添加 TTL 清理机制防止内存泄漏
|
2026-02-27 11:12:36 +08:00 |
|
aka686
|
1aa691e70b
|
refactor: 用声明式定义表替换 CLI 参数解析的 if-else 链
将 12 个 CLI 参数的手写 if-else 链(约 100 行)重构为数据驱动的声明式定义表,
支持 string/int/bool/enum 四种类型自动解析。
- 新增参数只需在 cliArgDefs 数组中添加一行
- 消除大量重复的模式代码
- 保持完全相同的解析行为和警告输出
|
2026-02-26 23:43:58 +08:00 |
|
aka686
|
2aff6013d7
|
fix: 为 Logger.requestContext 添加 TTL 清理机制防止内存泄漏
长时间运行的服务中,如果 clearRequestContext 未被正确调用(如请求异常中断),
requestContext Map 会持续增长导致内存泄漏。
新增:
- 每个上下文条目记录 _createdAt 时间戳
- 每 60 秒定期扫描并清除超过 5 分钟的过期条目
- Map 为空时自动停止定时器,避免不必要的开销
- close() 时清理定时器
|
2026-02-26 23:38:43 +08:00 |
|
何夕2077
|
1f913a13b8
|
Update VERSION
|
2026-02-26 18:24:35 +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 |
|
何夕2077
|
4ee0fb4b96
|
Merge pull request #337 from lly835/fix/plugin-list-duplicate-rendering
fix: 修复插件管理页面卡片重复渲染问题
|
2026-02-26 11:50:32 +08:00 |
|
何夕2077
|
85b9efb110
|
Merge pull request #338 from lly835/fix/codex-cache-key-cross-model
fix: 修复同会话跨模型缓存键不命中问题
|
2026-02-26 11:50:11 +08:00 |
|
lly835
|
022e345d68
|
fix: 修复同会话跨模型缓存键不命中问题
移除 prepareRequestBody 中非 default sessionId 时的 model 前缀拼接,
使同一会话内切换模型时能复用缓存,与注释中'弱化 model 依赖'的设计意图一致。
Closes #328
|
2026-02-26 01:18:32 +08:00 |
|