yangjianbo
17ae51c0a0
merge: 合并远程分支并修复代码冲突
...
合并了远程分支 cb72262 的功能更新,同时保留了 ESLint 修复:
**冲突解决详情:**
1. AccountTableFilters.vue
- ✅ 保留 emit 模式修复(避免 vue/no-mutating-props 错误)
- ✅ 添加第三个筛选器 type(账户类型)
- ✅ 新增 antigravity 平台和 inactive 状态选项
2. UserBalanceModal.vue
- ✅ 保留 console.error 错误日志
- ✅ 添加输入验证(金额校验、余额不足检查)
- ✅ 使用 appStore.showError 向用户显示友好错误
3. AccountsView.vue
- ✅ 保留所有 console.error 错误日志(避免 no-empty 错误)
- ✅ 使用新 API:clearRateLimit 和 setSchedulable
4. UsageView.vue
- ✅ 添加 console.error 错误日志
- ✅ 添加图表功能(模型分布、使用趋势)
- ✅ 添加粒度选择(按天/按小时)
- ✅ 保留 XLSX 动态导入优化
**测试结果:**
- ✅ Go tests: PASS
- ✅ golangci-lint: 0 issues
- ✅ ESLint: 0 errors
- ✅ TypeScript: PASS
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-06 12:50:51 +08:00
yangjianbo
4790aced15
fix(前端): 修复 ESLint 代码规范问题
...
- 修复 AccountTableFilters.vue 中的 vue/no-mutating-props 错误,使用 emit 模式替代直接修改 props
- 修复 TypeScript 类型错误,支持 Select 组件的 null 值类型
- 为所有空 catch 块添加错误日志,提升代码可维护性和调试能力
- 涉及文件:AccountTableFilters.vue, UserAllowedGroupsModal.vue, UserApiKeysModal.vue, UserBalanceModal.vue, AccountsView.vue, UsageView.vue, DashboardView.vue, ProfileView.vue
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-06 12:42:06 +08:00
yangjianbo
3f0017d1f1
fix(安全): 修复依赖漏洞并强化安全扫描
...
主要改动:
- 固定 Go 1.25.5 与 CI 校验并更新扫描流程
- 升级 quic-go、x/crypto、req 等依赖并通过 govulncheck
- 强化 JWT 校验、TLS 配置与 xlsx 动态加载
- 新增审计豁免清单与校验脚本
2026-01-06 11:36:38 +08:00
shaw
cb72262ad8
Merge PR #166 : feat: 图片生成计费功能
2026-01-06 11:29:35 +08:00
song
195e227c04
merge: 合并 upstream/main 并保留本地图片计费功能
2026-01-06 10:49:26 +08:00
Yuhao Jiang
f5603b0780
fix: 修复跨时区用户日期范围查询不准确的问题
...
问题:当用户时区与服务器时区不同时,日期范围查询使用服务器时区解析,
导致用户看到的数据与预期不符。
修复方案:
- 前端:所有 GET 请求自动携带用户时区参数
- 后端:新增时区辅助函数,所有日期解析和默认日期范围计算都使用用户时区
- 当用户时区为空或无效时,自动回退到服务器时区
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-05 20:43:03 -06:00
shaw
752882a022
fix: Token 统计支持 M 单位并修复 lint 错误
...
- 用户仪表盘 Token 统计卡片支持 K/M 单位自动切换
- 更新 formatTokensK 工具函数支持百万级显示
- 修复 setup.go 中未检查返回值的 errcheck 错误
2026-01-06 10:13:12 +08:00
shaw
9731b961d0
fix: redeem 页面类型的字段翻译
2026-01-06 09:46:46 +08:00
shaw
af753de481
fix: 修复账号修改代理更新无效的bug
2026-01-06 09:04:01 +08:00
shaw
706af2920f
Merge branch 'fix/account-filters-menu-missing-features'
...
## Summary
- 修复账号管理页面组件拆分时遗漏的功能
- 统一所有内联 SVG 为 Icon 组件
- 修复 ProxySelector 选择"无代理"时发送错误值的问题
## Changes
- AccountTableFilters: 添加 Antigravity 平台选项、类型筛选器、inactive 状态
- AccountActionMenu: 恢复重置状态和清除限速按钮
- AccountsView: 修正 handleClearRateLimit 调用正确的 API
- ProxySelector: 修复选择"无代理"时发送 null 而不是 0
## Conflict Resolution
- ProxySelector.vue: 采用 PR 分支的正确逻辑(发送 null 而不是 0)
这是正确的修复,因为后端使用 *int64 类型,nil 会触发 ClearProxyID()
2026-01-05 21:16:05 +08:00
shaw
4d078a8854
fix(admin): 修复零值字段无法保存的问题
...
- 用户允许分组:前端发送空数组而非 null 表示"允许全部"
- 账户代理:前端发送 0 而非 null 表示"无代理"
- 后端 UpdateAccount/BulkUpdate 正确处理 ProxyID=0 为清除代理
2026-01-05 20:53:38 +08:00
IanShaw027
b6a4182904
fix(frontend): 修复账号调度按钮使用错误的API端点
...
将 handleToggleSchedulable 从 PUT update() 改为 POST setSchedulable(),
后端 PUT 接口不处理 schedulable 字段,导致切换无效。
2026-01-05 20:48:12 +08:00
IanShaw027
4251a5a451
refactor(frontend): 完成所有组件的内联SVG统一替换为Icon组件
...
- 扩展 Icon.vue 组件,新增 60+ 图标路径
- 导航类: arrowRight, arrowLeft, arrowUp, arrowDown, chevronUp, externalLink
- 状态类: checkCircle, xCircle, exclamationCircle, exclamationTriangle, infoCircle
- 用户类: user, userCircle, userPlus, users
- 文档类: document, clipboard, copy, inbox
- 操作类: download, upload, filter, sort
- 安全类: key, lock, shield
- UI类: menu, calendar, home, terminal, gift, creditCard, mail
- 数据类: chartBar, trendingUp, database, cube
- 其他: bolt, sparkles, cloud, server, sun, moon, book 等
- 重构 56 个 Vue 组件,用 Icon 组件替换内联 SVG
- 净减少约 2200 行代码
- 提升代码可维护性和一致性
- 统一图标样式和尺寸管理
2026-01-05 20:22:48 +08:00
ianshaw
ef11abcbfd
fix(frontend): 将 AccountTestModal 内联 SVG 替换为统一 Icon 组件
2026-01-05 02:33:51 -08:00
程序猿MT
e800af54f9
Merge branch 'Wei-Shaw:main' into main
2026-01-05 17:12:09 +08:00
song
d4c2b723a5
feat: 图片生成计费功能
...
- 新增 Group 图片价格配置(image_price_1k/2k/4k)
- BillingService 新增 CalculateImageCost 方法
- AntigravityGatewayService 支持识别图片生成模型并按次计费
- UsageLog 新增 image_count 和 image_size 字段
- 前端分组管理支持配置图片价格(antigravity 和 gemini 平台)
- 图片计费复用通用计费能力(余额检查、扣费、倍率、订阅限额)
2026-01-05 17:07:29 +08:00
shaw
7c419dfc50
Merge PR #163 : feat(前端): 用户管理页面添加 ID 列
2026-01-05 15:47:47 +08:00
Yuhao Jiang
be60d1e7e3
feat(前端): 用户管理页面添加 ID 列
...
在用户列表中添加可选的 ID 列,方便与其他页面(如订阅管理)
显示的"用户 #ID"进行对照定位。
- ID 列位于用户列之后
- 支持排序
- 可在列设置中隐藏
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-05 01:14:56 -06:00
yangjianbo
fb313356f7
Merge branch 'main' into test-dev
2026-01-05 14:43:08 +08:00
ianshaw
471b1c3eeb
fix(frontend): 修复重构时遗漏的 SVG 图标,创建统一图标管理组件
...
- 创建 Icon.vue 统一管理 SVG 图标(20+ 常用图标)
- 修复 AccountActionMenu 中被错误替换为 emoji 的图标
- 修复 ProfileView 和 GroupsView 中的 emoji 图标
- 图标支持 size/strokeWidth 属性,便于复用
2026-01-04 22:26:33 -08:00
LLLLLLiulei
94750fb61f
feat: add account notes field
2026-01-05 14:07:33 +08:00
ianshaw
5b57313c8a
fix(frontend): 统一所有管理页面搜索框宽度为 w-full sm:w-64
2026-01-04 21:58:12 -08:00
yangjianbo
794a9f969b
feat(安全): 添加安全开关并完善测试流程
...
实现安全开关默认关闭与响应头透传逻辑
- URL 校验与响应头过滤支持开关并覆盖流式路径
- 非流式 Content-Type 透传/默认值按配置生效
- 接入 go test、golangci-lint 与前端 lint/typecheck
- 补充相关测试与配置/文档说明
2026-01-05 13:54:43 +08:00
ianshaw
c52c47e122
fix(frontend): 优化账号筛选工具条布局并修复IP管理表头翻译
...
- 筛选组件保持固定宽度,不再自动拉伸填充
- 左右分布布局,中间自然留空
- 修复 IP 管理页面表头缺失的中文翻译
2026-01-04 21:46:23 -08:00
ianshaw
e67dbbdb8a
fix(frontend): 恢复 UsageTable 缺失的列和功能
...
- 恢复 API Key、账号、分组、类型、计费类型等列
- 恢复 Token 详情显示(含缓存读写)
- 恢复首Token时间、耗时列
- 恢复请求ID列及复制功能
2026-01-04 21:10:52 -08:00
ianshaw
ee29b9428b
fix(frontend): 修复重构页面的遗漏问题
...
- 添加 en.ts 中缺失的 admin.redeem.types 翻译
- RedeemView 状态筛选器添加 expired 选项
- SubscriptionsView 用量进度条添加 null/undefined 兜底
- SubscriptionsView 添加 validity_days 表单校验
- GroupsView/ProxiesView 搜索图标添加 dark mode 样式
2026-01-04 20:51:37 -08:00
ianshaw
85f53ef2dd
fix(frontend): 完善表单校验并添加错误提示
...
- UserEditModal: 添加 email 必填和 concurrency 最小值校验
- UserAttributesConfigModal: 添加 key/name 必填和 options 非空校验
- GroupsView: 添加 name 必填校验
- ProxiesView: 添加 name/host 必填和 port 范围校验
- UserBalanceModal: 添加 amount 有效性和余额充足性校验
- RedeemView: 添加空兑换码错误提示
- i18n: 添加所有新增校验的中英文翻译
2026-01-04 20:22:59 -08:00
ianshaw
960c09cdce
fix(frontend): 恢复使用记录图表功能并添加订阅分配表单校验
...
- UsageView: 恢复 ModelDistributionChart、TokenUsageTrend 图表和粒度选择器
- SubscriptionsView: 添加分配订阅时的用户和分组校验提示
- i18n: 添加 pleaseSelectUser/pleaseSelectGroup 翻译
2026-01-04 20:10:15 -08:00
ianshaw
b05e90e4e4
fix(frontend): 修复账号管理页面组件拆分时遗漏的功能
...
- AccountTableFilters: 添加 Antigravity 平台选项、类型筛选器、inactive 状态
- AccountActionMenu: 恢复重置状态和清除限速按钮,添加 dark mode 样式
- AccountsView: 修正 handleClearRateLimit 调用正确的 API
2026-01-04 19:34:08 -08:00
ianshaw
118ca5cf6d
fix: 修复空content处理及更新Gemini使用指南链接
...
- 修复FilterThinkingBlocksForRetry对空content数组的处理
- docker-compose添加SECURITY_URL_ALLOWLIST_UPSTREAM_HOSTS配置
- 更新Gemini使用指南链接:检查归属地、修改归属地、激活Gemini Web
2026-01-04 18:26:39 -08:00
IanShaw027
eef12cb900
refactor(frontend): 统一管理页面工具条布局和操作列样式
...
## 修复内容
### 1. 统一操作列按钮样式
- 所有操作列按钮统一为"图标+文字"垂直排列样式
- UsersView: 编辑和更多按钮添加文字标签
- 与 AccountsView、GroupsView 等页面保持一致
### 2. 统一顶部工具条布局(6个管理页面)
- 使用 flex + justify-between 布局
- 左侧:模糊搜索框、筛选器(可多行排列)
- 右侧:刷新、创建等操作按钮(靠右对齐)
- 响应式:宽度不够时右侧按钮自动换行到上一行
### 3. 修复的页面
- AccountsView: 合并 actions/filters 到单行工具条
- UsersView: 标准左右分栏,操作列添加文字
- GroupsView: 新增搜索框,左右分栏布局
- ProxiesView: 左右分栏,响应式布局
- SubscriptionsView: 新增用户模糊搜索,左右分栏
- UsageView: 补齐所有筛选项,左右分栏
### 4. 新增功能
- GroupsView: 新增分组名称/描述模糊搜索
- SubscriptionsView: 新增用户模糊搜索功能
- UsageView: 补齐 API Key 搜索筛选
### 5. 国际化
- 新增相关搜索框的 placeholder 文案(中英文)
## 技术细节
- 使用 flex-wrap-reverse 实现响应式换行
- 左侧筛选区使用 flex-wrap 支持多行
- 右侧按钮区使用 ml-auto + justify-end 保持右对齐
- 移动端使用 w-full sm:w-* 响应式宽度
## 验证结果
- ✅ TypeScript 类型检查通过
- ✅ 所有页面布局统一
- ✅ 响应式布局正常工作
2026-01-05 01:00:00 +08:00
IanShaw027
64b52c4383
fix(frontend): 修复前端重构后的样式一致性和功能完整性
...
## 修复内容
### 1. AccountsView 功能恢复
- 恢复3个缺失的模态框组件:
- ReAuthAccountModal.vue - 重新授权功能
- AccountTestModal.vue - 测试连接功能
- AccountStatsModal.vue - 查看统计功能
- 恢复 handleTest/handleViewStats/handleReAuth 调用模态框
- 修复 UpdateAccountRequest 类型定义(添加 schedulable 字段)
### 2. DashboardView 修复
- 恢复 formatBalance 函数(支持千位分隔符显示)
- 为 UserDashboardStats 添加完整 Props 类型定义
- 为 UserDashboardRecentUsage 添加完整 Props 类型定义
- 优化格式化函数到共享 utils/format.ts
### 3. 类型安全增强
- 修复 UserAttributeOption 索引签名兼容性
- 移除未使用的类型导入
- 所有组件 Props 类型完整
## 验证结果
- ✅ TypeScript 类型检查通过(0 errors)
- ✅ vue-tsc 检查通过(0 errors)
- ✅ 所有样式与重构前100%一致
- ✅ 所有功能完整恢复
## 影响范围
- AccountsView: 代码行数从974行优化到189行(提升80.6%可维护性)
- DashboardView: 保持组件化同时恢复所有原有功能
- 深色模式支持完整
- 所有颜色方案和 SVG 图标保持一致
Closes #149
2026-01-05 00:38:23 +08:00
IanShaw027
8664cff859
fix(frontend): 修复账号管理页面 Sync CRS 按钮国际化
2026-01-04 23:25:17 +08:00
IanShaw027
aa6f253374
merge: 合并 upstream/main 并解决冲突
...
解决了以下文件的冲突:
- backend/internal/handler/admin/setting_handler.go
- 采用 upstream 的字段对齐风格和 *Configured 字段名
- 添加 EnableIdentityPatch 和 IdentityPatchPrompt 字段
- backend/internal/handler/gateway_handler.go
- 采用 upstream 的 billingErrorDetails 错误处理方式
- frontend/src/api/admin/settings.ts
- 采用 upstream 的 *_configured 字段名
- 添加 enable_identity_patch 和 identity_patch_prompt 字段
- frontend/src/views/admin/SettingsView.vue
- 合并 turnstile_secret_key_configured 字段
- 保留 enable_identity_patch 和 identity_patch_prompt 字段
2026-01-04 23:17:15 +08:00
IanShaw027
f60f943d0c
fix: 修复代码审查报告中的4个关键问题
...
1. 资源管理冗余(ForwardGemini双重Close)
- 错误分支读取body后立即关闭原始body,用内存副本重新包装
- defer添加nil guard,避免重复关闭
- fallback成功时显式关闭旧body,确保连接释放
2. Schema校验丢失(cleanJSONSchema移除字段无感知)
- 新增schemaCleaningWarningsEnabled()支持环境变量控制
- 实现warnSchemaKeyRemovedOnce()在非release模式下告警
- 移除关键验证字段时输出warning,包含key和path
3. UI响应式风险(UsersView操作菜单硬编码定位)
- 菜单改为先粗定位、渲染后测量、再clamp到视口内
- 添加max-height + overflow-auto,超出时可滚动
- 增强交互:点击其它位置/滚动/resize自动关闭或重新定位
4. 身份补丁干扰(TransformClaudeToGemini默认注入)
- 新增TransformOptions + TransformClaudeToGeminiWithOptions
- 系统设置新增enable_identity_patch、identity_patch_prompt
- 完整打通handler/dto/service/frontend配置链路
- 默认保持启用,向后兼容现有行为
测试:
- 后端单测全量通过:go test ./...
- 前端类型检查通过:npm run typecheck
2026-01-04 22:49:40 +08:00
shaw
46dda58355
Merge PR #146 : feat: 提升流式网关稳定性与安全策略强化
2026-01-04 22:45:01 +08:00
IanShaw027
99308ab4fb
refactor(frontend): comprehensive architectural optimization and base component extraction
...
- Standardized table loading logic with enhanced useTableLoader.
- Unified form submission patterns via new useForm composable.
- Extracted common UI components: SearchInput and StatusBadge.
- Centralized common interface definitions in types/index.ts.
- Achieved TypeScript zero-error status across refactored files.
- Greatly improved code reusability and maintainability.
2026-01-04 22:29:19 +08:00
IanShaw027
d4d21d5ef3
refactor(frontend): final component split and comprehensive type safety fixes
...
- Completed modular refactoring of KeysView.vue and SettingsView.vue.
- Resolved remaining TypeScript errors in new components.
- Standardized prop types and event emitters for sub-components.
- Optimized bundle size by eliminating redundant template code and unused script variables.
- Verified system stability with final type checking.
2026-01-04 22:23:19 +08:00
yangjianbo
f8e7255c32
feat(界面): 为 Gemini 配置片段添加语法高亮
...
补齐高亮渲染并保留纯文本回退
新增高亮 token 工具并做 HTML 转义
2026-01-04 22:19:11 +08:00
IanShaw027
e99063e12b
refactor(frontend): comprehensive split of large view files into modular components
...
- Split UsersView.vue into UserCreateModal, UserEditModal, UserApiKeysModal, etc.
- Split UsageView.vue into UsageStatsCards, UsageFilters, UsageTable, etc.
- Split DashboardView.vue into UserDashboardStats, UserDashboardCharts, etc.
- Split AccountsView.vue into AccountTableActions, AccountTableFilters, etc.
- Standardized TypeScript types across new components to resolve implicit 'any' and 'never[]' errors.
- Improved overall frontend maintainability and code clarity.
2026-01-04 22:17:27 +08:00
墨颜
27ed042c56
Merge branch 'feat/apikey-group-remarks'
2026-01-04 21:38:15 +08:00
墨颜
6708f40005
refactor(keys): 优化分组选项显示与代码复用
...
- 删除冗余的 vite.config.js,统一使用 TypeScript 配置
- 创建 GroupOptionItem 组件封装分组选项 UI 逻辑(GroupBadge + 描述 + 勾选状态)
- 在密钥页面的分组选择器中显示分组描述文字
- 添加选中状态的勾选图标,提升交互体验
- 优化描述文字左对齐和截断显示效果
- 消除代码重复,简化维护成本
2026-01-04 21:34:38 +08:00
IanShaw027
d36392b74f
fix(frontend): comprehensive i18n cleanup and Select component hardening
2026-01-04 21:09:14 +08:00
yangjianbo
7dddd06583
Merge branch 'main' of https://github.com/mt21625457/aicodex2api
2026-01-04 21:06:12 +08:00
IanShaw027
c86d445cb7
fix(frontend): sync with main and finalize i18n & component optimizations
2026-01-04 21:00:10 +08:00
IanShaw027
6c036d7b59
fix(frontend): 优化前端组件和国际化支持
...
- 添加 Accept-Language 请求头支持后端翻译
- 优化账户状态指示器和测试模态框
- 简化用户属性表单和配置模态框
- 新增多个国际化翻译条目
- 重构管理视图代码,提升可维护性
2026-01-04 20:49:34 +08:00
yangjianbo
25a0d49af9
chore(合并): 同步主分支变更并解决冲突
...
- 合并 wire/httpclient/http_upstream/proxy_probe 冲突并保留校验逻辑
- 引入 proxyutil 及测试,完善代理配置
- 更新 goreleaser/workflow 与前端细节调整
测试: go test ./...
2026-01-04 20:29:39 +08:00
IanShaw027
a8c3dfb0c1
merge: 合并 upstream/main 解决冲突
...
- 接受上游 wire_gen.go 的简化构造函数参数
- 接受上游 account_test_service.go 的优化实现
2026-01-04 17:41:06 +08:00
IanShaw027
2632a7102d
refactor(settings): 规范化缩写词命名并优化前端帮助界面
...
- 后端:将 Smtp/Api/Doc 字段改为 SMTP/API/Doc(遵循 Go 命名规范)
- 前端:添加 Gemini 帮助按钮,简化配额说明展示
2026-01-04 17:02:38 +08:00
IanShaw027
a185ad1144
feat(gemini): 完善 Gemini OAuth 配额系统和用量显示
...
主要改动:
- 后端:重构 Gemini 配额服务,支持多层级配额策略(GCP Standard/Free, Google One, AI Studio, Code Assist)
- 后端:优化 OAuth 服务,增强 tier_id 识别和存储逻辑
- 后端:改进用量统计服务,支持不同平台的配额查询
- 后端:优化限流服务,增加临时解除调度状态管理
- 前端:统一四种授权方式的用量显示格式和徽标样式
- 前端:增强账户配额信息展示,支持多种配额类型
- 前端:改进创建和重新授权模态框的用户体验
- 国际化:完善中英文配额相关文案
- 移除 CHANGELOG.md 文件
测试:所有单元测试通过
2026-01-04 15:36:00 +08:00