- 26 Feb, 2026 1 commit
-
-
cagedbird043 authored
- 新增 selectedPlatforms prop,从父组件传入选中账号的平台集合 - 根据选中平台过滤模型列表与预设映射按钮,避免误操作 - 混选多平台时显示 amber 警告横幅,提醒用户注意映射适用性 - 仅警告不阻断,保持加法兼容
-
- 14 Feb, 2026 3 commits
-
-
yangjianbo authored
- 前端自动刷新改为 ETag/304 增量合并,减少全量重刷 - 单账号更新后增加静默窗口,避免刚更新即被自动刷新覆盖 - 列表筛选移除时改为待同步提示,不再立即触发全量补页 - 后端账号列表支持 If-None-Match,命中返回 304 - 单账号接口统一补充运行时容量字段并暴露 ETag 头
-
yangjianbo authored
-
yangjianbo authored
- 将编辑与重新授权成功事件改为回传更新后的账号对象 - 在账号列表页按 id 就地补丁更新单行数据并保留运行时容量字段 - 单账号操作(刷新凭证/清错/清限流/临时不可调度重置)改为单行更新 - 后端增强 clear-rate-limit 接口,返回更新后的账号对象 - 同步前端 clearRateLimit API 类型定义 Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
- 11 Feb, 2026 1 commit
-
-
kyx236 authored
- Add groupID parameter to ListAccounts and ListWithFilters methods - Implement account filtering by group ID in repository query - Add group query parameter parsing in account handler - Update all ListAccounts/ListWithFilters call sites with groupID parameter - Add group filter UI component to AccountTableFilters - Add i18n translations for group filter label in English and Chinese - Update API contract and test stubs to reflect new signature - Enable filtering accounts by their assigned groups in admin panel
-
- 06 Feb, 2026 1 commit
-
-
shaw authored
将错误透传规则按钮从自动刷新按钮前面移动到后面
-
- 05 Feb, 2026 4 commits
-
-
shaw authored
支持管理员配置上游错误如何返回给客户端: - 新增 ErrorPassthroughRule 数据模型和 Ent Schema - 实现规则的 CRUD API(/admin/error-passthrough-rules) - 支持按错误码、关键词匹配,支持 any/all 匹配模式 - 支持按平台过滤(anthropic/openai/gemini/antigravity) - 支持透传或自定义响应状态码和错误消息 - 实现两级缓存(Redis + 本地内存)和多实例同步 - 集成到 gateway_handler 的错误处理流程 - 新增前端管理界面组件 - 新增单元测试覆盖核心匹配逻辑 优化: - 移除 refreshLocalCache 中的冗余排序(数据库已排序) - 后端 Validate() 增加匹配条件非空校验
-
LLLLLLiulei authored
-
LLLLLLiulei authored
-
LLLLLLiulei authored
-
- 02 Feb, 2026 1 commit
-
-
song authored
-
- 23 Jan, 2026 1 commit
-
-
shaw authored
-
- 21 Jan, 2026 1 commit
-
-
ducky authored
-
- 19 Jan, 2026 2 commits
-
-
Gemini Wen authored
将订阅管理和账号管理页面的列设置按钮移动到刷新按钮右侧, 与用户管理页面保持一致的布局。 Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
墨颜 authored
- 普通用户 Group DTO 移除 model_routing/account_count/account_groups,避免泄露内部路由与账号信息\n- 新增 AdminGroup DTO,并仅在管理员分组接口返回完整字段\n- 前端拆分 Group/AdminGroup,管理端页面与 API 使用 AdminGroup\n- 增加 /api/v1/groups/available 契约测试,防止回归
-
- 18 Jan, 2026 1 commit
-
-
Gemini Wen authored
- 账号管理新增代理列显示和列设置下拉菜单 - 订阅管理新增列设置,支持用户列在邮箱/用户名间切换 - 列设置持久化到 localStorage - 统一列设置图标样式 Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
- 16 Jan, 2026 2 commits
-
-
shaw authored
- 支持Anthropic OAuth/SetupToken账号的5h窗口费用阈值控制 - 支持账号级别的并发会话数量限制 - 使用Redis缓存窗口费用(30秒TTL)减少数据库压力 - 费用计算基于标准费用(不含账号倍率)
-
yangjianbo authored
移除多余分号并整理 onMounted 代码块,确保 lint:check 通过。
-
- 15 Jan, 2026 5 commits
-
-
IanShaw027 authored
- 合并双定时器为单一倒计时定时器 - 倒计时归零时触发数据刷新 - 添加自定义时间范围的安全回退
-
IanShaw027 authored
后端改动: - 添加 ops_job_heartbeats.last_result 字段记录任务执行结果 - 优化告警评估器统计信息(规则数/事件数/邮件数) - 统一各定时任务的心跳记录格式 前端改动: - 重构 OpsConcurrencyCard 使用父组件统一控制刷新节奏 - 移除独立的 5 秒刷新定时器,改用 refreshToken 机制 - 修复 TypeScript 类型错误
-
yangjianbo authored
切换账号调度状态后,updateSchedulableInList 已完成局部更新, 无需再调用 load() 刷新整个列表。此修改减少不必要的 API 请求, 避免 UI 闪烁。 Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
yangjianbo authored
-
IanShaw027 authored
**问题描述**: - 表格在移动端显示列过多,需要横向滚动,内容被截断 - 顶部操作栏按钮拥挤,占用过多空间 - 弹窗表单在小屏幕上布局不合理 - "更多"操作菜单定位错误,位置过高或超出屏幕 - 滚动页面时菜单不会自动关闭,与卡片分离 **解决方案**: 1. **DataTable 组件 - 移动端卡片视图** - 在 < 768px 时自动切换到卡片布局 - 每个表格行渲染为独立卡片,所有字段清晰可见 - 操作按钮在卡片底部,触摸目标足够大 - 支持深色模式,包含加载和空状态 - 自动应用于所有使用 DataTable 的管理页面 2. **UsersView 顶部操作栏优化** - 移动端:搜索框全宽 + 次要按钮显示为图标 + 创建按钮突出 - 桌面端:保持原有布局(图标 + 文字) - 使用响应式 Tailwind classes 3. **UserCreateModal 弹窗优化** - 余额/并发数字段:移动端单列,桌面端双列 - 弹窗边距:移动端 8px,桌面端 16px 4. **操作菜单定位修复** - UsersView: 移动端菜单居中对齐按钮,智能定位 - AccountsView: 移动端菜单优先显示在按钮下方 - 所有情况下确保菜单不超出屏幕边界 - 添加滚动监听,滚动时自动关闭菜单 **影响范围**: - 所有使用 DataTable 的管理页面(8 个页面)自动获得移动端卡片视图 - 用户管理和账号管理页面的操作菜单定位优化 - 创建用户弹窗的响应式布局优化 **技术要点**: - 使用 Tailwind 响应式断点(md:, sm:) - 触摸目标 ≥ 44px - 完整支持深色模式 - 向后兼容,桌面端保持原有布局
-
- 14 Jan, 2026 1 commit
-
-
墨颜 authored
- 新增 accounts.rate_multiplier(默认 1.0,允许 0) - 使用 usage_logs.account_rate_multiplier 记录倍率快照,避免历史回算 - 统计/导出/管理端展示账号口径费用(total_cost * account_rate_multiplier)
-
- 12 Jan, 2026 1 commit
-
-
shaw authored
- 新增 AccountGroupsCell 组件优化分组列显示(最多4个+折叠) - 修复 Cookie 自动授权时 group_ids/notes/expires_at 字段丢失 - 修复 SettingsView 流超时配置前后端字段不一致问题
-
- 11 Jan, 2026 1 commit
-
-
yangjianbo authored
补充批量调度返回 success_ids/failed_ids 并增加合约/单测 前端加入降级处理与部分失败提示,表格行使用稳定 key 测试: make test-frontend 测试: go test ./internal/service -run BulkUpdateAccounts -tags=unit 测试: go test ./internal/server -run APIContracts -tags=unit
-
- 09 Jan, 2026 3 commits
-
-
IanShaw027 authored
- 后端:支持批量更新账号的 schedulable 字段 - 在 BulkUpdateAccountsRequest 中添加 schedulable 参数 - 在 AccountBulkUpdate 中添加 schedulable 字段支持 - 更新 repository 层批量更新 SQL 逻辑 - 前端:在账号管理页面添加批量调度控制 - 新增"批量启用调度"和"批量停止调度"按钮 - 添加 handleBulkToggleSchedulable 处理函数 - 显示具体的成功提示信息(包含操作账号数量) - 国际化:添加批量调度相关中英文翻译 - 优化:添加 search 参数标准化和验证(account_handler)
-
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 测试:✓ 前端构建测试通过
-
- 07 Jan, 2026 1 commit
-
-
LLLLLLiulei authored
-
- 06 Jan, 2026 2 commits
-
-
yangjianbo authored
添加 @update:filters 事件监听,使过滤器参数能正确同步到数据请求中。 修复了平台、类型、状态三个过滤器全部失效的问题。
🤖 Generated with [Claude Code](https://claude.com/claude-code ) Co-Authored-By:Claude Sonnet 4.5 <noreply@anthropic.com>
-
yangjianbo authored
- 修复 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>
-
- 05 Jan, 2026 4 commits
-
-
IanShaw027 authored
将 handleToggleSchedulable 从 PUT update() 改为 POST setSchedulable(), 后端 PUT 接口不处理 schedulable 字段,导致切换无效。
-
LLLLLLiulei authored
-
ianshaw authored
- 筛选组件保持固定宽度,不再自动拉伸填充 - 左右分布布局,中间自然留空 - 修复 IP 管理页面表头缺失的中文翻译
-
ianshaw authored
- AccountTableFilters: 添加 Antigravity 平台选项、类型筛选器、inactive 状态 - AccountActionMenu: 恢复重置状态和清除限速按钮,添加 dark mode 样式 - AccountsView: 修正 handleClearRateLimit 调用正确的 API
-
- 04 Jan, 2026 4 commits
-
-
IanShaw027 authored
## 修复内容 ### 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 类型检查通过 -✅ 所有页面布局统一 -✅ 响应式布局正常工作 -
IanShaw027 authored
## 修复内容 ### 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 -
IanShaw027 authored
- 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.
-
IanShaw027 authored
- 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.
-