longgexx
|
4672a6fac3
|
merge: 合并上游 upstream/main 分支
解决冲突:
- usage_log_repo.go: 保留 groupID 和 stream 参数,同时合并上游的
account_rate_multiplier 逻辑
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-15 13:09:26 +08:00 |
|
Wesley Liddick
|
cc2d064ab4
|
Merge pull request #289 from IanShaw027/fix/mobile-ui
fix(mobile): 优化移动端表格、操作栏和弹窗显示
|
2026-01-15 11:31:16 +08:00 |
|
Wesley Liddick
|
27214f8657
|
Merge pull request #285 from IanShaw027/fix/ops-bug
feat(ops): 增强错误日志管理、告警静默和前端 UI 优化
|
2026-01-15 11:26:16 +08:00 |
|
Wesley Liddick
|
28de614dfb
|
Merge pull request #282 from LLLLLLiulei/feat/ip-management-enhancements
feat: enhance proxy management
|
2026-01-15 11:23:17 +08:00 |
|
IanShaw027
|
1d231c6cc3
|
fix(mobile): 修复 UsersView 更多菜单定位并统一逻辑
**问题描述**:
- UsersView 的"更多"菜单仍然出现在页面左上角错误位置
- UsersView 使用 actionButtonRefs Map 获取按钮元素,导致定位失败
- UsersView 和 AccountsView 的菜单定位逻辑不一致,难以维护
**解决方案**:
- 修改 openActionMenu 函数签名,添加 MouseEvent 参数
- 使用 e.currentTarget 直接从事件对象获取触发元素
- 移除不必要的 actionButtonRefs Map 和 setActionButtonRef 函数
- 统一菜单宽度为 200px(与 AccountsView 一致)
- 完全复制 AccountsView 的定位逻辑,确保两者行为一致
**技术要点**:
- 移动端:菜单居中对齐按钮,优先显示在按钮下方
- 桌面端:使用鼠标位置定位,添加边界检测
- 简化代码,移除不必要的防御性检查
- 两个组件的菜单定位逻辑完全一致,便于维护
|
2026-01-15 10:21:35 +08:00 |
|
IanShaw027
|
20c71acb3b
|
fix(mobile): 优化移动端表格、操作栏和弹窗显示
**问题描述**:
- 表格在移动端显示列过多,需要横向滚动,内容被截断
- 顶部操作栏按钮拥挤,占用过多空间
- 弹窗表单在小屏幕上布局不合理
- "更多"操作菜单定位错误,位置过高或超出屏幕
- 滚动页面时菜单不会自动关闭,与卡片分离
**解决方案**:
1. **DataTable 组件 - 移动端卡片视图**
- 在 < 768px 时自动切换到卡片布局
- 每个表格行渲染为独立卡片,所有字段清晰可见
- 操作按钮在卡片底部,触摸目标足够大
- 支持深色模式,包含加载和空状态
- 自动应用于所有使用 DataTable 的管理页面
2. **UsersView 顶部操作栏优化**
- 移动端:搜索框全宽 + 次要按钮显示为图标 + 创建按钮突出
- 桌面端:保持原有布局(图标 + 文字)
- 使用响应式 Tailwind classes
3. **UserCreateModal 弹窗优化**
- 余额/并发数字段:移动端单列,桌面端双列
- 弹窗边距:移动端 8px,桌面端 16px
4. **操作菜单定位修复**
- UsersView: 移动端菜单居中对齐按钮,智能定位
- AccountsView: 移动端菜单优先显示在按钮下方
- 所有情况下确保菜单不超出屏幕边界
- 添加滚动监听,滚动时自动关闭菜单
**影响范围**:
- 所有使用 DataTable 的管理页面(8 个页面)自动获得移动端卡片视图
- 用户管理和账号管理页面的操作菜单定位优化
- 创建用户弹窗的响应式布局优化
**技术要点**:
- 使用 Tailwind 响应式断点(md:, sm:)
- 触摸目标 ≥ 44px
- 完整支持深色模式
- 向后兼容,桌面端保持原有布局
|
2026-01-15 10:08:14 +08:00 |
|
IanShaw027
|
5354ba3662
|
fix(ops): 修复错误列表用户显示并区分上游错误和请求错误
- 修复错误列表中用户列显示 \n 的问题
- 上游错误显示账号(account),请求错误显示用户(user)
- 错误详情模态框同步调整显示逻辑
- 添加 accountId 国际化翻译
|
2026-01-15 00:11:44 +08:00 |
|
IanShaw027
|
16a90f3d3a
|
fix(types): 在 OpsErrorLog 类型中添加 user_email 字段
- 修复 TypeScript 编译错误
- 添加 user_email 字段到 OpsErrorLog 接口
|
2026-01-15 00:03:34 +08:00 |
|
IanShaw027
|
8a0ff15242
|
feat(i18n): 添加用户相关的国际化翻译
- 在中英文 i18n 文件中添加 errorLog.user 和 errorLog.userId
- 在中英文 i18n 文件中添加 errorDetail.user
- 支持错误日志和详情中的用户信息显示
|
2026-01-15 00:02:32 +08:00 |
|
IanShaw027
|
8c993dfd35
|
refactor(frontend): 将账号显示替换为用户显示
- 在错误日志表格中将账号列替换为用户列
- 在错误详情模态框中将账号信息替换为用户信息
- 显示用户邮箱而不是账号名称
- 上游错误的账号信息保留在上游错误上下文中
|
2026-01-14 23:59:26 +08:00 |
|
IanShaw027
|
76448ab555
|
refactor(frontend): 优化ops看板骨架屏组件
- 添加 fullscreen 属性支持,适配全屏模式
- 优化骨架屏布局,更好地匹配实际看板结构
- 改进加载动画效果,提升用户体验
|
2026-01-14 23:26:34 +08:00 |
|
IanShaw027
|
9584af5cb4
|
fix(ops): 优化错误日志查询和详情展示
- 新增 GetErrorLogByID 接口用于获取单个错误日志详情
- 优化 GetErrorLogs 过滤逻辑,简化参数处理
- 简化前端错误详情模态框代码,提升可维护性
- 更新相关 API 接口和 i18n 翻译
|
2026-01-14 23:16:01 +08:00 |
|
longgexx
|
806f402bba
|
fix(admin): 修复使用记录页面趋势图筛选联动和日期选择问题
修复两个问题:
1. Token使用趋势图和模型分布图未响应筛选条件
2. 上午时段选择今天刷新后日期回退到前一天
前端修改:
- 更新 dashboard API 类型定义,添加 model、account_id、group_id、stream 参数支持
- 修改 UsageView 趋势图加载逻辑,传递所有筛选参数到后端
- 修复日期格式化函数,使用本地时区避免 UTC 转换导致的日期偏移
后端修改:
- Handler 层:接收并解析所有筛选参数(model、account_id、group_id、stream)
- Service 层:传递完整的筛选参数到 Repository 层
- Repository 层:SQL 查询动态添加所有过滤条件
- 更新接口定义和所有调用点以保持一致性
影响范围:
- /admin/dashboard/trend 端点现支持完整筛选
- /admin/dashboard/models 端点现支持完整筛选
- 用户在后台使用记录页面选择任意筛选条件时,趋势图和模型分布图会实时响应
- 日期选择器在任何时区下都能正确保持今天的选择
|
2026-01-14 21:52:50 +08:00 |
|
IanShaw027
|
5432087d96
|
refactor(frontend): 优化ops错误详情模态框代码格式和功能
- 重构OpsErrorDetailModal.vue代码格式,提升可读性
- 添加上游错误tab显示功能
- 完善i18n翻译(upstream_http)
- 优化其他ops组件代码格式
|
2026-01-14 20:49:18 +08:00 |
|
LLLLLLiulei
|
9bdb45be7c
|
feat: enhance proxy management
|
2026-01-14 19:45:29 +08:00 |
|
IanShaw027
|
514c0562e0
|
refactor(frontend): 清理OpsDashboardHeader中的i18n翻译
将技术术语的i18n翻译键替换为硬编码文本:
- ms (P99) - 毫秒和百分位数标识
- TTFT - Time To First Token缩写
这些是通用技术术语,不需要国际化。
|
2026-01-14 19:02:02 +08:00 |
|
IanShaw027
|
371275ec34
|
refactor(frontend): 清理ops组件中未使用的i18n翻译
- 移除i18n文件中未使用的翻译键(cpu, redis, qps, ttft等)
- 将技术术语改为硬编码(QPS, CPU, TPS等不需要翻译)
- 简化OpsDashboardHeader、OpsErrorDetailModal等组件的i18n调用
|
2026-01-14 17:04:30 +08:00 |
|
墨颜
|
d89e797bfc
|
Merge branch 'main' of https://github.com/whoismonay/sub2api
|
2026-01-14 16:30:32 +08:00 |
|
IanShaw027
|
55e469c7fe
|
fix(ops): 优化错误日志过滤和查询逻辑
后端改动:
- 添加 resolved 参数默认值处理(向后兼容,默认显示未解决错误)
- 新增 status_codes_other 查询参数支持
- 移除 service 层的高级设置过滤逻辑,简化错误日志查询流程
前端改动:
- 完善错误日志相关组件的国际化支持
- 优化 Ops 监控面板和设置对话框的用户体验
|
2026-01-14 16:26:33 +08:00 |
|
墨颜
|
fb99ceacc7
|
feat(计费): 支持账号计费倍率快照与统计展示
- 新增 accounts.rate_multiplier(默认 1.0,允许 0)
- 使用 usage_logs.account_rate_multiplier 记录倍率快照,避免历史回算
- 统计/导出/管理端展示账号口径费用(total_cost * account_rate_multiplier)
|
2026-01-14 16:12:08 +08:00 |
|
IanShaw027
|
918a253851
|
feat(frontend): 完善ops监控面板和组件功能
|
2026-01-14 14:30:18 +08:00 |
|
IanShaw027
|
5013290486
|
feat(frontend): 优化ops监控UI组件
|
2026-01-14 12:41:24 +08:00 |
|
IanShaw027
|
8cf3e9a620
|
feat(frontend): 更新ops API接口和国际化文案
|
2026-01-14 12:41:05 +08:00 |
|
IanShaw027
|
182683814b
|
refactor(ops): 移除duration相关告警指标,简化监控配置
主要改动:
- 移除 p95_latency_ms 和 p99_latency_ms 告警指标类型
- 移除配置中的 latency_p99_ms_max 阈值设置
- 简化健康分数计算(移除latency权重,重新归一化SLA和错误率)
- 移除duration相关的诊断规则和阈值检查
- 统一术语:延迟 → 请求时长
- 保留duration数据展示,但不再用于告警判断
- 聚焦TTFT作为主要的响应速度告警指标
影响范围:
- Backend: handler, service, models, tests
- Frontend: API types, i18n, components
|
2026-01-14 10:52:56 +08:00 |
|
shaw
|
99cbfa1567
|
fix(admin): 修复退款金额精度问题
- 显示完整余额精度,避免四舍五入导致的退款失败
- 添加"全部"按钮,一键填入完整余额
- 移除最小金额限制,支持任意正数金额
|
2026-01-14 10:22:31 +08:00 |
|
IanShaw027
|
33f58d583d
|
fix(ops): 修复告警状态验证和错误处理逻辑
- 增强告警事件状态验证,添加合法状态值检查
- 移除重试逻辑中的遗留字段赋值
- 修正仓库不可用时的错误类型
- 格式化测试文件代码
|
2026-01-14 09:39:18 +08:00 |
|
IanShaw027
|
1e169685f4
|
feat(i18n): 添加ops新功能的国际化文案
- 新增告警静默相关的中英文翻译
- 补充错误分类和重试状态的文案
- 完善ops管理界面的提示信息
|
2026-01-14 09:04:09 +08:00 |
|
IanShaw027
|
f38a3e7585
|
feat(ui): 优化ops监控面板和组件功能
- 增强告警事件卡片的交互和静默功能
- 完善错误详情弹窗的展示和操作
- 优化错误日志表格的筛选和排序
- 新增重试和解决状态的UI支持
|
2026-01-14 09:03:59 +08:00 |
|
IanShaw027
|
b8da5d45ce
|
feat(api): 扩展前端ops API接口
- 新增告警静默相关API调用
- 增强错误日志查询和过滤接口
- 添加重试和解决状态管理接口
|
2026-01-14 09:03:45 +08:00 |
|
shaw
|
93db889a10
|
fix: Gemini OpenCode 教程 baseURL 改为 v1beta
|
2026-01-13 09:52:37 +08:00 |
|
Wesley Liddick
|
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
|
64614756d1
|
Merge pull request #259 from cyhhao/main
fix: adjust OpenCode OpenAI example store placement
|
2026-01-13 09:30:26 +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
|
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 |
|
cyhhao
|
675e61385f
|
Merge branch 'main' of github.com:Wei-Shaw/sub2api
|
2026-01-12 22:36:14 +08:00 |
|
cyhhao
|
67acac1082
|
fix: adjust OpenCode OpenAI example store placement
|
2026-01-12 22:31:43 +08:00 |
|
Edric Li
|
d02e1db018
|
style: 优化滚动条自动隐藏效果
- 默认隐藏滚动条,悬停时显示
- 支持 Webkit (Chrome/Safari/Edge) 和 Firefox
- 滚动条样式与暗色主题适配
|
2026-01-12 22:10:59 +08:00 |
|
Edric Li
|
0da515071b
|
feat(ops): 添加运维监控全屏模式
- 支持通过 URL 参数 ?fullscreen=1 进入全屏模式
- 全屏模式下隐藏非必要 UI 元素(选择器、按钮、提示等)
- 增大健康评分圆环和字体以提升可读性
- 支持 ESC 键退出全屏
- 添加全屏按钮的 i18n 翻译
|
2026-01-12 22:10:59 +08:00 |
|
shaw
|
3b71bc3df1
|
feat: OpenCode 配置提示添加配置文件路径说明
|
2026-01-12 20:49:54 +08:00 |
|
IanShaw027
|
6ad29a470c
|
style(ops): 移除未使用的 isAutoRefreshActive 变量
|
2026-01-12 17:28:25 +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 |
|
shaw
|
68ba866c38
|
fix(frontend): 修复账号管理页面分组显示和 Cookie 授权问题
- 新增 AccountGroupsCell 组件优化分组列显示(最多4个+折叠)
- 修复 Cookie 自动授权时 group_ids/notes/expires_at 字段丢失
- 修复 SettingsView 流超时配置前后端字段不一致问题
|
2026-01-12 16:08:44 +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 |
|
IanShaw027
|
89c1a41305
|
fix(ops): 修复错误日志和请求详情模态框的布局问题
- 修复 OpsErrorDetailsModal 的内容溢出问题,使用 flex 布局确保正确显示
- 修复 OpsErrorLogTable 的表格滚动问题,添加 min-h-0 确保正确的滚动行为
- 修复 OpsRequestDetailsModal 的布局问题,添加 pageSize 初始化并优化 flex 布局
- 统一使用 flex 布局模式,确保模态框内容在不同屏幕尺寸下正确显示
|
2026-01-12 14:31:21 +08:00 |
|
ianshaw
|
6dcb27632e
|
fix(gateway): 自定义错误码触发停止调度
- 修改 HandleUpstreamError 逻辑,启用自定义错误码时所有在列表中的错误码都会停止调度
- 添加 handleCustomErrorCode 函数处理自定义错误码的账号停用
- 前端添加 429/529 错误码的警告提示,因为这些错误码已有内置处理机制
- 更新 EditAccountModal、CreateAccountModal、BulkEditAccountModal 的错误码添加逻辑
|
2026-01-11 22:20:02 -08:00 |
|
IanShaw027
|
5443efd7d7
|
feat(ops): 前端集成实时流量功能
- 添加实时流量API调用方法
- 优化OpsDashboard组件代码
|
2026-01-12 14:18:16 +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 |
|
ianshaw
|
0c52809591
|
refactor(settings): 简化流超时配置,移除冗余字段
- 移除 TimeoutSeconds 字段,超时判定由网关配置控制
- 默认禁用流超时处理功能
|
2026-01-11 22:09:35 -08:00 |
|