Wesley Liddick and GitHub
226df1c23a
Merge pull request #358 from 0xff26b9a8/main
...
fix(antigravity): 修复非流式 Claude To Antigravity 响应内容为空的问题
2026-01-22 21:16:54 +08:00
shaw
2665230a09
fix(token-cache): 修复异步刷新与请求线程的缓存竞态条件
...
- 新增 _token_version 版本号机制,防止过期 token 污染缓存
- TokenRefreshService 刷新成功后写入版本号并清除缓存
- TokenProvider 写入缓存前检查版本,过时则跳过
- ClearError 时同步清除 token 缓存
2026-01-22 21:09:28 +08:00
Wesley Liddick and GitHub
17dfb0af01
Merge pull request #346 from 0xff26b9a8/main
...
refactor(antigravity): 提取并同步 Schema 清理逻辑至 schema_cleaner.go
2026-01-22 08:46:11 +08:00
Wesley Liddick and GitHub
39fad63ccf
Merge pull request #345 from whoismonay/main
...
mod(frontend): 管理员订阅/兑换码分组选择展示备注
2026-01-20 16:22:53 +08:00
Wesley Liddick and GitHub
5602d02b1b
Merge pull request #343 from mt21625457/main
...
fix(调度): 完善粘性会话清理与账号调度刷新 和 启用 OpenAI OAuth HTTP/2 并修复清理任务 lint
2026-01-20 16:05:53 +08:00
shaw
81989eed1c
test: add promo_code_enabled to API contract test
2026-01-20 16:02:49 +08:00
shaw
192efb84a0
feat(promo-code): complete promo code feature implementation
...
- Add promo_code_enabled field to SystemSettings and PublicSettings DTOs
- Add promo code validation in registration flow
- Add admin settings UI for promo code configuration
- Add i18n translations for promo code feature
2026-01-20 15:56:26 +08:00
shaw
8672347f93
fix(settings): add missing promo_code_enabled field in public settings API
...
The field was defined in DTO but not mapped in handler response.
2026-01-20 15:49:57 +08:00
shaw
d91e2328fb
test(tlsfingerprint): add multi-profile fingerprint verification test
...
Add TestAllProfiles to verify TLS fingerprint configurations from
config.yaml against tls.peet.ws. Tests check JA4 cipher hash (stable
part) to validate fingerprint spoofing works correctly.
2026-01-20 14:53:15 +08:00
shaw
c95a864975
docs: add TLS fingerprint tool link
2026-01-20 11:30:10 +08:00
Wesley Liddick and GitHub
a8513da7ff
Merge pull request #335 from geminiwen/main
...
feat(subscription): 支持调整订阅时长(延长/缩短)
2026-01-20 08:52:19 +08:00
Wesley Liddick and GitHub
e7bc62500b
Merge pull request #333 from whoismonay/main
...
fix: 普通用户接口移除管理员敏感字段透传
2026-01-19 21:35:51 +08:00
Wesley Liddick and GitHub
eb5e6214bc
Merge pull request #332 from geminiwen/main
...
fix: 修复手动刷新令牌后缓存未清除导致403错误的问题
2026-01-19 20:53:06 +08:00
shaw
568d6ee10e
fix: 修复测试缺少新增设置字段
2026-01-19 20:52:05 +08:00
shaw
b1a980f344
feat: 添加隐藏CCS导入按钮的设置选项
...
在管理后台设置页面新增开关,允许管理员隐藏API Keys页面的"导入CCS"按钮
2026-01-19 19:25:16 +08:00
shaw
3dab71729d
feat: usage接口支持TLS指纹和缓存User-Agent
2026-01-19 17:06:16 +08:00
shaw
090c8981dd
fix: 更新Claude OAuth授权配置以匹配最新规范
...
- 更新TokenURL和RedirectURI为platform.claude.com
- 更新scope定义,区分浏览器URL和内部API调用
- 修正state/code_verifier生成算法使用base64url编码
- 修正授权URL参数顺序并添加code=true
- 更新token交换请求头匹配官方实现
- 清理未使用的类型和函数
2026-01-19 16:40:06 +08:00
shaw
fbb572948d
fix: 修复会话数量查询使用错误的超时配置
2026-01-19 11:45:04 +08:00
shaw
a652b513d3
fix: handle 400 error for disabled organization
2026-01-19 10:54:40 +08:00
shaw
ccfeaeb22d
feat: 新增会话ID伪装功能,优化日志系统
...
- 新增 session_id_masking_enabled 配置,启用后将在15分钟内固定
metadata.user_id 中的 session ID
- TLS fingerprint 模块日志从自定义 debugLog 迁移到 slog
- main.go 添加 slog 初始化,根据 gin mode 设置日志级别
- 前端创建/编辑账号模态框添加会话ID伪装开关
- 多语言支持(中英文)
2026-01-19 10:22:13 +08:00
shaw
4c12799a95
fix: 补充测试桩缺失的接口方法
2026-01-19 09:28:11 +08:00
Wesley Liddick and GitHub
0f8d42c577
Merge pull request #327 from mt21625457/main
...
feat(usage): 添加清理任务与统计过滤
2026-01-19 09:18:00 +08:00
Wesley Liddick and GitHub
03c7578713
Merge pull request #325 from slovx2/main
...
fix(antigravity): 修复Antigravity 频繁429的问题,以及一系列优化,配置增强
2026-01-19 09:17:15 +08:00
shaw
de6797c560
fix: 修复5小时窗口费用不重置的问题
...
- 新增 GetCurrentWindowStartTime() 方法,当窗口过期时自动使用新的预测窗口开始时间
- UpdateSessionWindow 更新窗口时间后触发 outbox 事件同步调度器缓存
- 统一所有窗口费用查询入口使用新方法
2026-01-19 09:13:15 +08:00
shaw
46ae08ecb7
fix: 补充测试桩缺失的接口方法
2026-01-18 22:23:03 +08:00
shaw
2028cc29b7
fix: 修复多个管理后台问题
...
- 分页接口 page_size 最大限制从 100 改为 1000
- 通过 Redis Pub/Sub 实现跨实例认证缓存失效
- 允许订阅类型分组编辑计费倍率
- 账号计费倍率支持 3 位小数
2026-01-18 22:13:47 +08:00
shaw
f6360e0bf3
fix: 移除未使用的 extractSessionUUID 函数
...
修复 golangci-lint unused 检查报错
2026-01-18 20:15:02 +08:00
shaw
9abda1bc59
feat(tls): 新增 TLS 指纹模拟功能
2026-01-18 20:08:40 +08:00
shaw
a07174c191
fix: 修复会话限制功能并在创建账号时支持配额控制
2026-01-18 16:41:15 +08:00
Wesley Liddick and GitHub
32fff3798c
Merge pull request #326 from geminiwen/main
...
feat(admin): 添加账号管理和订阅管理的列设置功能
2026-01-18 14:41:02 +08:00
Wesley Liddick and GitHub
2b02c6635d
Merge pull request #323 from IanShaw027/fix/ops-error-classification-consistency
...
fix(ops): 统一 request-errors 接口与 SLA 计算的错误分类逻辑
2026-01-18 14:32:04 +08:00
Wesley Liddick and GitHub
a82029b0cf
Merge pull request #318 from IanShaw027/main
...
fix(openai): OpenCode 兼容性增强 - 工具过滤和粘性会话修复
2026-01-18 14:30:53 +08:00
Wesley Liddick and GitHub
0c2a901af4
Merge pull request #317 from IanShaw027/fix/gemini-issue
...
fix(gemini,group): 更新 Gemini 模型配置并补齐 SIMPLE 默认分组
2026-01-18 14:30:42 +08:00
Wesley Liddick and GitHub
dae0d5321f
Merge pull request #315 from mt21625457/main
...
perf(前端): 优化页面加载性能和用户体验 和 修复静态 import 导致入口文件膨胀问题
2026-01-16 23:55:45 +08:00
shaw
34415db7ed
fix: 修复 api_contract_test 缺少 SessionLimitCache 参数的问题
2026-01-16 23:53:54 +08:00
shaw
7379423325
feat: 添加5h窗口费用控制和会话数量限制
...
- 支持Anthropic OAuth/SetupToken账号的5h窗口费用阈值控制
- 支持账号级别的并发会话数量限制
- 使用Redis缓存窗口费用(30秒TTL)减少数据库压力
- 费用计算基于标准费用(不含账号倍率)
2026-01-16 23:36:52 +08:00
Wesley Liddick and GitHub
04811c00cb
Merge pull request #313 from mt21625457/main
...
fix(ci): 修复各类bug
2026-01-16 19:30:07 +08:00
Wesley Liddick and GitHub
06093d4f79
Merge pull request #311 from longgexx/main
...
添加分组级别模型路由配置功能(Anthropic平台)
2026-01-16 19:22:12 +08:00
Wesley Liddick and GitHub
c02c8646a6
Merge pull request #304 from IanShaw027/feature/codex-tool-correction
...
feat(openai): 添加Codex工具调用自动修正功能
2026-01-16 08:50:11 +08:00
Wesley Liddick and GitHub
3ff2ca8d41
Merge pull request #303 from IanShaw027/feature/ops-account-health-score
...
feat(ops): 运维监控功能增强与优化
2026-01-16 08:49:52 +08:00
Wesley Liddick and GitHub
b36f3db9de
Merge pull request #300 from mt21625457/main
...
feat(网关): 引入 OpenAI/Claude OAuth token 缓存
2026-01-15 20:10:16 +08:00
shaw
5f890e85e7
Merge PR #296 : OAuth token cache invalidation on 401 and refresh
2026-01-15 16:31:37 +08:00
Wesley Liddick and GitHub
10bc7f7042
Merge pull request #297 from LLLLLLiulei/feat/ip-management-enhancements
...
feat: add proxy geo location
2026-01-15 16:06:36 +08:00
Wesley Liddick and GitHub
47eb3c8888
Merge pull request #284 from longgexx/main
...
fix(admin): 修复使用记录页面趋势图筛选联动和日期选择问题
2026-01-15 13:43:00 +08:00
Wesley Liddick and GitHub
cc2d064ab4
Merge pull request #289 from IanShaw027/fix/mobile-ui
...
fix(mobile): 优化移动端表格、操作栏和弹窗显示
2026-01-15 11:31:16 +08:00
Wesley Liddick and GitHub
27214f8657
Merge pull request #285 from IanShaw027/fix/ops-bug
...
feat(ops): 增强错误日志管理、告警静默和前端 UI 优化
2026-01-15 11:26:16 +08:00
Wesley Liddick and GitHub
28de614dfb
Merge pull request #282 from LLLLLLiulei/feat/ip-management-enhancements
...
feat: enhance proxy management
2026-01-15 11:23:17 +08:00
shaw
2a5ef6d3f5
Merge PR #279 : feat(计费): 账号计费倍率快照与账号口径费用统计
2026-01-15 11:11:55 +08:00
Wesley Liddick and GitHub
b3b2868f55
Merge pull request #278 from IanShaw027/fix/openai-account-schedulability-check
...
fix(网关): 修复账号选择中的调度器快照延迟问题
2026-01-14 15:52:35 +08:00
shaw
99cbfa1567
fix(admin): 修复退款金额精度问题
...
- 显示完整余额精度,避免四舍五入导致的退款失败
- 添加"全部"按钮,一键填入完整余额
- 移除最小金额限制,支持任意正数金额
2026-01-14 10:22:31 +08:00
Wesley Liddick and GitHub
3f8c8d70ad
Merge pull request #274 from mt21625457/main
...
fix(openai): OAuth 请求强制 store=false
2026-01-14 09:53:09 +08:00
Wesley Liddick and GitHub
55fced3942
Merge pull request #269 from mt21625457/main
...
fix: 修复opencode 适配openai 套餐的错误,通过sub2api完美转发 opencode
2026-01-13 17:33:07 +08:00
Wesley Liddick and GitHub
55796a118d
Merge pull request #264 from IanShaw027/fix/openai-opencode-compatibility
...
fix(openai): 增强 OpenCode 兼容性和模型规范化
2026-01-13 16:01:37 +08:00
shaw
93db889a10
fix: Gemini OpenCode 教程 baseURL 改为 v1beta
2026-01-13 09:52:37 +08:00
Wesley Liddick and GitHub
0df7385c4e
Merge pull request #226 from xilu0/main
...
feat(gateway): 优化 Antigravity/Gemini 思考块处理 此提交解决了思考块 (thinking blocks) 在转发过程中的兼容性问题
2026-01-13 09:39:43 +08:00
Wesley Liddick and GitHub
1a3fa6411c
Merge pull request #260 from IanShaw027/fix/sync-openai-gpt5-models
...
fix: 同步 OpenAI GPT-5 模型列表并完善参数处理
2026-01-13 09:31:00 +08:00
Wesley Liddick and GitHub
64614756d1
Merge pull request #259 from cyhhao/main
...
fix: adjust OpenCode OpenAI example store placement
2026-01-13 09:30:26 +08:00
Wesley Liddick and GitHub
bb1fd54d4d
Merge pull request #257 from Edric-Li/feat/ops-fullscreen-scrollbar
...
feat(ops): 添加运维监控全屏模式 & 优化滚动条
2026-01-13 09:29:25 +08:00
shaw
3b71bc3df1
feat: OpenCode 配置提示添加配置文件路径说明
2026-01-12 20:49:54 +08:00
shaw
22ef9534e0
fix: 修复反向代理下客户端 IP 获取错误
2026-01-12 20:44:38 +08:00
Wesley Liddick and GitHub
c206d12d5c
Merge pull request #254 from IanShaw027/feat/ops-count-tokens-filter-and-auto-refresh
...
feat(ops): count_tokens 错误过滤和自动刷新功能
2026-01-12 17:31:54 +08:00
shaw
4da681f58a
Merge branch 'mt21625457/main'
2026-01-12 16:20:55 +08:00
shaw
68ba866c38
fix(frontend): 修复账号管理页面分组显示和 Cookie 授权问题
...
- 新增 AccountGroupsCell 组件优化分组列显示(最多4个+折叠)
- 修复 Cookie 自动授权时 group_ids/notes/expires_at 字段丢失
- 修复 SettingsView 流超时配置前后端字段不一致问题
2026-01-12 16:08:44 +08:00
shaw
8363663ea8
fix(gateway): 修复 usage_logs 记录 IP 不正确的问题
...
在 nginx 反向代理场景下,使用 ip.GetClientIP() 替代 c.ClientIP()
以正确获取客户端真实 IP 地址
2026-01-12 15:37:45 +08:00
Wesley Liddick and GitHub
b588ea194c
Merge pull request #251 from IanShaw027/fix/ops-bugs
...
feat(ops): 运维看板功能增强 - 实时流量监控与指标阈值配置
2026-01-12 15:26:26 +08:00
Wesley Liddick and GitHub
465ba76788
Merge pull request #250 from IanShaw027/fix/custom-error-codes-disable-scheduling
...
fix(gateway): 自定义错误码触发停止调度
2026-01-12 15:26:14 +08:00
shaw
cf313d5761
fix(gateway): 修复 Claude Code 客户端检测和请求信息记录
...
- 在 Messages 方法中调用 SetClaudeCodeClientContext 启用客户端检测
- 修复 RecordUsageInput 未传递 UserAgent 和 IPAddress 的问题
2026-01-12 15:19:40 +08:00
Wesley Liddick and GitHub
9c144587fe
Merge pull request #249 from IanShaw027/feat/stream-timeout-handling
...
feat(gateway): 添加流超时处理机制
2026-01-12 14:14:21 +08:00
Wesley Liddick and GitHub
4c37ca71ee
Merge pull request #247 from 7836246/fix/negative-zero-balance
...
fix: 修复扣款时浮点数精度导致的余额不足误判和 -0.00 显示问题
2026-01-12 14:10:41 +08:00
shaw
cc4910dd30
fix(test): 修复聚合测试的时区边界条件问题
2026-01-12 09:23:46 +08:00
shaw
50de5d05b0
fix: 修复PR合并后的功能回退和安全问题
2026-01-12 09:14:32 +08:00
shaw
7844dc4f2d
Merge PR #238 : feat(ops): 实现完整的运维监控系统(vNext)
2026-01-12 08:52:17 +08:00
Wesley Liddick and GitHub
2b2f7a6dec
Merge pull request #237 from cyhhao/main
...
feat: 补充 OpenCode 使用密钥配置示例
2026-01-11 20:53:58 +08:00
Wesley Liddick and GitHub
49c15c0d44
Merge pull request #236 from mt21625457/main
...
feat: 新增预聚合体系,解决 Admin Dashboard 的累计统计是 usage_logs 是全表扫描 的性能问题
2026-01-11 20:51:52 +08:00
Wesley Liddick and GitHub
9cba595fd0
Merge pull request #233 from cyhhao/main
...
fix(openai): 对齐 OpenCode OAuth instructions,保持 Codex CLI 透明转发
2026-01-11 10:41:57 +08:00
shaw
56fc2764e4
chore: remove accidentally committed test binary
2026-01-11 10:37:09 +08:00
Wesley Liddick and GitHub
0c4f1762c9
Merge pull request #232 from Edric-Li/feat/api-key-ip-restriction
...
feat(settings): 首页自定义内容 & 配置注入优化
2026-01-11 10:36:01 +08:00
shaw
ff0875868e
Merge PR #229 : perf(网关): 粘性会话命中复用候选账号
2026-01-10 15:21:59 +08:00
shaw
d1a6d6b1cf
Merge branch 'mt21625457/main'
2026-01-10 14:44:58 +08:00
shaw
15884f368d
Merge branch 'longgexx/main'
2026-01-10 14:16:13 +08:00
shaw
b03fb9c2f6
fix: remove accidentally committed test binary and restore .gitignore
...
- Remove backend/repository.test (62MB macOS arm64 test binary)
- Restore *.test pattern in .gitignore to prevent future accidents
2026-01-10 14:16:06 +08:00
shaw
3d4984133e
chore: 删除误提交的 Go 测试二进制并更新 .gitignore
2026-01-10 14:03:41 +08:00
shaw
62dc0b953b
Merge branch 'fix/table-pagination-and-features'
2026-01-09 20:42:05 +08:00
shaw
f060db0b30
fix: 加固 LinuxDo OAuth 登录安全与配置校验
2026-01-09 19:32:06 +08:00
shaw and admin
1a1e23fc76
fix(auth): 注册接口安全加固 - 默认关闭注册
2026-01-09 18:26:32 +08:00
shaw
27291f2e5f
fix(docker): 修改 Redis 配置以支持可选的密码设置
2026-01-09 17:28:55 +08:00
shaw
43f104bdf7
fix(auth): 注册接口安全加固 - 默认关闭注册
2026-01-09 14:49:20 +08:00
shaw
0a9c17b9d1
Merge PR #213 : feat(openai): 支持 OpenAI Responses API 标准内容格式
2026-01-09 10:40:47 +08:00
shaw
2d83941aaa
feat(antigravity): 添加 URL fallback 机制 (sandbox → daily → prod)
2026-01-09 10:36:56 +08:00
shaw
b015a3bd8a
fix(antigravity): 修复频繁出现429错误的问题
2026-01-08 20:06:32 +08:00
shaw
3fb43b91bf
fix(security): 强化 usage 端点信息暴露控制
2026-01-08 17:45:31 +08:00
shaw
6e8188ed64
fix(antigravity): 修复请求频繁429的问题
2026-01-08 17:27:35 +08:00
shaw
db6f53e2c9
fix(billing): 修复客户端取消请求时计费丢失问题
...
检测 context.Canceled 作为客户端断开信号,返回已收集的 usage 而非错误
2026-01-08 11:25:17 +08:00
shaw
acabdc2f99
fix(i18n): correct priority description - lower value means higher priority
2026-01-08 09:56:26 +08:00
shaw
169aa4716e
Merge branch 'feature/account-expires-at' into main: feat: add account expires-at field and auto-pause expired accounts
2026-01-08 09:27:57 +08:00
shaw
c0753320a0
Merge branch 'feat/usage-log-user-agent'
2026-01-08 09:16:48 +08:00
shaw
d99a3ef14b
fix(gateway): 修复账号跨分组调度问题
...
问题:账号可能被调度到未分配的分组(如 simon 账号被调度到 claude_default)
根因:
- 强制平台模式下分组查询失败时回退到全平台查询
- listSchedulableAccounts 中分组为空时回退到无分组查询
- 粘性会话只检查平台匹配,未校验账号分组归属
修复:
- 移除强制平台模式的回退逻辑,分组内无账号时返回错误
- 移除 listSchedulableAccounts 的回退逻辑
- 新增 isAccountInGroup 方法用于分组校验
- 在三处粘性会话检查中增加分组归属验证
2026-01-07 10:56:52 +08:00
shaw
fc8fa83fcc
fix(keys): 修复代码框第一行多余空格问题
...
pre 标签会原样保留内部空白字符,导致 code 标签前的模板缩进
被渲染为实际空格。将 pre/code 标签写在同一行消除此问题。
2026-01-07 10:26:24 +08:00
shaw
6dcd99468b
fix(gateway): 修复 cache_control 块超限问题并优化 Claude Code 检测
...
问题:
- OAuth/SetupToken 账号注入 system prompt 后可能导致 cache_control
块超过 Anthropic API 的 4 个限制
- Claude Code 检测使用精确匹配,无法识别 Agent SDK 等变体
修复:
- 新增 enforceCacheControlLimit 函数,强制执行 4 个块限制
- 优先从 messages 移除,再从 system 尾部移除(保护注入的 prompt)
- 改用前缀匹配检测 Claude Code 系统提示词,支持多种变体:
- 标准版、Agent SDK 版、Explore Agent 版、Compact 版
2026-01-07 10:17:09 +08:00
shaw
d5ba7b80d3
fix(admin/usage): 恢复成本 Tooltip 明细并优化账号筛选
...
问题修复:
- 恢复 Cost Tooltip 的成本分项明细 (input_cost, output_cost, cache 成本)
- 修复 Token Tooltip 双分隔线显示问题
- 修复 Tooltip 翻译键缺失问题,新增 costDetails/tokenDetails
- 恢复 Excel 导出格式化 (aoa_to_sheet + 翻译列头)
功能优化:
- 账号筛选从前端搜索改为后端搜索,避免一次加载 1000 条数据
- 行为与用户/API Key 筛选保持一致 (debounce + 后端分页)
2026-01-07 09:35:21 +08:00