- 30 Dec, 2025 4 commits
- 29 Dec, 2025 29 commits
-
-
Junming Chen authored
-
song authored
-
song authored
- 只有 5 次重试全部失败后才标记账户限流 - 使用 Gemini 格式解析 429 响应中的重试时间 - Claude 模型无重试时间时默认 1 分钟,Gemini 默认 5 分钟 - 添加生图模型映射 gemini-3-pro-image-preview
-
shaw authored
新增功能: - Antigravity OAuth 授权流程支持 - Claude → Gemini 协议转换(Claude API 请求自动转换为 Gemini 格式) - 配额刷新和状态显示 - 混合调度功能,支持 Anthropic 和 Antigravity 账户混合使用 - /antigravity 专用路由,支持仅使用 Antigravity 账户 - 前端 Antigravity 服务商标识和账户管理功能 冲突解决: - CreateAccountModal.vue: 合并 data-tour 属性和 mixed-scheduling 属性 - EditAccountModal.vue: 合并 data-tour 属性和 mixed-scheduling 属性 代码质量改进: - 修复 antigravity 类型文件的 gofmt 格式问题(struct 字段对齐、interface{} → any) - 移除 .golangci.yml 中的 gofmt 排除规则 - 修复测试文件的格式问题 -
shaw authored
## 主要变更 ### 对话框系统重构 - 升级 BaseDialog 组件,添加动画、焦点管理、响应式宽度 - 删除旧的 Modal.vue,统一使用 BaseDialog ### 使用量数据导出升级 - 改为 Excel 格式导出,支持分页全量导出 - 添加导出进度对话框,支持取消操作 - 新增依赖:xlsx、file-saver ### 使用量页面优化 - Token 明细悬浮提示 - 请求 ID 一键复制 - 新增 first_token 列 ### 后端修复 - 账户统计查询添加软删除过滤 ## 冲突解决 - 保留 driver.js 依赖(onboarding 功能需要) - 合并 package.json 变更
-
shaw authored
-
shaw authored
- 使用 Teleport 将 Select 下拉菜单渲染到 body,避免 driver.js 遮罩层阻挡 - 添加 pointer-events 和 @click.stop 确保下拉选项可点击 - 移除 useOnboardingTour 中无效的 Select 组件处理代码 - 清理未使用的 CSS 样式和 console 调试语句 - 简化 Select 组件在引导期间的交互逻辑
-
song authored
-
song authored
-
song authored
-
song authored
-
song authored
- 删除 client.go 中未使用的 proxyURL 字段 - 删除 AntigravityGatewayService 中未使用的字段和方法 - 修复 gofmt 格式问题
-
song authored
- SA1029: 创建 ctxkey 包定义类型安全的 context key - ST1005: 错误字符串首字母改小写 - errcheck: 显式忽略 bytes.Buffer.Write 返回值 - 修复单元测试中 GatewayService 缺少 cfg 字段的问题
-
song authored
-
shaw authored
删除开发过程中遗留的未使用文件: - TourDescription.vue: 未被使用的结构化描述组件 - useTourStepDescription.ts: 步骤key映射,引用的组件从未创建 - TourStepDescriptions/: 空的组件目录 当前实现通过 i18n + HTML 字符串直接提供描述内容,无需这些文件。
-
song authored
-
song authored
-
song authored
-
song authored
添加 /antigravity/v1/* 和 /antigravity/v1beta/* 路由: - 通过 ForcePlatform 中间件强制使用 antigravity 平台 - 跳过混合调度逻辑,仅调度 antigravity 账户 - 支持按分组优先查找,找不到时回退查询全部 antigravity 账户 修复 context key 类型不匹配问题: - middleware 和 service 统一使用字符串常量 "ctx_force_platform" - 解决 Go context.Value() 类型+值匹配导致的读取失败 其他改动: - 嵌入式前端中间件白名单添加 /antigravity/ 路径 - e2e 测试 Gemini 端点 URL 添加 endpointPrefix 支持
-
IanShaw027 authored
- 使用 BaseDialog 替代旧版 Modal 组件 - 添加平滑过渡动画和更好的可访问性支持 - 新增 ExportProgressDialog 导出进度弹窗 - 优化所有账号管理和使用记录相关弹窗 - 更新国际化文案,改进用户交互体验 - 精简依赖,减少 package.json 体积
-
IanShaw027 authored
-
IanShaw027 authored
1. 移除重复的"不再提示"按钮 - 只保留右上角的关闭按钮(X) - 简化用户操作,避免混淆 2. 移除退出确认框 - 点击关闭按钮直接退出并标记为已看过 - ESC 键也直接退出,不再弹出确认框 - 提升用户体验,减少打扰 3. 修复 Select 下拉菜单被遮挡问题 - 增加被高亮元素的下拉菜单 z-index - 确保下拉菜单在引导 popover 之上显示 - 解决步骤 5/21 (平台选择) 无法操作的问题
-
IanShaw027 authored
修复 Gemini 审查发现的潜在问题,并增强新手引导功能: 1. 简易模式下完全禁用新手引导 - useOnboardingTour: 添加 isSimpleMode 判断,简易模式下不自动启动 - 只在标准模式的管理员第一次加载时自动弹出 2. 动态过滤简易模式相关步骤 - steps.ts: getAdminSteps 添加 isSimpleMode 参数 - 简易模式下自动过滤分组管理和账号分组选择步骤 - 避免引导找不到被隐藏的元素 3. 优化引导按钮显示条件 - AppHeader: 添加 showOnboardingButton computed - 只在标准模式的管理员下显示"重新开始引导"按钮 - 非管理员或简易模式下不显示按钮 4. 确保引导只在首次自动弹出 - 关闭后不再自动出现 - 只能从右上角手动重新打开
-
IanShaw027 authored
- 添加 Guide 组件和引导步骤配置 - 实现 useOnboardingTour 和 useTourStepDescription composables - 添加 onboarding store 管理引导状态 - 更新多个视图和组件以支持引导功能 - 添加国际化支持(中英文) - 删除旧的实现指南文档
-
song authored
- 后端:账户模型添加 IsMixedSchedulingEnabled() 方法,读取 extra.mixed_scheduling - 后端:gateway_service 和 gemini_messages_compat_service 支持混合调度逻辑 - 后端:分组创建支持指定 platform 参数 - 前端:账户创建/编辑弹窗添加混合调度开关(仅 antigravity 账户显示) - 前端:混合调度开关添加问号图标和 tooltip 说明 - 前端:GroupSelector 支持根据 mixedScheduling 属性过滤分组 - 前端:分组创建支持选择 platform - 测试:e2e 测试添加 ENDPOINT_PREFIX 环境变量支持混合/隔离模式测试 - 测试:删除过时的 Claude signature 测试用例
-
shaw authored
-
shaw authored
- 移除 api_contract_test.go 中的 SettingKeySimpleMode 引用 - 移除期望响应中的 simple_mode 字段 - 修复 NewSettingHandler 调用参数数量
-
shaw authored
移除与 PR #66 冲突的旧版简易模式实现(commit 7d4b7dee)。 新版简易模式通过 run_mode 配置文件/环境变量控制,无需数据库设置。 后端变更: - 移除 SettingKeySimpleMode 常量 - 移除 SystemSettings/PublicSettings 中的 SimpleMode 字段 - 移除 setting_handler 中的简易模式切换逻辑 - 移除 userService 依赖(不再需要自动设置管理员并发数) 前端变更: - 移除 appStore.simpleMode 状态 - 移除设置页面的"使用模式"设置区块 - 移除 GroupsView 中的简易模式相关逻辑 - 移除相关国际化文案
-
shaw authored
- Remove unused simpleMode variable in AppSidebar.vue - Add run_mode to AuthResponse.user type definition
-
- 28 Dec, 2025 7 commits
-
-
IanShaw027 authored
**问题**: 1. login/register 未处理 run_mode,导致 authStore.runMode 不更新 2. 侧边栏使用 simpleMode.value,与路由守卫的 authStore.isSimpleMode 不一致 **修复**: 1. 在 login() 和 register() 中提取并设置 run_mode 2. 统一侧边栏使用 authStore.isSimpleMode **影响**: - 路由守卫现在可以正确工作 - 前端UI状态与后端配置保持一致 - 登录/注册后立即生效,无需刷新
-
IanShaw027 authored
由于简易模式会自动创建3个默认分组(anthropic-default, openai-default, gemini-default), 需要更新测试用例的预期数量: - TestList: 期望5个分组(3个默认 + 2个测试) - TestListActive: 期望4个活跃分组(3个默认 + 1个测试) - TestListActiveByPlatform: 期望2个Anthropic分组(1个默认 + 1个测试) - TestListWithFilters_Platform: 期望2个OpenAI分组(1个默认 + 1个测试)
-
IanShaw027 authored
**问题**: - 使用 toISOString() 格式化日期导致UTC时区问题 - 在UTC+8时区凌晨时,日期会显示为前一天 - 日期范围初始化在 onMounted 中导致重复渲染和请求 **修复**: - 统一使用本地时区格式化日期 - 在变量声明时就初始化日期范围,避免延迟初始化 - 移除 initializeDateRange() 函数,直接在声明时设置正确值 - 添加 formatLocalDate() 辅助函数统一日期格式化逻辑 **影响范围**: - 用户仪表盘 (DashboardView) - 管理员仪表盘 (admin/DashboardView) - 用户使用记录 (UsageView) - 管理员使用记录 (admin/UsageView) **效果**: - 日期范围正确包含当天数据 - 避免页面加载时的重复请求 - 改善用户体验,减少不必要的重新渲染
-
IanShaw027 authored
**功能概述**: 实现简易模式(Simple Mode),为个人用户和小团队提供简化的使用体验,隐藏复杂的分组、订阅、配额等概念。 **后端改动**: 1. 配置系统 - 新增 run_mode 配置项(standard/simple) - 支持环境变量 RUN_MODE - 默认值为 standard 2. 数据库初始化 - 自动创建3个默认分组:anthropic-default、openai-default、gemini-default - 默认分组配置:无并发限制、active状态、非独占 - 幂等性保证:重复启动不会重复创建 3. 账号管理 - 创建账号时自动绑定对应平台的默认分组 - 如果未指定分组,自动查找并绑定默认分组 **前端改动**: 1. 状态管理 - authStore 新增 isSimpleMode 计算属性 - 从后端API获取并同步运行模式 2. UI隐藏 - 侧边栏:隐藏分组管理、订阅管理、兑换码菜单 - 账号管理页面:隐藏分组列 - 创建/编辑账号对话框:隐藏分组选择器 3. 路由守卫 - 限制访问分组、订阅、兑换码相关页面 - 访问受限页面时自动重定向到仪表板 **配置示例**: ```yaml run_mode: simple run_mode: standard ``` **影响范围**: - 后端:配置、数据库迁移、账号服务 - 前端:认证状态、路由、UI组件 - 部署:配置文件示例 **兼容性**: - 简易模式和标准模式可无缝切换 - 不需要数据迁移 - 现有数据不受影响
-
song authored
-
song authored
- 新增 TestClaudeMessagesWithClaudeSignature 测试 - 验证历史 thinking block 带有 Claude signature 时的处理 - 修复配额刷新服务的次要问题
-
shaw authored
- 添加 OpenAI/Gemini 平台的 baseUrlHint 和 apiKeyHint 国际化文案 - 修改 CreateAccountModal 和 EditAccountModal 根据平台显示正确提示 - 将重复的平台判断逻辑抽取为 computed 属性,优化代码结构
-