IanShaw027
|
8b95d16220
|
refactor(ops): 简化自动刷新定时器逻辑
- 合并双定时器为单一倒计时定时器
- 倒计时归零时触发数据刷新
- 添加自定义时间范围的安全回退
|
2026-01-15 22:07:23 +08:00 |
|
IanShaw027
|
a478822b8e
|
refactor(ops): 优化文案显示
- TTFT 定义统一改为"首 Token"/"First Token"(而非"首字节"/"first byte")
- 请求时长卡片标题去掉"(毫秒)"/"(ms)"后缀
|
2026-01-15 21:37:35 +08:00 |
|
IanShaw027
|
23aa69f56f
|
refactor(ops): 优化任务心跳和组件刷新机制
后端改动:
- 添加 ops_job_heartbeats.last_result 字段记录任务执行结果
- 优化告警评估器统计信息(规则数/事件数/邮件数)
- 统一各定时任务的心跳记录格式
前端改动:
- 重构 OpsConcurrencyCard 使用父组件统一控制刷新节奏
- 移除独立的 5 秒刷新定时器,改用 refreshToken 机制
- 修复 TypeScript 类型错误
|
2026-01-15 21:31:55 +08:00 |
|
IanShaw027
|
e93f086485
|
fix(ops): 请求时长详情显示所有请求
- 移除请求时长卡片详情按钮的 min_duration_ms 参数限制
- 现在点击详情会显示所有请求,按时长倒序排列
- 不再只显示 P99 以上的请求
|
2026-01-15 19:57:19 +08:00 |
|
IanShaw027
|
930e9ee55c
|
feat(ops): 添加自定义时间范围选择功能
功能特性:
- 在时间段选择器中增加"自定义"选项
- 点击后弹出对话框,支持选择任意时间范围
- 使用 HTML5 datetime-local 输入框,体验友好
- 自定义时显示格式化的时间范围标签(MM-DD HH:mm ~ MM-DD HH:mm)
- 默认初始化为最近1小时
技术实现:
- 扩展 TimeRange 类型支持 'custom'
- 添加 customStartTime 和 customEndTime 状态管理
- 创建 buildApiParams 辅助函数统一处理 API 参数
- 当选择自定义时,使用 start_time 和 end_time 参数替代 time_range
- 更新所有相关 API 调用支持自定义时间范围
国际化:
- 添加"自定义"、"开始时间"、"结束时间"翻译
|
2026-01-15 19:50:47 +08:00 |
|
IanShaw027
|
38961ba10e
|
refactor(ops): 优化阈值检查系统和布局
阈值检查系统优化:
- 引入三级阈值系统(normal/warning/critical)
- 统一阈值判断逻辑,支持警告和严重两个级别
- 移除硬编码的 TTFT 颜色判断,改用阈值配置
- 新增 getThresholdColorClass 统一颜色映射
布局优化:
- 优化详细指标在卡片内的响应式布局
- 改进宽屏下的卡片布局显示
- 优化指标数值的对齐和间距
|
2026-01-15 19:50:31 +08:00 |
|
shaw
|
5f890e85e7
|
Merge PR #296: OAuth token cache invalidation on 401 and refresh
|
2026-01-15 16:31:37 +08:00 |
|
yangjianbo
|
1bb4c76deb
|
fix(账号管理): 移除调度切换后的冗余列表刷新
切换账号调度状态后,updateSchedulableInList 已完成局部更新,
无需再调用 load() 刷新整个列表。此修改减少不必要的 API 请求,
避免 UI 闪烁。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-15 15:57:47 +08:00 |
|
LLLLLLiulei
|
aab44f9fc8
|
feat: add proxy geo location
|
2026-01-15 15:15:20 +08:00 |
|
yangjianbo
|
90bce60b85
|
feat: merge dev
|
2026-01-15 15:14:44 +08:00 |
|
LLLLLLiulei
|
87b4662993
|
Revert "feat: add proxy geo location"
This reverts commit 09c4f82927ddce1c9528c146a26457f53d02b034.
|
2026-01-15 15:01:50 +08:00 |
|
LLLLLLiulei
|
3a100339b9
|
feat: add proxy geo location
|
2026-01-15 15:01:50 +08:00 |
|
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 |
|