"frontend/src/vscode:/vscode.git/clone" did not exist on "01b08e1e435e711bba4dabfbe9fa9e611fd79a88"
- 11 Jan, 2026 15 commits
-
-
IanShaw027 authored
-
IanShaw027 authored
-
IanShaw027 authored
-
IanShaw027 authored
-
IanShaw027 authored
-
IanShaw027 authored
- OpsErrorDetailsModal和OpsRequestDetailsModal改用BaseDialog统一弹窗组件 - 分页默认值从50改为20条,减少单页数据量 - OpsAlertEventsCard表格添加sticky表头,优化滚动体验 - 移除自定义Teleport和Transition实现,使用统一组件
-
IanShaw027 authored
- 后端新增 GetAccountAvailability 方法获取账号可用性数据 - 添加分组可用率和限流率计算辅助函数 - 前端支持分组和账号级别的监控指标类型 - 优化警报规则指标选择器,按类别分组显示
-
IanShaw027 authored
- 在OpsDashboardHeader中隐藏queryMode选择器(使用v-if="false") - 保留所有后端逻辑和前端状态管理 - auto模式逻辑:优先使用预聚合数据,不存在时回退到实时计算 - 用户界面更简洁,后端自动选择最优查询方式 相关文件: - frontend/src/views/admin/ops/components/OpsDashboardHeader.vue
-
IanShaw027 authored
- 在OpsDashboardHeader添加设置和警报规则按钮 - 在OpsDashboard集成OpsSettingsDialog组件 - 添加警报规则弹窗展示 - 添加高级设置API类型定义 - 支持从Header快速访问设置和规则管理 相关文件: - frontend/src/api/admin/ops.ts - frontend/src/views/admin/ops/types.ts - frontend/src/views/admin/ops/OpsDashboard.vue - frontend/src/views/admin/ops/components/OpsDashboardHeader.vue
-
IanShaw027 authored
- 添加警报规则保存成功提示:"警报规则保存成功" - 添加警报规则删除成功提示:"警报规则删除成功" - 添加运维监控设置保存成功提示:"运维监控设置保存成功" - 替换通用的"操作成功"提示为具体的业务提示 - 失败时显示后端返回的详细错误信息 相关文件: - frontend/src/i18n/locales/zh.ts - frontend/src/views/admin/ops/components/OpsAlertRulesCard.vue - frontend/src/views/admin/ops/components/OpsSettingsDialog.vue
-
IanShaw027 authored
**响应式优化**: - 添加flex-wrap支持窄屏时间选择器自动换行 - 当前QPS/TPS在窄屏时自动换行,避免溢出 - 时间按钮在窄屏使用更小字号和间距(9px/1.5px) - 当前数值使用响应式字体(xl→sm:2xl) **指标展示优化**: 1. 请求卡片: - 标题简化:总请求 → 请求 - 字段调整:请求 → 请求数 - 移除:平均延迟、平均首字延迟(避免冗余) 2. 延迟和TTFT卡片: - 布局:grid → flex-wrap(自适应布局) - 指标不换行:添加whitespace-nowrap - 最小宽度:min-w-[60px]保证可读性 - 单位内联:名称、数值、单位在同一行(P95: 123 ms) - 自动换行:整个指标项作为整体换行 **效果**: - 窄屏:所有元素自动适配,无溢出 - 宽屏:充分利用空间,清晰展示 - 灵活布局:根据容器宽度自动调整指标排列
-
IanShaw027 authored
**前端改动**: 1. OpsErrorDetailModal.vue: - 新增上游错误详情展示功能 - 支持查看上游错误的请求头、响应体等调试信息 - 改进错误信息格式化与可读性 2. ops.ts API: - 新增getUpstreamErrors接口调用上游错误查询API **后端配置**: - config.go/config.yaml/deploy/config.example.yaml: - 更新配置支持上游错误事件记录开关 - 添加相关配置项文档说明
-
IanShaw027 authored
- 将静态QPS历史折线图替换为动画脉搏线 - 使用SVG animate元素实现心跳效果(2秒循环动画) - 增强流量可视化:通过脉冲跳动直观展示流量"活跃"状态 - 恢复重构前的视觉效果与用户体验
-
IanShaw027 authored
- 添加实时QPS/TPS历史数据追踪(最近60个数据点) - 在平均QPS/TPS上方添加SVG脉搏线图(sparkline) - 将延迟和TTFT卡片的指标布局从2列改为3列 - 恢复Max指标显示(P95/P90/P50/Avg/Max)
-
IanShaw027 authored
- 添加 LinuxDo 和 Update 配置(从 main 分支缺失) - 添加 LinuxDoConnectSyntheticEmailDomain 常量 - 添加 IsClaudeCodeClient context key - 添加 GetLinuxDoConnectOAuthConfig 方法 - 修复 BindStickySession 调用签名 - 修复前端 i18n 重复属性 - 重新生成 wire 依赖注入代码 这个提交准备被合并替换,先保存以防丢失。
-
- 10 Jan, 2026 3 commits
-
-
Edric Li authored
Add a warning message to inform admins that some websites may have X-Frame-Options or CSP policies that prevent iframe embedding.
-
Edric Li authored
- Add home_content setting for custom homepage (HTML or iframe URL) - Inject public settings into index.html to eliminate page flash - Support ETag caching with automatic invalidation on settings update - Add Vite plugin for dev mode settings injection - Refactor HomeView to use appStore instead of local API calls
-
long authored
- 支持创建/编辑/删除优惠码,设置赠送金额和使用限制 - 注册页面实时验证优惠码并显示赠送金额 - 支持 URL 参数自动填充 (?promo=CODE) - 添加优惠码验证接口速率限制 - 使用数据库行锁防止并发超限 - 新增后台优惠码管理页面,支持复制注册链接
-
- 09 Jan, 2026 17 commits
-
-
IanShaw027 authored
主要改动: - 重构仪表板为左右布局(5:7比例) - 左侧:健康评分 + 实时信息(当前/峰值/平均 QPS/TPS) - 右侧:6个卡片展示详细指标(3列x2行) - 总请求:请求数、Token数、平均QPS/TPS、平均延迟/TTFT - SLA:百分比、异常数、进度条 - 延迟:P99/P95/P90/P50/Avg/Max(带颜色编码) - TTFT:P99/P95/P90/P50/Avg/Max(带颜色编码) - 请求错误:错误率、错误数、业务限制数 - 上游错误:错误率、错误数(排除429/529)、429/529数 - 添加延迟/TTFT颜色编码(<500ms绿色,<1s黄色,<2s橙色,≥2s红色) - 添加实时窗口选择器(1min/5min/30min/1h) - 优化时间段选择器标签("近5分钟"等) - 完善中英文i18n翻译 - 数据库:添加Redis连接池字段(redis_conn_total, redis_conn_idle)
-
IanShaw027 authored
后端改进: - 新增健康评分计算服务(ops_health_score.go) - 添加分布式锁支持(ops_advisory_lock.go) - 优化指标采集和聚合逻辑 - 新增运维指标采集间隔配置(60-3600秒) - 移除未使用的WebSocket查询token认证中间件 - 改进清理服务和告警评估逻辑 前端改进: - 简化OpsDashboard组件结构 - 完善国际化文本(中英文) - 新增运维监控相关API类型定义 - 添加运维指标采集间隔设置界面 - 优化错误详情模态框 测试: - 添加健康评分单元测试 - 更新API契约测试
-
Edric.Li authored
* feat(api-key): add IP whitelist/blacklist restriction and usage log IP tracking - Add IP restriction feature for API keys (whitelist/blacklist with CIDR support) - Add IP address logging to usage logs (admin-only visibility) - Remove billing_type column from usage logs UI (redundant) - Use generic "Access denied" error message for security Backend: - New ip package with IP/CIDR validation and matching utilities - Database migrations for ip_whitelist, ip_blacklist (api_keys) and ip_address (usage_logs) - Middleware IP restriction check after API key validation - Input validation for IP/CIDR patterns on create/update Frontend: - API key form with enable toggle for IP restriction - Shield icon indicator in table for keys with IP restriction - Removed billing_type filter and column from usage views * fix: update API contract tests for ip_whitelist/ip_blacklist fields Add ip_whitelist and ip_blacklist fields to expected JSON responses in API contract tests to match the new API key schema.
-
Edric Li authored
- Add IP restriction feature for API keys (whitelist/blacklist with CIDR support) - Add IP address logging to usage logs (admin-only visibility) - Remove billing_type column from usage logs UI (redundant) - Use generic "Access denied" error message for security Backend: - New ip package with IP/CIDR validation and matching utilities - Database migrations for ip_whitelist, ip_blacklist (api_keys) and ip_address (usage_logs) - Middleware IP restriction check after API key validation - Input validation for IP/CIDR patterns on create/update Frontend: - API key form with enable toggle for IP restriction - Shield icon indicator in table for keys with IP restriction - Removed billing_type filter and column from usage views
-
IanShaw027 authored
- 新增帮助提示组件(HelpTooltip.vue) - 更新侧边栏添加 ops 监控菜单项 - 扩展设置视图集成 ops 配置面板 - 新增 ops 监控视图目录(dashboard, alerts, realtime, settings 等)
-
IanShaw027 authored
- 添加英文翻译(en.ts)包含 ops 监控所有文案 - 添加中文翻译(zh.ts)包含 ops 监控所有文案
-
IanShaw027 authored
- 新增 adminSettings store 管理 ops 配置状态 - 注册 adminSettings store 到全局 store - 添加 ops 监控相关路由(dashboard, alerts, realtime, settings)
-
IanShaw027 authored
- 新增 ops API 客户端(ops.ts) - 扩展 settings API 支持 ops 配置 - 更新 admin API 索引导出 ops 模块 - 扩展 API 客户端支持 WebSocket 连接
-
shaw authored
-
IanShaw027 authored
- 后端:支持批量更新账号的 schedulable 字段 - 在 BulkUpdateAccountsRequest 中添加 schedulable 参数 - 在 AccountBulkUpdate 中添加 schedulable 字段支持 - 更新 repository 层批量更新 SQL 逻辑 - 前端:在账号管理页面添加批量调度控制 - 新增"批量启用调度"和"批量停止调度"按钮 - 添加 handleBulkToggleSchedulable 处理函数 - 显示具体的成功提示信息(包含操作账号数量) - 国际化:添加批量调度相关中英文翻译 - 优化:添加 search 参数标准化和验证(account_handler)
-
IanShaw027 authored
1. 恢复账号管理批量操作栏缺失的功能按钮 - 添加"本页全选"按钮支持批量选择当前页所有账号 - 添加"清除已选"按钮快速清空已选账号列表 - 在重构拆分组件时遗漏,现已恢复 2. 修复分组管理搜索功能仅搜索当前页的问题 - 前端:移除本地过滤逻辑,改用后端搜索 - 后端:添加 search 参数支持,搜索名称和描述字段 - 支持不区分大小写的模糊匹配 - 统一所有管理页面的搜索体验
-
admin authored
- 在设置页面添加"使用当前站点生成并复制"按钮 - 自动填充回调地址并复制到剪贴板 - 添加中英文国际化支持
🤖 Generated with [Claude Code](https://claude.com/claude-code ) Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
admin authored
- 将 LinuxDo Connect 配置从环境变量迁移到数据库持久化 - 在管理后台系统设置中添加 LinuxDo OAuth 配置项 - 简化部署流程,无需修改 docker-compose.override.yml
🤖 Generated with [Claude Code](https://claude.com/claude-code ) Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
admin authored
- 新增 Linux DO OAuth 配置项和环境变量支持 - 实现 OAuth 授权流程和回调处理 - 前端添加 Linux DO 登录按钮和回调页面 - 支持通过 Linux DO 账号注册/登录 - 添加相关国际化文本
🤖 Generated with [Claude Code](https://claude.com/claude-code ) Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
IanShaw027 authored
修复的问题: 1. **搜索和筛选防抖不同步**(AccountsView.vue) - 问题:筛选器使用 reload(立即),搜索使用 debouncedReload(300ms延迟) - 修复:统一使用 debouncedReload,避免多余的API调用 2. **useTableLoader 竞态条件**(useTableLoader.ts) - 问题:finally 块检查 signal.aborted 而不是 controller 实例 - 修复:检查 abortController === currentController 3. **改进错误处理**(UsersView.vue) - 添加详细错误消息:error.response?.data?.detail || error.message - 用户可以看到具体的错误原因而不是通用消息 4. **分页边界检查**(useTableLoader.ts, UsersView.vue) - 添加页码有效性检查:Math.max(1, Math.min(page, pagination.pages || 1)) - 防止分页越界导致显示空表 影响范围: - frontend/src/composables/useTableLoader.ts - frontend/src/views/admin/AccountsView.vue - frontend/src/views/admin/UsersView.vue 测试:✓ 前端构建测试通过
-
IanShaw027 authored
修复的主要问题: 1. **分页切换失效**(AccountsView.vue) - 修复 useTableLoader 未解构 handlePageSizeChange 函数 - 添加 @update:pageSize 事件绑定到 Pagination 组件 2. **内存泄漏修复**(多个文件) - UsersView.vue: 添加 searchTimeout 清理和 abortController.abort() - ProxiesView.vue: 添加 onUnmounted 钩子清理定时器 - RedeemView.vue: 添加 onUnmounted 钩子清理定时器 3. **分页重置问题**(UsersView.vue) - toggleBuiltInFilter: 切换筛选器时重置 pagination.page = 1 - toggleAttributeFilter: 切换属性筛选时重置 pagination.page = 1 影响范围: - frontend/src/views/admin/AccountsView.vue - frontend/src/views/admin/ProxiesView.vue - frontend/src/views/admin/RedeemView.vue - frontend/src/views/admin/UsersView.vue 测试:✓ 前端构建测试通过
-
Xu Kang authored
-
- 08 Jan, 2026 5 commits
-
-
IanShaw authored
* fix(gemini): Google One 强制使用内置 OAuth client + 自动获取 project_id + UI 优化 ## 后端改动 ### 1. Google One 强制使用内置 Gemini CLI OAuth Client **问题**: - Google One 之前允许使用自定义 OAuth client,导致认证流程不稳定 - 与 Code Assist 的行为不一致 **解决方案**: - 修改 `gemini_oauth_service.go`: Google One 现在与 Code Assist 一样强制使用内置 client (L122-135) - 更新 `gemini_oauth_client.go`: ExchangeCode 和 RefreshToken 方法支持强制内置 client (L31-44, L77-86) - 简化 `geminicli/oauth.go`: Google One scope 选择逻辑 (L187-190) - 标记 `geminicli/constants.go`: DefaultGoogleOneScopes 为 DEPRECATED (L30-33) - 更新测试用例以反映新行为 **OAuth 类型对比**: | OAuth类型 | Client来源 | Scopes | Redirect URI | |-----------|-----------|--------|-----------------| | code_assist | 内置 Gemini CLI | DefaultCodeAssistScopes | https://codeassist.google.com/authcode | | google_one | 内置 Gemini CLI (新) | DefaultCodeAssistScopes | https://codeassist.google.com/authcode | | ai_studio | 必须自定义 | DefaultAIStudioScopes | http://localhost:1455/auth/callback | ### 2. Google One 自动获取 project_id **问题**: - Google One 个人账号测试模型时返回 403/404 错误 - 原因:cloudaicompanion API 需要 project_id,但个人账号无需手动创建 GCP 项目 **解决方案**: - 修改 `gemini_oauth_service.go`: OAuth 流程中自动调用 fetchProjectID - Google 通过 LoadCodeAssist API 自动分配 project_id - 与 Gemini CLI 行为保持一致 - 后端根据 project_id 自动选择正确的 API 端点 **影响**: - Google One 账号现在可以正常使用(需要重新授权) - Code Assist 和 AI Studio 账号不受影响 ### 3. 修复 Gemini 测试账号无内容输出问题 **问题**: - 测试 Gemini 账号时只显示"测试成功",没有显示 AI 响应内容 - 原因:processGeminiStream 在检查到 finishReason 时立即返回,跳过了内容提取 **解决方案**: - 修改 `account_test_service.go`: 调整逻辑顺序,先提取内容再检查是否完成 - 确保最后一个 chunk 的内容也能被正确显示 **影响**: - 所有 Gemini 账号类型(API Key、OAuth)的测试现在都会显示完整响应内容 - 用户可以看到流式输出效果 ## 前端改动 ### 1. 修复图标宽度压缩问题 **问题**: - 账户类型选择按钮中的图标在某些情况下会被压缩变形 **解决方案**: - 修改 `CreateAccountModal.vue`: 为所有平台图标容器添加 `shrink-0` 类 - 确保 Anthropic、OpenAI、Gemini、Antigravity 图标保持固定 8×8 尺寸 (32px × 32px) ### 2. 优化重新授权界面 **问题**: - 重新授权时显示三个可点击的授权类型选择按钮,可能导致用户误切换到不兼容的授权方式 **解决方案**: - 修改 `ReAuthAccountModal.vue` (admin 和普通用户版本): - 将可点击的授权类型选择按钮改为只读信息展示框 - 根据账号的 `credentials.oauth_type` 动态显示对应图标和文本 - 删除 `geminiAIStudioOAuthEnabled` 状态和 `handleSelectGeminiOAuthType` 方法 - 防止用户误操作 ## 测试验证 -
✅ 所有后端单元测试通过 -✅ OAuth client 选择逻辑正确 -✅ Google One 和 Code Assist 行为一致 -✅ 测试账号显示完整响应内容 -✅ UI 图标显示正常 -✅ 重新授权界面只读展示正确 * fix(lint): 修复 golangci-lint 错误信息格式问题 - 将错误信息改为小写开头以符合 Go 代码规范 - 修复 ST1005: error strings should not be capitalized -
Edric Li authored
- Add claude_code_only field to restrict groups to Claude Code clients only - Add fallback_group_id for non-Claude Code requests to use alternate group - Implement ClaudeCodeValidator for User-Agent detection - Add group-level session binding isolation (groupID in Redis key) - Prevent cross-group sticky session pollution - Update frontend with Claude Code restriction controls
-
Edric Li authored
When clicking "Enter Console" button on home page, admin users are now redirected to /admin/dashboard instead of /dashboard.
-
Edric Li authored
Display the number of accounts bound to each proxy in the admin proxy management page, similar to the groups list view.
-
Edric Li authored
- Add user_agent field to UsageLog DTO and mapper - Display User-Agent column in admin and user usage tables - Add formatUserAgent helper to show friendly client names - Include user_agent in Excel export - Remove request_id column from admin usage table
-