ianshaw
|
7fdc25df3c
|
fix(gateway): 修复 base_url 包含 /chat/completions 时路径拼接错误
问题:
- 当账号的 base_url 配置为 https://example.com/v1/chat/completions 时
- 代码直接追加 /responses,导致路径变成 /v1/chat/completions/responses
- 上游返回 404 错误
修复:
- 在追加 /responses 前,先移除 base_url 中的 /chat/completions 后缀
- 确保最终路径为 https://example.com/v1/responses
影响范围:
- OpenAI API Key 账号的测试接口
- OpenAI API Key 账号的实际网关请求
Related-to: #231
|
2026-01-12 11:39:45 -08:00 |
|
ianshaw
|
ea699cbdc2
|
docs(frontend): 完善 OpenCode 配置说明
更新 API 密钥页面 OpenCode 配置提示信息:
- 补充支持 opencode.jsonc 后缀名
- 说明可使用默认 provider(openai/anthropic/google)或自定义 provider_id
- 说明 API Key 支持直接配置或通过 /connect 命令配置
- 保留"示例仅供参考,模型与选项可按需调整"的提示
配置文件路径:~/.config/opencode/opencode.json(或 opencode.jsonc)
|
2026-01-12 11:17:47 -08:00 |
|
ianshaw
|
fe6a3f4267
|
fix(gateway): 完善 max_output_tokens 参数处理逻辑
根据不同平台和账号类型处理 max_output_tokens 参数:
- OpenAI OAuth (Responses API): 保留 max_output_tokens(支持)
- OpenAI API Key: 删除 max_output_tokens(不支持)
- Anthropic (Claude): 转换 max_output_tokens 为 max_tokens
- Gemini: 删除 max_output_tokens(由 Gemini 专用转换处理)
- 其他平台: 删除(安全起见)
同时处理 max_completion_tokens 参数,仅在 OpenAI OAuth 时保留。
修复客户端(如 OpenCode)发送不支持参数导致上游返回 400 错误的问题。
Related-to: #231
|
2026-01-12 11:08:28 -08:00 |
|
ianshaw
|
fe8198c8cd
|
fix(frontend): 同步 OpenAI GPT-5 系列模型列表
修复编辑账号页面 GPT-5 模型只显示 3 个的问题:
- 原来只有: gpt-5, gpt-5-mini, gpt-5-nano
- 现在添加完整的 22 个模型,包括:
* GPT-5 系列: gpt-5, gpt-5-codex, gpt-5-chat, gpt-5-pro, gpt-5-mini, gpt-5-nano 及各时间戳版本
* GPT-5.1 系列: gpt-5.1, gpt-5.1-codex, gpt-5.1-codex-max, gpt-5.1-codex-mini 及各版本
* GPT-5.2 系列: gpt-5.2, gpt-5.2-codex, gpt-5.2-pro 及各版本
- 更新快捷预设按钮,新增 GPT-5.1, GPT-5.2, GPT-5.1 Codex 选项
与后端定价文件 (model_prices_and_context_window.json) 保持一致。
Fixes issue introduced in fb86002 (feat: 添加模型白名单选择器组件)
Related-to: fb86002ef9
|
2026-01-12 10:14:50 -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
|
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 |
|
IanShaw027
|
6ad29a470c
|
style(ops): 移除未使用的 isAutoRefreshActive 变量
|
2026-01-12 17:28:25 +08:00 |
|
IanShaw027
|
2d45e61a9b
|
style(ops): 修复代码格式问题以通过 golangci-lint
|
2026-01-12 17:18:49 +08:00 |
|
IanShaw027
|
b98fb013ae
|
feat(ops): 添加自动刷新配置功能
功能特性:
- 支持配置启用/禁用自动刷新
- 可配置刷新间隔(15秒/30秒/60秒)
- 实时倒计时显示,用户可见下次刷新时间
- 手动刷新自动重置倒计时
- 页面卸载时自动清理定时器
用户体验:
- 默认禁用,用户可根据需求开启
- 与现有 OpsConcurrencyCard 5秒刷新保持一致
- 倒计时带旋转动画,视觉反馈清晰
- 配置修改后立即生效,无需刷新页面
技术实现:
- ops.ts: 添加 auto_refresh_enabled 和 auto_refresh_interval_seconds 配置
- OpsSettingsDialog.vue: 添加自动刷新配置界面
- OpsDashboard.vue: 实现主刷新逻辑和双定时器设计
- OpsDashboardHeader.vue: 倒计时显示组件
配置说明:
- auto_refresh_enabled: 是否启用(默认 false)
- auto_refresh_interval_seconds: 刷新间隔(默认 30 秒,范围 15-300 秒)
|
2026-01-12 17:07:07 +08:00 |
|
IanShaw027
|
345a965fa3
|
feat(ops): 添加 count_tokens 错误过滤功能
功能特性:
- 自动识别并标记 count_tokens 请求的错误
- 支持配置是否在统计中忽略 count_tokens 错误
- 错误数据完整保留,仅在统计时动态过滤
技术实现:
- ops_error_logger.go: 自动标记 count_tokens 请求
- ops_repo.go: INSERT 语句添加 is_count_tokens 字段
- ops_repo_dashboard.go: buildErrorWhere 核心过滤函数
- ops_repo_preagg.go: 预聚合统计中添加过滤
- ops_repo_trends.go: 趋势统计查询添加过滤(2 处)
- ops_settings_models.go: 添加 ignore_count_tokens_errors 配置
- ops_settings.go: 配置验证和默认值设置
- ops_port.go: 错误日志模型添加 IsCountTokens 字段
业务价值:
- count_tokens 是探测性请求,其错误不影响真实业务 SLA
- 用户可根据需求灵活控制是否计入统计
- 提升错误率、告警等运维指标的准确性
影响范围:
- Dashboard 概览统计
- 错误趋势图表
- 告警规则评估
- 预聚合指标(hourly/daily)
- 健康分数计算
|
2026-01-12 17:06:12 +08:00 |
|
IanShaw027
|
c02c120579
|
feat(ops): 添加 count_tokens 错误标记数据库迁移
- 新增 is_count_tokens 布尔字段到 ops_error_logs 表
- 默认值为 false
- 支持后续动态过滤统计
|
2026-01-12 17:06:12 +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 |
|
yangjianbo
|
9622347faa
|
fix(调度): 修复 outbox 空载写入并稳固回放测试
将 outbox payload 为空时写入 NULL
避免事务因 JSON 解析错误中断
调整回放测试为预置缓存后验证 last_used 更新
测试: go test -tags=integration ./internal/repository
|
2026-01-12 15:46:55 +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
|
b588ea194c
|
Merge pull request #251 from IanShaw027/fix/ops-bugs
feat(ops): 运维看板功能增强 - 实时流量监控与指标阈值配置
|
2026-01-12 15:26:26 +08:00 |
|
Wesley Liddick
|
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 |
|
yangjianbo
|
8c1958c9ad
|
fix(调度): 修复流超时配置并补回放测试
删除前端未支持的 timeout_seconds 字段,避免类型检查失败
新增调度 outbox 回放集成测试
调整调度默认等待超时断言
测试: make test
|
2026-01-12 15:13:39 +08:00 |
|
yangjianbo
|
2db34139f0
|
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
|
2026-01-12 14:50:53 +08:00 |
|
IanShaw027
|
e0cccf6ed2
|
fix(ops): 修复Go代码格式问题
|
2026-01-12 14:36:32 +08:00 |
|
IanShaw027
|
89c1a41305
|
fix(ops): 修复错误日志和请求详情模态框的布局问题
- 修复 OpsErrorDetailsModal 的内容溢出问题,使用 flex 布局确保正确显示
- 修复 OpsErrorLogTable 的表格滚动问题,添加 min-h-0 确保正确的滚动行为
- 修复 OpsRequestDetailsModal 的布局问题,添加 pageSize 初始化并优化 flex 布局
- 统一使用 flex 布局模式,确保模态框内容在不同屏幕尺寸下正确显示
|
2026-01-12 14:31:21 +08:00 |
|
yangjianbo
|
202ec21bab
|
fix(config): 提升粘性会话默认等待时长
- 默认值调整为 120s
- 同步示例配置与环境变量
|
2026-01-12 14:26:31 +08:00 |
|
ianshaw
|
6dcb27632e
|
fix(gateway): 自定义错误码触发停止调度
- 修改 HandleUpstreamError 逻辑,启用自定义错误码时所有在列表中的错误码都会停止调度
- 添加 handleCustomErrorCode 函数处理自定义错误码的账号停用
- 前端添加 429/529 错误码的警告提示,因为这些错误码已有内置处理机制
- 更新 EditAccountModal、CreateAccountModal、BulkEditAccountModal 的错误码添加逻辑
|
2026-01-11 22:20:02 -08:00 |
|
yangjianbo
|
3141aa5144
|
feat(scheduler): 引入调度快照缓存与 outbox 回放
- 调度热路径优先读 Redis 快照,保留分组排序语义
- outbox 回放 + 全量重建纠偏,失败重试不推进水位
- 自动 Atlas 基线对齐并同步调度配置示例
|
2026-01-12 14:19:06 +08:00 |
|
IanShaw027
|
5443efd7d7
|
feat(ops): 前端集成实时流量功能
- 添加实时流量API调用方法
- 优化OpsDashboard组件代码
|
2026-01-12 14:18:16 +08:00 |
|
IanShaw027
|
62771583e7
|
feat(ops): 集成实时流量API接口
- 添加实时流量handler处理逻辑
- 注册实时流量路由
- 扩展ops service接口定义
|
2026-01-12 14:17:58 +08:00 |
|
IanShaw027
|
5526f122b7
|
feat(ops): 新增实时流量数据层
- 添加实时流量repository层实现
- 添加实时流量service层逻辑
- 定义实时流量数据模型
|
2026-01-12 14:17:42 +08:00 |
|
Wesley Liddick
|
9c144587fe
|
Merge pull request #249 from IanShaw027/feat/stream-timeout-handling
feat(gateway): 添加流超时处理机制
|
2026-01-12 14:14:21 +08:00 |
|
IanShaw027
|
098bf5a1e8
|
fix(i18n): 补充缺失的英文翻译
- 添加 admin.ops.requestsTitle
- 添加 admin.ops.alertRules.manage 和 saveSuccess/deleteSuccess
- 添加 common.settings
- 添加完整的 admin.ops.settings 部分
- 添加 admin.ops.tooltips.totalRequests 和 upstreamErrors
|
2026-01-12 14:10:44 +08:00 |
|
Wesley Liddick
|
4c37ca71ee
|
Merge pull request #247 from 7836246/fix/negative-zero-balance
fix: 修复扣款时浮点数精度导致的余额不足误判和 -0.00 显示问题
|
2026-01-12 14:10:41 +08:00 |
|
ianshaw
|
0c52809591
|
refactor(settings): 简化流超时配置,移除冗余字段
- 移除 TimeoutSeconds 字段,超时判定由网关配置控制
- 默认禁用流超时处理功能
|
2026-01-11 22:09:35 -08:00 |
|
小海
|
53e730f8d5
|
fix: 修复扣款时浮点数精度导致的余额不足误判和 -0.00 显示问题
|
2026-01-12 14:06:30 +08:00 |
|
IanShaw027
|
8e248e0853
|
fix(ops): 修正卡片标题翻译
- 卡片标题显示"请求"
- 卡片内部标签保持"请求数"
|
2026-01-12 14:05:10 +08:00 |
|
ianshaw
|
2a0758bdfe
|
feat(gateway): 添加流超时处理机制
- 添加 StreamTimeoutSettings 配置结构体和系统设置
- 实现 TimeoutCounterCache Redis 计数器用于累计超时次数
- 在 RateLimitService 添加 HandleStreamTimeout 方法
- 在 gateway_service、openai_gateway_service、antigravity_gateway_service 中调用超时处理
- 添加后端 API 端点 GET/PUT /admin/settings/stream-timeout
- 添加前端配置界面到系统设置页面
- 支持配置:启用开关、超时阈值、处理方式、暂停时长、触发阈值、阈值窗口
默认配置:
- 启用:true
- 超时阈值:60秒
- 处理方式:临时不可调度
- 暂停时长:5分钟
- 触发阈值:3次
- 阈值窗口:10分钟
|
2026-01-11 21:54:52 -08:00 |
|
IanShaw027
|
f55ba3f6c1
|
fix(ops): 优化卡片标题和明细筛选逻辑
- 将"请求数"改为"请求"
- SLA卡片明细只显示错误请求(kind='error')
- TTFT卡片明细按延迟降序排序
|
2026-01-12 13:00:39 +08:00 |
|
IanShaw027
|
db51e65b42
|
chore: 添加ESLint忽略配置
- 添加.eslintignore文件
|
2026-01-12 11:44:34 +08:00 |
|
IanShaw027
|
72a2ed958b
|
feat(ops): 看板上应用指标阈值显示
- 在OpsDashboard中加载阈值配置
- 在OpsDashboardHeader中根据阈值判断指标是否超标
- 超出阈值的指标显示为红色(SLA低于阈值也显示红色)
- 用Icon组件替换emoji表情
|
2026-01-12 11:44:14 +08:00 |
|
IanShaw027
|
d0b91a40d4
|
feat(ops): 添加指标阈值配置UI
- 在OpsSettingsDialog中添加指标阈值配置表单
- 在OpsRuntimeSettingsCard中添加阈值配置区域
- 添加阈值验证逻辑
- 更新国际化文本
|
2026-01-12 11:43:54 +08:00 |
|
IanShaw027
|
bd74bf7994
|
fix(ops): 添加brain图标替换emoji表情
- 在Icon组件中添加brain图标
- 用于替换运维诊断中的emoji表情
|
2026-01-12 11:43:35 +08:00 |
|
IanShaw027
|
f28d4b78e7
|
feat(ops): 前端添加指标阈值类型定义和API
- 添加OpsMetricThresholds类型定义
- 新增getMetricThresholds和updateMetricThresholds API方法
|
2026-01-12 11:43:15 +08:00 |
|
IanShaw027
|
7536dbfee5
|
feat(ops): 后端添加指标阈值管理API
- 新增GetMetricThresholds和UpdateMetricThresholds接口
- 支持配置SLA、延迟P99、TTFT P99、请求错误率、上游错误率阈值
- 添加参数验证逻辑
- 提供默认阈值配置
|
2026-01-12 11:42:56 +08:00 |
|
yangjianbo
|
b76cc583fb
|
去掉失误提交的openspec提案
|
2026-01-12 11:18:14 +08:00 |
|
yangjianbo
|
955af6b3ec
|
fix(仪表盘): 添加聚合和回填操作的执行时间日志
|
2026-01-12 10:59:52 +08:00 |
|
yangjianbo
|
1073317a3e
|
fix(仪表盘): 增加对数据库驱动和仓储实例的有效性检查
|
2026-01-12 10:53:41 +08:00 |
|
yangjianbo
|
839ab37d40
|
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
|
2026-01-12 10:38:44 +08:00 |
|
yangjianbo
|
9dd0ef187d
|
fix(仪表盘): 优化CleanupAggregates方法,逐条删除数据以提高错误处理能力
|
2026-01-12 10:38:42 +08:00 |
|
程序猿MT
|
fd8473f267
|
Merge branch 'Wei-Shaw:main' into main
|
2026-01-12 10:28:22 +08:00 |
|
shaw
|
cc4910dd30
|
fix(test): 修复聚合测试的时区边界条件问题
|
2026-01-12 09:23:46 +08:00 |
|