AAEE86
11989e278e
fix(lint): 修正 defineProps 位置并格式化用户批量组件
...
- UserBatchResultSummary.vue: 将 defineProps 移到 <script setup> 首部,
满足 vue/define-macros-order 规则,修复 CI eslint 失败
- 自动修复 vue/max-attributes-per-line 与
vue/singleline-html-element-content-newline 格式警告
2026-09-29 10:58:40 +08:00
RWDai
bc0e9f94e2
fix(admin): serialize wallet batches across tabs
2026-09-28 18:51:14 +08:00
RWDai
bcd121d447
fix(admin): make bulk wallet batches idempotent
2026-09-23 19:43:18 +08:00
RWDai
30bb0c3130
fix: harden bulk wallet balance adjustment
2026-09-23 16:29:47 +08:00
RWDai
e25e240d16
feat(admin): batch adjust user wallet balances
2026-09-23 11:30:33 +08:00
elky
a90d564931
fix: restore security hardening compatibility and validation
...
Restore authorized rule reveal, explicit full HTTP capture and retention, video task business fields, and valid payment URLs. Add opt-in credential preservation for trusted recovery, fix frontend type contracts and async races, and eliminate PostgreSQL test fixture resource leaks. Document audit coverage and successful fmt and CI-scoped Clippy checks.
2026-09-07 21:14:27 +08:00
elky
579f2c7cc1
feat(security): harden gateway boundaries and usage policies
...
Consolidate subscription usage policy enforcement, privacy-safe persistence, and gateway security hardening into one reviewable change.
Includes bounded HTTP and execution envelopes, header and protocol guards, DNS and relay validation, authentication and secret projection hardening, secure backup/install paths, and regression coverage.
2026-09-04 03:45:52 +08:00
ZheFox
144a28f544
feat(admin-users): add plan entitlement revocation flow
2026-09-02 11:23:24 +08:00
elky
664c063a06
feat(usage): enrich audit metadata and detail views
2026-07-17 19:20:16 +08:00
ZheFox
1333efdad5
fix(frontend): 优化移动端弹窗并完善提供商配额刷新
2026-07-16 15:21:11 +08:00
MMEXA
242081433e
修复前端调试与基础交互问题
2026-07-04 05:24:40 +08:00
elky
9f138d09e6
refactor(frontend): modularize i18n architecture
2026-06-30 17:01:39 +08:00
fawney19
504c1ccb37
feat: restructure notification services
2026-05-22 01:45:46 +08:00
RWDai
d33043288d
fix(frontend): clarify user group policy help
2026-05-21 15:38:53 +08:00
RWDai
3e12c06627
Fix user group options cache busting
2026-05-20 17:51:29 +08:00
RWDai
74a3df3f1e
Fix user group options cache invalidation
2026-05-20 17:46:16 +08:00
RWDai
e80e7b0cfa
Fix admin users pagination review issues
2026-05-20 17:41:06 +08:00
RWDai
77051e6245
Fix admin users pagination follow-ups
2026-05-20 17:32:47 +08:00
RWDai
9c59c0e1a2
Add audit role to user management UI
2026-05-14 13:39:57 +08:00
fawney19
509bd30252
Redesign sensitive info protection settings
2026-05-14 11:14:20 +08:00
fawney19
9bed5e9f83
fix: use intersection for user group policies
2026-05-11 17:00:07 +08:00
fawney19
d246f6b42c
fix: align user group access controls
2026-05-10 17:28:23 +08:00
Entropy.Xu
3a814f3d1f
feat: add user groups and inherited access policies
2026-05-09 21:47:33 +08:00
RWDai
fcefa4d198
feat(users): refine batch action dialog
2026-05-07 22:22:55 +08:00
RWDai
b7172092e8
feat(users): add batch action dialog
2026-05-07 19:16:49 +08:00
RWDai
8fa90e8ecf
refactor(users): share access control options
2026-05-07 19:16:49 +08:00
fawney19
fa47e8a3c0
feat: add select all to access limit dropdowns
2026-04-30 00:45:53 +08:00
fawney19
f573110725
fix(frontend): 用 CSS text-security 替代 password 输入框,简化配额进度条 UI
...
- Input 组件 masked 模式改用 WebkitTextSecurity: disc 替代 type=password,
避免浏览器密码管理器自动填充干扰
- LoginDialog/UserFormDialog/Settings/ProxyNodes 密码字段统一迁移到 masked 属性
- PoolManagement 配额进度条布局从 grid 改为 flex,移除未使用的
getQuotaProgressDisplayClass/getQuotaProgressTooltip 函数
Close #249
Co-authored-by: AAEE86 <[email protected] >
2026-03-19 20:04:56 +08:00
fawney19 and LewisPen
f92b0943b5
feat(rate-limit): 实现分层 RPM 限速,支持系统默认/用户/独立Key三级配置
...
- 新增用户级 rate_limit 字段,支持系统默认/用户自定义/不限制三种模式
- 独立 Key 的 rate_limit 语义调整:null=跟随系统默认,0=不限制,>0=自定义
- 实现 UserRpmLimiter 基于 Redis sliding window 的 RPM 限速引擎
- Pipeline 请求流程集成用户级 RPM 检查
- 管理后台和用户面板新增 RPM 限速配置与实时状态查看
- 系统设置新增全局默认 RPM 配置项
- 迁移脚本回填现有 API Key 的 rate_limit 默认值
- 新增用户/Key RPM 状态监控 API 和前端展示
Closes #231
Co-authored-by: LewisPen <[email protected] >
2026-03-15 14:22:59 +08:00
fawney19 and AAEE86
bdfe4adc98
feat(usage): 修复缓存命中率计算并新增用户端 API 格式统计
...
- 新增 input_context_expr() 按 api_format 区分 input_tokens 语义
(OpenAI/Gemini input_tokens 已含 cache_read,Claude 需额外加上)
- 缓存命中率统一改为基于归一化后的 total_input_context 计算
- 用户 /me/usage 接口新增 summary_by_api_format 后端聚合字段
- 前端 API 格式统计改用后端聚合数据,移除前端逐条记录手动统计
- 提取 formatHitRate 到 utils/format.ts 消除三处重复定义
- 移除 PoolManager 中未使用的 select_key 方法
Co-Authored-By: AAEE86 <[email protected] >
2026-03-14 00:33:19 +08:00
fawney19
66fec80e79
fix(frontend): 修复用户表单密码框无法输入及编辑模式额度框不显示
...
- 密码框: masked 属性改为始终开启,避免聚焦时 DOM 重建导致焦点丢失
- 额度框: 编辑模式下 unlimited=false 时显示"按钱包余额限制"而非空白
2026-03-12 13:31:43 +08:00
fawney19
8b49a3d264
fix(frontend): 优化用户表单密码输入框,使用 masked 和 disable-autofill 属性简化实现
2026-03-12 01:46:41 +08:00
fawney19
6e51a3f45d
feat: Provider 异步删除、可配置密码策略、Hub 超时优化及多项改进
...
- 新增 Provider 异步删除任务系统,后台分阶段删除子资源并清理残留引用
- 新增可配置密码策略等级(weak/medium/strong),支持系统设置面板调整
- aether-hub 升级至 0.1.4,idle timeout 支持禁用(设为 0),worker 默认超时调整为 120s
- OAuth 手动续期增加 Redis 分布式锁,防止并发刷新冲突
- ProxyNode 心跳检测改为 asyncio.to_thread,避免阻塞事件循环
- 删除 ModelMultiSelect 和 useInvalidModels,MultiSelect 组件通用化
- 明确 allowed_providers/allowed_api_formats 的 NULL 与空数组语义
- 前端 StandaloneKeyFormDialog、UserFormDialog 等多处 UI 优化
- 新增 Alembic 迁移脚本清理 Provider 删除后的残留引用
- 补充相关测试用例
2026-03-12 01:11:35 +08:00
fawney19 and AoaoMH
46bab1b97f
feat: 为下拉选择组件添加搜索过滤功能,支持拼音匹配
...
- 新增 search.ts 搜索工具,支持中文拼音(全拼/首字母)模糊匹配
- 新增 select-search-context.ts,通过 provide/inject 为 radix-vue Select 组件注入搜索能力
- MultiSelect、ModelMultiSelect 组件集成搜索框,选项超过阈值时自动显示
- select-content/select-item 组件支持搜索过滤与空状态提示
- StandaloneKeyFormDialog、UserFormDialog 中手写下拉框替换为复用 MultiSelect 组件
- 引入 pinyin-pro 依赖,按需懒加载
Closes #210
Co-authored-by: AoaoMH <[email protected] >
2026-03-09 19:53:54 +08:00
fawney19
0046123e22
feat: Provider 摘要 API 改为服务端分页,支持搜索和筛选
...
- 后端 /summary 接口新增 page/page_size/search/status/api_format/model_id 参数
- 新增 ProviderSummaryPageResponse 分页响应模型
- 前端 useProviderFilters 从客户端筛选改为构建服务端查询参数
- ProviderManagement 通过 watch queryParams 实现分页/筛选联动,搜索 debounce 300ms
- PriorityManagementDialog 改为对话框打开时自行加载全量 providers
- 其他使用方(StandaloneKeyFormDialog/UserFormDialog/ReplayDialog/ModelManagement)适配新接口
2026-03-09 12:45:54 +08:00
LewisPen
783f654953
feat(wallet): 钱包系统替代配额系统,新增支付与退款机制
...
- 新增钱包余额管理、充值、扣费、退款完整流程
- 新增支付网关抽象层(支持手动/支付宝/微信)
- 用量计费从配额系统迁移到钱包余额扣费
- 新增管理员钱包管理与支付订单管理页面
- 新增用户钱包中心页面
- 移除独立 Key 锁定机制,统一由钱包余额控制
- 新增相关 API 路由、序列化器与数据库迁移
- 新增钱包、支付、退款相关测试
2026-03-08 00:05:48 +08:00
fawney19 and AAEE86
b34dd12863
feat: 新增 Kiro 适配器、OAuth 改进与多项功能增强
...
- 新增 Kiro provider 适配器(EventStream 协议解析、令牌管理、用量追踪)
- 重构 OAuth 账户管理与统一配额机制
- 重构 Handler 基类(CLI adapter/handler、请求构建器、流处理器)
- 增强缓存监控后端 API 与前端可视化
- 改进 Gemini 格式标准化器与请求头处理
- Antigravity/Codex 适配器更新,移除旧 metadata_collector
- 新增数据库迁移:proxy provider API keys
- 前端 UI 多项优化
Co-Authored-By: AAEE86 <[email protected] >
2026-02-09 01:05:48 +08:00
fawney19
b88fb6273b
refactor: Antigravity/Codex 服务重构为插件化适配器架构
...
- 将 Antigravity 和 Codex 从独立模块迁移至 src/services/provider/adapters/ 插件体系
- 新增 provider_types 和 oauth_token 模块,移除 maintenance_scheduler 中的 OAuth 定时刷新
- 增强 admin API:扩展 keys 和 provider_query 端点,新增 dashboard 路由
- 大幅增强 ProviderDetailDrawer 组件,新增 AntigravityQuotaDialog
- 改进 handler 基类(chat/cli)和错误分类器
- 优化 fetch_scheduler 和 upstream_fetcher
- 前端 UI 组件清理和优化
- 更新测试以匹配新模块结构
2026-02-06 16:37:06 +08:00
fawney19
1e0255d0ed
feat: 优化批量余额查询和用户模型权限检查
...
- 添加批量余额查询并发限制,避免数据库连接池耗尽
- 支持余额加载 pending 状态和前端自动重试机制
- 添加用户可用模型 API,统一使用 AccessRestrictions
- 修复用户表单编辑时数组引用共享导致的数据覆盖问题
- 添加数据库连接池配置说明到 .env.example
2026-01-28 01:01:05 +08:00
LewisPen
9fefa94134
feat: 用户名验证支持点号,统一错误消息,完善前端验证
...
- 后端正则改为 ^[a-zA-Z0-9_.\-]+$ 支持点号
- 统一错误消息使用"连字符"
- 前端 UserFormDialog 和 RegisterDialog 添加实时验证
- 输入框显示格式提示和错误信息
2026-01-27 12:17:19 +08:00
fawney19
3d88dfd98a
feat: 添加 OAuth 认证支持及相关改进
...
- 新增 OAuth 模块,支持 LinuxDo/GitHub/Google 等第三方登录
- 用户邮箱改为可选字段,支持无邮箱注册
- 新增模块配置验证状态 (config_validated/config_error)
- 系统设置界面改为分块独立保存
- 用户设置新增 OAuth 绑定管理和首次密码设置
- 登录界面支持 OAuth 按钮展示
- 邮箱验证设置移至邮件设置页面
2026-01-19 03:19:17 +08:00
fawney19
81b7b74fd4
refactor: 简化优先级拖拽交换逻辑并优化用户配额处理
...
- 优先级拖拽改为直接交换优先级值,而非重新编号
- 添加 Provider 优先级的点击编辑功能
- 创建用户时由后端统一处理默认配额逻辑
- 移除前端 getDefaultQuota API 调用和后端对应端点
Close #97
2026-01-15 18:59:01 +08:00
fawney19
d9645fa062
feat: 用户创建和注册时使用系统配置的默认配额
...
- 新增 /api/admin/users/defaults/quota 接口获取默认配额
- 用户注册时从系统配置读取默认配额
- 管理员创建用户时自动获取并使用系统默认配额
2026-01-15 17:41:04 +08:00
fawney19
09e0f594ff
refactor: 重构限流系统和健康监控,支持按 API 格式区分
...
- 将 adaptive_concurrency 重命名为 adaptive_rpm,从并发控制改为 RPM 控制
- 健康监控器支持按 API 格式独立管理健康度和熔断器状态
- 新增 model_permissions 模块,支持按格式配置允许的模型
- 重构前端提供商相关表单组件,新增 Collapsible UI 组件
- 新增数据库迁移脚本支持新的数据结构
2026-01-10 18:48:35 +08:00
fawney19
a12b43ce5c
refactor: 清理数据库字段命名歧义
...
- users 表:重命名 allowed_endpoints 为 allowed_api_formats(修正历史命名错误)
- api_keys 表:删除 allowed_endpoints 字段(未使用的功能)
- providers 表:删除 rate_limit 字段(与 rpm_limit 重复)
- usage 表:重命名 provider 为 provider_name(避免与 provider_id 外键混淆)
同步更新前后端所有相关代码
2026-01-07 19:53:32 +08:00
fawney19
689339117a
refactor: 提取 ModelMultiSelect 组件并支持失效模型检测
...
- 新增 ModelMultiSelect 组件,支持显示和移除已失效的模型
- 新增 useInvalidModels composable 检测 allowed_models 中的无效引用
- 重构 StandaloneKeyFormDialog 和 UserFormDialog 使用新组件
- 补充 GlobalModel 删除逻辑的设计说明注释
2026-01-05 01:20:58 +08:00
fawney19
7d6d262ed3
feat: 增加用户密码修改时的确认验证
...
在编辑用户时,如果填写了新密码,需要进行密码确认,确保两次输入一致。
同时更新后端请求模型以支持密码字段。
2025-12-28 20:00:25 +08:00
fawney19
113441780e
refactor(frontend): 优化 Users 功能模块
...
- 改进 UserFormDialog 组件
2025-12-14 00:16:02 +08:00
fawney19
06c0a47b21
refactor(frontend): 优化功能模块组件
...
- 更新 api-keys 模块: StandaloneKeyFormDialog
- 改进 auth 模块: LoginDialog
- 优化 models 模块: AliasDialog, GlobalModelFormDialog, ModelDetailDrawer, TieredPricingEditor
- 重构 providers 模块: 多个表单和对话框组件
- 更新 usage 模块: 时间线、表格和详情组件
- 调整 users 模块: UserFormDialog
2025-12-12 16:15:36 +08:00
fawney19
f784106826
Initial commit
2025-12-10 20:52:44 +08:00