github-actions[bot]
5061f4d9fd
chore: sync VERSION file with release v1.1.231 [skip ci]
v1.1.231
2025-12-10 12:11:39 +00:00
Wesley Liddick
4337af06d4
Merge pull request #791 from DaydreamCoding/feature/log-opt
...
fix: improve logging for client disconnections in relay services
2025-12-10 07:11:24 -05:00
Wesley Liddick
d226d57325
Merge pull request #790 from DaydreamCoding/patch-4 [skip ci]
...
fix(security): add authenticateAdmin middleware to concurrency routes
2025-12-10 07:11:07 -05:00
Wesley Liddick
9f92c58640
Merge pull request #789 from DaydreamCoding/feature/user-message-queue-optimize [skip ci]
...
feat(queue): 优化用户消息队列锁释放时机
2025-12-10 07:10:38 -05:00
QTom
8901994644
fix: improve logging for client disconnections in relay services
...
当客户端主动断开连接时,改为使用 INFO 级别记录而不是 ERROR 级别,
因为这是正常情况而非错误。
- ccrRelayService: 区分客户端断开与实际错误
- claudeConsoleRelayService: 区分客户端断开与实际错误
- claudeRelayService: 区分客户端断开与实际错误
- droidRelayService: 区分客户端断开与实际错误
2025-12-10 14:18:44 +08:00
QTom
e3ca555df7
fix(security): add authenticateAdmin middleware to concurrency routes
...
fix(security): add authenticateAdmin middleware to concurrency routes
All concurrency management endpoints were missing authentication,
allowing unauthenticated access to view and clear concurrency data.
2025-12-10 13:59:25 +08:00
QTom
3b9c96dff8
feat(queue): 优化用户消息队列锁释放时机
...
将队列锁释放时机从"请求完成后"提前到"请求发送后",因为 Claude API
限流(RPM)基于请求发送时刻计算,无需等待响应完成。
主要变更:
- 移除锁续租机制(startLockRenewal、refreshUserMessageLock)
- 所有 relay 服务在请求发送成功后立即释放锁
- 流式请求通过 onResponseStart 回调在收到响应头时释放
- 调整默认配置:timeoutMs 60s→5s,lockTtlMs 120s→5s
- 新增 USER_MESSAGE_QUEUE_LOCK_TTL_MS 环境变量支持
2025-12-10 01:26:00 +08:00
github-actions[bot]
cb94a4260e
chore: sync VERSION file with release v1.1.230 [skip ci]
v1.1.230
2025-12-09 10:59:05 +00:00
Wesley Liddick
ac9499aa6d
Merge pull request #787 from DaydreamCoding/feature/user-message-queue-fix
...
feat: 修复 userMessageQueue 配置缺失导致的 500 错误
2025-12-09 05:58:35 -05:00
atoz03
fc25840f95
fix: 账户列表默认显示限额/限流账号并加固加载健壮性
...
- 将账户页状态筛选默认值从 normal 改为 all,额度满/限流/异常账号默认可见
- appendAccounts 使用 Array.isArray 兜底接口响应,避免空/异常数据导致“加载账户失败”
- 便于在额度耗尽场景查看并处理账号
2025-12-09 18:49:57 +08:00
QTom
b409adf9d8
feat: 修复 userMessageQueue 配置缺失导致的 500 错误
...
- 在 config.example.js 添加缺失的 userMessageQueue 配置段
- 在 userMessageQueueService.js 添加防御性代码,当配置未定义时使用默认值
修复 #783 合并后新用户安装报错:
Cannot read properties of undefined (reading 'enabled')
2025-12-09 18:41:13 +08:00
github-actions[bot]
b76776d7b0
chore: sync VERSION file with release v1.1.229 [skip ci]
v1.1.229
2025-12-09 09:49:01 +00:00
Wesley Liddick
8499992abd
Merge pull request #783 from DaydreamCoding/feature/user-message-queue
...
feat: 添加用户手动输入的消息串行队列功能,防止同账户并发请求触发限流&封号
2025-12-09 04:48:49 -05:00
QTom
dc96447d72
style: 格式化文件以符合 Prettier 规范
2025-12-09 17:18:43 +08:00
QTom
f5d1c25295
feat: 添加用户消息串行队列功能,防止同账户并发请求触发限流
...
- 新增 userMessageQueueService.js 实现基于 Redis 的队列锁机制
- 在 claudeRelayService、claudeConsoleRelayService、bedrockRelayService、ccrRelayService 中集成队列锁
- 添加 Redis 原子性 Lua 脚本:acquireUserMessageLock、releaseUserMessageLock、refreshUserMessageLock
- 支持锁续租机制,防止长时间请求锁过期
- 添加可配置参数:USER_MESSAGE_QUEUE_ENABLED、USER_MESSAGE_QUEUE_DELAY_MS、USER_MESSAGE_QUEUE_TIMEOUT_MS
- 添加 Web 管理界面配置入口
- 添加 logger.performance 方法用于结构化性能日志
- 添加完整单元测试 (tests/userMessageQueue.test.js)
2025-12-09 17:04:01 +08:00
github-actions[bot]
95870883a1
chore: sync VERSION file with release v1.1.228 [skip ci]
v1.1.228
2025-12-08 13:05:52 +00:00
shaw
aa71c58400
fix: 修复强制会话绑定首次会话的bug
2025-12-08 21:05:21 +08:00
github-actions[bot]
698f3d7daa
chore: sync VERSION file with release v1.1.227 [skip ci]
v1.1.227
2025-12-08 08:10:44 +00:00
shaw
5af5e55d80
chore: trigger release [force release]
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-08 16:10:09 +08:00
shaw
5a18f54abd
Merge branch 'dev'
2025-12-08 16:08:10 +08:00
Wesley Liddick
6d3b51510a
Merge pull request #779 from sususu98/fix/explore-agent-prompt-template [skip ci]
...
fix: 添加 Explore agent 系统提示词模板并优化日志级别
2025-12-08 03:06:55 -05:00
shaw
c79fdc4d71
feat: 增加Claude会话强制绑定
2025-12-08 16:06:23 +08:00
shaw
659072075d
fix: 统一格式化claude参数传递
2025-12-08 14:23:13 +08:00
sususu
cf93128a96
fix: format
2025-12-08 11:01:10 +08:00
sususu
909b5ad37f
fix: 添加 Explore agent 系统提示词模板并优化日志级别
...
- 添加 exploreAgentSystemPrompt 模板用于匹配 Claude Code Explore 子代理
- 将详细的 prompt 内容从 error 日志移至 warn 级别,减少日志噪音
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-08 10:45:46 +08:00
shaw
bab7073822
fix: 修复api-keys页面窗口费率显示问题
2025-12-08 09:58:54 +08:00
github-actions[bot]
0035f8cb4f
chore: sync VERSION file with release v1.1.226 [skip ci]
v1.1.226
2025-12-08 01:45:46 +00:00
shaw
d49cc0cec8
fix: 修复api-keys页面窗口费率显示问题
2025-12-08 09:45:19 +08:00
github-actions[bot]
c4d6ab97f2
chore: sync VERSION file with release v1.1.225 [skip ci]
v1.1.225
2025-12-08 00:26:14 +00:00
Wesley Liddick
7053d5f1ac
Merge pull request #778 from miraserver/fix/droid-user-agent-and-provider
...
[fix] Droid: dynamic x-api-provider and custom User-Agent support
2025-12-07 19:25:56 -05:00
John Doe
24796fc889
fix: format droidAccountService.js with Prettier
2025-12-07 21:14:42 +03:00
John Doe
201d95c84e
[fix] Droid: dynamic x-api-provider and custom User-Agent support
...
- Dynamic x-api-provider selection for OpenAI endpoint based on model
- Models with '-max' suffix use 'openai' provider
- Other models use 'azure_openai' provider
- Fixes gpt-5.1-codex-max model compatibility issue
- Update default User-Agent to factory-cli/0.32.1
- Add custom User-Agent field for Droid accounts
- Backend: userAgent field in createAccount and updateAccount
- Frontend: User-Agent input in account creation/edit UI
- Supports all Droid auth modes: OAuth, Manual, API Key
This resolves the issue where gpt-5.1-codex-max failed with 'Azure OpenAI only supports...' error due to incorrect provider header.
2025-12-07 21:08:48 +03:00
Wesley Liddick
b978d864e3
Merge pull request #776 from miraserver/fix/droid-openai-cache-tokens [skip ci]
...
[fix] Add cache token capture for Droid OpenAI endpoint
2025-12-06 22:46:54 -05:00
Wesley Liddick
175c041e5a
Merge pull request #774 from mrlitong/main [skip ci]
...
chore(docker): optimize build cache and install flow
2025-12-06 22:45:12 -05:00
Wesley Liddick
b441506199
Merge branch 'main' into main
2025-12-06 22:44:44 -05:00
Wesley Liddick
eb2341fb16
Merge pull request #771 from DaydreamCoding/patch-2 [skip ci]
...
Update model filtering to use blacklist approach
2025-12-06 22:43:52 -05:00
Wesley Liddick
e89e2964e7
Merge pull request #773 from DaydreamCoding/feature/concurrency [skip ci]
...
feat(concurrencyManagement): implement concurrency status management …
2025-12-06 22:43:29 -05:00
John Doe
b3e27e9f15
[fix] Add cache token capture for Droid OpenAI endpoint
...
The _parseOpenAIUsageFromSSE method was not capturing cache-related
tokens (cache_read_input_tokens, cache_creation_input_tokens) from
OpenAI format responses, while the Anthropic endpoint correctly
captured them.
This fix adds extraction of:
- cached_tokens from input_tokens_details
- cache_creation_input_tokens from both input_tokens_details and
top-level usage object
This ensures proper cache statistics tracking and cost calculation
for OpenAI models (like GPT-5/Codex) when using the Droid provider.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-06 23:00:54 +03:00
github-actions[bot]
d0b397b45a
chore: sync VERSION file with release v1.1.221 [skip ci]
2025-12-06 11:46:10 +00:00
litongtongxue@gmail.com
195e42e0a5
chore(docker): optimize build cache and install flow
2025-12-06 03:45:43 -08:00
github-actions[bot]
ebecee4c6f
chore: sync VERSION file with release v1.1.224 [skip ci]
v1.1.224
2025-12-06 11:00:48 +00:00
Wesley Liddick
0607322cc7
Merge pull request #765 from SunSeekerX/feature_key_model_filter
...
feat(api-keys): 添加模型筛选功能
2025-12-06 06:00:32 -05:00
SunSeekerX
0828746281
fix: 修复 ESLint 错误 - if 语句花括号和箭头函数简写
2025-12-06 18:30:44 +08:00
SunSeekerX
e1df90684a
fix: 合并冲突 - 保留多选支持并添加暗黑模式样式
2025-12-06 18:28:03 +08:00
DaydreamCoding
f74f77ef65
feat(concurrencyManagement): implement concurrency status management API and enhance concurrency handling in middleware
2025-12-06 17:23:42 +08:00
QTom
b63c3217bc
Update model filtering to use blacklist approach
...
Change model filtering logic to blacklist restricted models.
2025-12-06 14:20:06 +08:00
github-actions[bot]
d81a16b98d
chore: sync VERSION file with release v1.1.223 [skip ci]
v1.1.223
2025-12-06 03:01:17 +00:00
shaw
30727be92f
chore: trigger release [force release]
2025-12-06 11:00:59 +08:00
shaw
b8a6cc627a
Merge branch 'lusipad/main'
2025-12-06 10:56:57 +08:00
Wesley Liddick
01c63bf5df
Merge pull request #760 from IanShaw027/upstream-pr-account-full [skip ci]
...
feat: 增强账户管理功能
2025-12-05 21:45:37 -05:00