AAEE86
cabaa9f1df
refactor(frontend): 统一 routing 数据加载,消除子组件重复请求
...
将 Model 和 Provider 详情抽屉中的 routing/mapping 数据加载逻辑
从各子组件(RoutingTab、ModelMappingsTab、ModelsTab、ModelMappingTab)
提升到父组件统一管理,通过 props 向下传递数据,避免多个子组件独立发起相同的 API 请求,提升页面加载性能。
2026-02-10 23:47:47 +08:00
AAEE86
347bd3345c
feat: Codex/Kiro 配额自动刷新增加 5 分钟过期检查
...
- Codex: 新增 Token 即将过期检查 + 配额数据过期检查
- Kiro: 新增配额数据过期检查
- 三个 OAuth Provider 的自动刷新逻辑现在完全一致
2026-02-10 21:12:31 +08:00
fawney19 and AAEE86
8949ad6d9e
feat: 动态 block 索引分配、OAuth 自动启停联动与 Antigravity 签名注入增强
...
- Gemini/OpenAI normalizer 改为按实际出现顺序延迟分配 thinking/text block 索引
- OAuth 失效标记时自动停用 Key,清除/刷新成功时自动启用
- Antigravity thought signature 注入支持 tool-specific 签名优先,再回退 session 级签名
- Claude normalizer 对非字符串 thinking block 降级为 UnknownBlock
- Gemini normalizer 反序列化时为 Antigravity 目标补充 signature
- signature_cache _prune 增加超限驱逐
- model/provider 包 __init__ 改为惰性导入避免循环依赖
- build_antigravity_url 复制 query_params 防止修改调用方原始字典
- upstream_fetcher build_all_format_configs 兼容非 EndpointFetchConfig 对象
- Antigravity HTTP 状态判定扩展与 Gemini endpoint check 支持 v1internal
- 新增 thought signature 注入与 signature cache 驱逐测试
Closes #165
Co-authored-by: AAEE86 <[email protected] >
2026-02-10 17:53:04 +08:00
fawney19
853c489471
refactor: 优化智能分页检测和密钥复制交互
...
- 智能分页统一使用防抖检测避免与 ResizeObserver 双重触发
- 密钥名称仅在非空时启用复制功能
- 移除 API Key 不必要的危险字符校验
2026-02-09 19:05:29 +08:00
AAEE86
8e120e2665
refactor: 优化智能分页 DOM 检测机制并添加密钥名称复制功能
...
- useSmartPagination 使用 ResizeObserver 替代 nextTick 确保 DOM 稳定后检测
- 添加防抖机制避免频繁触发检测
- 组件卸载时清理 ResizeObserver 资源
- ProviderDetailDrawer 密钥名称支持点击复制
2026-02-09 19:01:14 +08:00
fawney19 and AAEE86
b14fb31933
feat: 新增 Antigravity/Kiro 账户禁用封禁状态监控与展示
...
- 前端:为 Antigravity 和 Kiro 上游元数据添加禁用/封禁状态字段
- 前端:在密钥详情抽屉中展示账户禁用/封禁警告信息,合并重复的时间格式化函数
- 后端:优化 Antigravity 和 Kiro 适配器的状态检测与上报逻辑
Co-authored-by: AAEE86 <[email protected] >
Closes #158
2026-02-09 17:24:48 +08:00
fawney19
0da34f729e
refactor: 优化提供商管理界面交互与术语,增强 OAuth 编辑体验
...
- 模型映射对话框统一术语为"客户端模型/提供商模型",修复编辑时已有映射不可见的问题
- 密钥表单包含/排除规则改为双列布局
- OAuth 密钥编辑对话框增加 dirty 状态跟踪,关闭时提示未保存更改
- 调整密钥操作按钮顺序,代理节点配置移至编辑按钮前
- preset_models.py 添加 ModelsFetcherFunc 类型别名
2026-02-09 13:24:42 +08:00
AAEE86
ea5509f864
feat: 新增 OAuth 密钥专用编辑对话框 & 统一预设模型管理
...
- 新增 OAuthKeyEditDialog 组件,支持编辑 OAuth 账号的名称、备注、优先级、RPM 限制、缓存 TTL、熔断探测等配置
- OAuth 账号现在也支持自动获取模型功能,包含模型过滤规则配置
- 移除 OAuth 密钥编辑/权限按钮的 v-if 限制,统一操作入口
- 新增 preset_models.py 模块,统一管理 Kiro/Codex 等无 /v1/models 端点的预设模型
- 重构 Kiro 和 Codex 插件,改用统一的 create_preset_models_fetcher 工厂函数
2026-02-09 12:44:32 +08:00
fawney19
a1c5aa4e04
Merge pull request #155 from AAEE86/master
...
feat: 删除 getKeyDisplayName 前端统一使用 key.name 显示
2026-02-09 03:06:26 +08:00
AAEE86
d2f2d7f92d
feat: 删除 getKeyDisplayName 前端统一使用 key.name 显示
2026-02-09 03:02:36 +08:00
fawney19
cfa768eebd
feat: 请求体规则扩展(append/insert/regex_replace)、OAuth 代理节点支持与列表分页
...
- 请求体规则新增 append、insert、regex_replace 三种操作,路径语法支持数组索引
- OAuth 授权/导入/批量导入支持指定代理节点(proxy_node_id),Key 级代理避免 IP 污染
- 密钥列表、模型映射、模型列表添加智能分页(useSmartPagination)
- AdvancedGuide 新增请求体规则使用指南与示例
- 简化 Codex enrich_codex 实现,README 添加 QQ 群二维码
2026-02-09 02:56:21 +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
18d0af3dbf
feat: 格式转换支持三层开关控制(全局/Provider/端点)
...
- _get_convertible_formats 始终返回所有可转换格式,由下游精确过滤
- get_compatible_provider_formats 增加 Provider 级别 enable_format_conversion 判断
- Provider 设置更新后自动失效相关缓存(模型列表、解析缓存、Provider 缓存)
- 前端 toggleFormatConversion 使用接口返回的完整对象更新本地状态
2026-02-06 23:01:56 +08:00
fawney19
8b6a5d3824
feat: OAuth 导入导出、提供商筛选、Gemini 图像生成支持与流式处理增强
...
- OAuth: 支持通过 Refresh Token 导入账号(文件拖拽/粘贴),OAuth Key 可导出为 JSON
- OAuth: 所有 OAuth 端点添加 require_admin 鉴权
- 提供商管理: 新增状态/API格式/模型三级筛选,后端返回 global_model_ids
- Gemini: 新增图像生成模型适配(finalize_provider_request 钩子 + envelope 跳过不兼容字段)
- 流式处理: buffer 残留数据 flush 与 token 兜底估算
- 上游元数据: 提取 merge_upstream_metadata,配额耗尽模型保留与深度合并
- Antigravity 配额: 无 quotaInfo 时视为耗尽,移除 Other 兜底分组
- README: 新增升级备份与回滚指南
2026-02-06 21:52:22 +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
a9b24c9161
fix: Codex 刷新限额功能优化
...
- 修复并发协程中直接操作 SQLAlchemy Session 的问题,改为收集后统一更新
- 抽取硬编码模型名为 CODEX_QUOTA_REFRESH_MODEL 常量
- 前端刷新限额前添加确认对话框,提示会产生 API 调用费用
- 修正 loguru 日志格式为 {} 占位符风格
2026-02-05 18:09:40 +08:00
AAEE86
93090e227f
feat: Codex 提供商批量刷新限额功能 ( #147 )
...
- 后端 (keys.py):新增 POST /providers/{provider_id}/refresh-quota API,向 Codex 提供商的所有活跃 Key 发送测试请求,从响应头解析限额信息并更新数据库
- 前端 (ProviderDetailDrawer.vue):在 Codex 类型提供商的密钥管理区域添加"刷新限额"按钮,带加载动画和结果提示
- 前端 API (keys.ts):新增 refreshProviderQuota 接口调用及 RefreshQuotaResult 类型定义
- 其他:description 字段允许 null,公开 ensure_collectors_registered 函数
2026-02-05 18:09:14 +08:00
fawney19
9c19a72d67
refactor: 移除 KeyFormDialog 中的 OAuth 认证逻辑
...
OAuth 流程已由独立的 OAuthAccountDialog 处理,移除 KeyFormDialog 中冗余的
OAuth 表单、授权流程 UI 和状态管理代码。同时清理 provider_oauth.ts 中不再
使用的接口和函数,修复 ProviderOAuthCompleteRequest 重复声明问题。
2026-02-05 02:56:33 +08:00
fawney19
d9d3a1afcf
feat: 提供商详情头部布局优化及行内描述编辑
...
- 重构详情抽屉头部:网站链接改为图标按钮,布局更紧凑
- 新增行内描述编辑功能,支持点击编辑、回车保存、Esc 取消
- 表单对话框移除描述字段,名称字段改为独占一行
- 修复次级限额重置时间的缩进问题
2026-02-05 02:23:41 +08:00
fawney19
4d6e7c094f
feat: OAuth 账户管理、维护调度、端点健康检查增强及前端优化
...
- 新增 OAuth 账户管理对话框和提供商详情抽屉中的 OAuth 信息展示
- 新增维护调度器(maintenance_scheduler)支持定时清理和健康检查
- 增强端点健康检查器,支持更多检测策略
- 重构 codex 服务为 metadata_collectors 模块
- 优化 OpenAI CLI normalizer 代码结构
- 前端: 改进使用量表格、统计图表、指南页面和异步任务管理
- 扩展多个数据库字符串列为 TEXT 类型
- 新增倒计时 composable 和 provider OAuth API 端点
2026-02-04 23:59:45 +08:00
AAEE86
e4fdc65e52
feat: 支持固定类型 Provider OAuth 授权
...
- 新增 provider_type 字段区分自定义/预置 Provider 类型(claude_code/codex/gemini_cli/antigravity)
- 实现完整 OAuth 2.0 授权流程:start(生成授权 URL + PKCE)、complete(换取 token)、refresh
- 前端 KeyFormDialog 添加 OAuth 授权 UI,支持开始授权、粘贴回调 URL、完成授权、强制刷新
- 请求时自动检测 token 过期并刷新(120s 预留窗口 + Redis 分布式锁防并发)
- 固定类型 Provider 自动创建预置端点并锁定 base_url/custom_path
- 数据库迁移:添加 providers.provider_type,扩展 api_key 列为 TEXT
- 可选依赖 tls-client 用于 Claude token 请求的 TLS 指纹伪装
2026-02-04 10:24:25 +08:00
fawney19
f3e2f84b38
feat: 统计数据优化 - 支持细粒度时间范围和多维度分析
...
- 新增 StatsHourly/StatsDaily 预聚合表,支持任意时区的精确统计
- 实现 UTC datetime 范围查询策略,边界数据实时聚合
- 新增统计 API:用户/API Key 维度、成本分析、性能百分位、错误分类
- 新增前端页面:成本分析、性能分析、用户统计
- 新增 TimeRangePicker 组件和统计可视化组件
- 优化 Dashboard 和 Usage 页面支持时间范围筛选
Close #135
2026-02-04 02:04:54 +08:00
fawney19
9e31efe26c
refactor: 重构异步任务系统和计费服务架构
...
- 重构任务系统:新增 lifecycle (TaskStatus/BillingStatus)、context、application 模块
- 将 video tasks 泛化为 async tasks,支持更通用的异步任务管理
- 新增 Gemini Files 管理模块和管理界面
- 重构 billing 服务:拆分 schema.py 和 service.py
- 新增 candidate 服务模块用于请求候选管理
- 数据库迁移:添加 billing_status、request_id、gemini_file_mappings 表和索引
- 移除废弃的 video_telemetry、task orchestrator 等模块
2026-02-02 03:16:52 +08:00
fawney19
32b293ef3e
feat: add Vertex AI authentication support for provider API keys
...
- Add auth_type field to ProviderAPIKey model (api_key or vertex_ai)
- Implement Vertex AI OAuth token generation with service account
- Update transport layer to handle Vertex AI authentication
- Add Vertex AI endpoint URL generation in request builder
- Update frontend KeyFormDialog to support auth_type selection
- Add migration for auth_type column in provider_api_keys table
2026-01-30 02:43:50 +08:00
fawney19
5e81a0b581
refactor: 移除 ModelsTab 单个删除按钮,简化表格样式
...
Close #119
2026-01-28 13:17:50 +08:00
LewisPen
3ee3aa4035
style: 统一模型映射对话框样式与批量管理模型对话框一致
...
- 搜索栏移到边框外,高度统一为 h-9
- 徽章高度改为 h-7,圆角改为 rounded-md
- 分组标题样式统一为 px-3 py-2 bg-muted
- 添加刷新按钮,未加载时显示闪电图标,已加载时显示刷新图标
- 仅在有 key 配置了自动获取时才自动请求上游模型
2026-01-23 12:50:25 +08:00
fawney19
7ef0488419
refactor: 完善拖拽排序逻辑并新增格式转换开关
...
- 修复 PriorityManagementDialog 中 provider 和 key 的拖拽排序逻辑
- 修复 ProviderDetailDrawer 中 key 的拖拽排序逻辑
- 被拖动项单独成组,其他同组项保持在一起
- 在系统设置中新增"启用格式自动转换"配置项
2026-01-23 00:07:07 +08:00
fawney19
6c7b40764f
refactor: 重构优先级拖拽排序逻辑,支持整组移动与归一化
...
- 将拖拽逻辑从简单的两项交换改为整组移动并重新归一化优先级值
- 修复对话框内容区域高度限制(min-h 改为 max-h)
- 优化 API 调用,只更新实际发生变化的 key
2026-01-22 20:54:19 +08:00
fawney19
24ef24558c
refactor: 优化端点管理表单和上游模型获取逻辑
...
- 端点表单布局优化,支持 provider website 作为默认 Base URL
- 模型路由始终显示 provider_model_name
- 无端点时显示添加按钮
- 上游模型获取只针对基础 API 格式,跳过 CLI 格式
2026-01-20 01:32:47 +08:00
fawney19
b98fc8497f
feat: 自适应 RPM 未学习时不限制,改为碰壁学习策略
...
- 移除自适应模式的默认初始限制(RPMDefaults.INITIAL_LIMIT)
- 未学习到边界前不限制 RPM,让系统自由运行直到遇到 429
- 前端自适应 Key 显示学习到的值或"探测中"状态
- 批量余额查询改为并行执行,提升性能
2026-01-17 23:44:53 +08:00
fawney19 and AAEE86
f002f8de03
feat: Key 删除时自动解除不再匹配的 GlobalModel 关联
...
- 新增 auto_disassociate_provider_by_key_whitelist 方法检测并解除关联
- 删除 Key 后检查 Provider 剩余 Key 白名单,移除不再匹配的 Model
- 前端删除密钥后并行刷新端点列表、模型列表和模型映射
Closes #102
Co-authored-by: AAEE86 <[email protected] >
2026-01-17 22:05:09 +08:00
fawney19
d5d74339dd
refactor: 将 global_priority 和 rate_multiplier 改为按 API 格式配置
...
- 新增 global_priority_by_format 字段,支持按 API 格式设置全局优先级
- 移除已废弃的 rate_multiplier 字段,统一使用 rate_multipliers
- 移除已废弃的 timeout 字段(providers 和 provider_endpoints 表)
- 更新调度器以支持按格式的优先级排序
- 同步更新前后端类型定义和 API 接口
- 添加数据库迁移脚本,自动迁移现有数据
2026-01-16 17:53:27 +08:00
fawney19
81b7b74fd4
refactor: 简化优先级拖拽交换逻辑并优化用户配额处理
...
- 优先级拖拽改为直接交换优先级值,而非重新编号
- 添加 Provider 优先级的点击编辑功能
- 创建用户时由后端统一处理默认配额逻辑
- 移除前端 getDefaultQuota API 调用和后端对应端点
Close #97
2026-01-15 18:59:01 +08:00
fawney19
026f4b9c0e
fix: 修复模型测试时正则映射支持及缓存装饰器实例方法兼容
...
- ModelsTab 加载时并行获取模型映射预览数据
- 测试模型时自动识别正则映射并使用映射名称和指定 key
- 密钥变更后并行刷新模型列表和模型映射
- 修复 cache_decorator 对实例方法的 context 参数解析
2026-01-15 17:26:52 +08:00
fawney19
a223819dd7
refactor: 提取正则工具模块并清理废弃代码
...
前端:
- 新增 model-mapping-regex.ts 工具模块,统一正则验证和 LRU 缓存
- ModelMappingsTab/RoutingTab 重构为使用 computed 缓存匹配结果
- 移除多个组件中未使用的变量和函数
- 添加 HTMLImageElement/HTMLIFrameElement 到 ESLint 全局类型
- 修复 vitest 需要 --experimental-require-module 的问题
后端:
- 移除废弃的异步数据库支持 (get_async_db, AsyncSession)
- 将 async_utils 从 database/ 迁移到 utils/
- 改进 database.py 类型标注
- 修复 email 模块的 aiosmtplib 可选导入类型问题
2026-01-15 17:03:19 +08:00
fawney19
0348b7d915
refactor: 废弃 rate_multiplier 字段,改进成本倍率回退逻辑
...
- 在前后端模型中为 rate_multiplier 添加 @deprecated 标记
- 修复 rate_multipliers 回退逻辑:当 rate_multipliers 存在但未配置当前格式时使用 1.0
- ModelMappingsTab: 删除映射后自动保存,简化空状态提示
- ModelManagement: 添加 refreshModel 事件在映射更新后刷新模型数据
- CacheAwareScheduler: 添加映射匹配调试日志,移除 candidate_models 限制
2026-01-14 21:07:28 +08:00
fawney19
68737b9ed6
refactor(ui): 重构模型映射功能,简化交互并提取独立组件
...
- ModelMappingDialog: 简化为单栏选择面板布局,移除拖拽排序和优先级编辑
- ProviderDetailDrawer: 移出别名映射预览,使用独立 ModelMappingTab 组件
- 新增 ModelMappingTab 组件: 统一展示精确映射和正则映射,支持连接测试
2026-01-14 14:28:13 +08:00
fawney19
a8813cfb89
feat(keys): 新增密钥自动获取模型功能
...
- 添加 auto_fetch_models 字段支持定时从上游 API 获取可用模型
- 添加 locked_models 字段支持锁定模型,刷新时不会被删除
- 新增 ModelFetchScheduler 调度器定期执行模型获取任务
- 前端 KeyFormDialog 添加自动获取模型开关
- 前端 KeyAllowedModelsEditDialog 支持模型锁定操作
- ProviderDetailDrawer 显示密钥同步状态
- 数据库迁移添加新字段
2026-01-14 13:12:19 +08:00
fawney19
3b194d3c23
fix(ui): 移除未声明的组件 props 和 emits 消除 Vue 警告
...
- ModelManagement: 移除 ModelDetailDrawer 未使用的 providers、loading-providers props 和 refresh-providers 事件
- ProviderDetailDrawer: 移除 BatchAssignModelsDialog 未声明的 provider-identifier prop
- 删除不再使用的 refreshSelectedModelProviders 函数
2026-01-14 00:28:28 +08:00
fawney19 and htmambo
8c4c5fa394
feat(ui): 增加模型连接性测试功能并优化对话框 ESC 键处理
...
- 模型测试: 新增测试按钮,支持多 API 格式选择
- ESC 键: 重构为全局栈管理,支持嵌套对话框
- 修复: check_endpoint 使用 FORMAT_ID 替代 name
- 优化: Redis 连接池添加健康检查
Co-authored-by: htmambo <[email protected] >
2026-01-13 20:11:09 +08:00
AAEE86
5ed3695c48
feat(ui): add inline editing for API key rate multipliers
...
Add click-to-edit functionality for rate multipliers in the provider detail drawer. Users can now click on any multiplier value to edit it inline, with support for keyboard shortcuts (Enter to save, Escape to cancel) and automatic focus management. The changes are immediately saved to the backend and reflected in the UI.
2026-01-13 18:59:53 +08:00
fawney19
1a0a3de2fc
feat(ui): 优化熔断状态显示和健康度格式
...
- 健康度格式统一为 0-1 小数格式(前后端同步)
- 添加熔断倒计时显示,支持实时更新
- 新增 useCountdownTimer composable 用于倒计时逻辑
- 添加 Key 健康恢复功能(按 API 格式恢复)
- 优化 UI 布局:简化链路预览标题、调整 Key 信息为两行显示
- 修复错误处理顺序(先刷新数据再显示成功提示)
- 减少模板中函数重复调用
2026-01-13 18:42:15 +08:00
fawney19
85decd7487
feat: 实现 GlobalModel 别名匹配系统
...
主要更改:
- GlobalModel 支持 model_aliases 配置,允许使用正则表达式定义别名规则
- Provider Key 的 allowed_models 现在可以通过别名规则匹配 GlobalModel
- 新增 ModelAliasesTab 组件用于管理模型别名配置
- Provider 详情页新增别名映射预览功能,展示 Key 白名单与 GlobalModel 别名的匹配关系
- 路由预览 API 返回 Key 的 allowed_models 信息
安全特性:
- 使用 regex 库的原生超时保护(100ms)防止 ReDoS 攻击
- 别名规则数量限制(50 条/模型)和长度限制(200 字符)
- 别名映射预览 API 添加超时保护和结果截断
其他改进:
- GlobalModel 更新/删除时使用行级锁防止并发竞态
- 缓存失效逻辑优化,支持异步清理和正则缓存清空
- 路由 Tab 布局重构,使用 flexbox 替代绝对定位
2026-01-13 16:04:15 +08:00
fawney19
9fea71a70c
feat(ui): 新增模型请求链路预览功能
...
- 添加后端 API 获取 GlobalModel 的请求链路信息 (/api/admin/models/global/{id}/routing)
- 新增 RoutingTab 组件展示模型的请求链路树状结构
- 支持全局 Key 优先和提供商优先两种模式的可视化
- 重构批量模型管理对话框为单列勾选模式
- 修复 errorParser.ts 字符串拼接格式问题
- 若干 Vue 模板格式优化
2026-01-12 23:28:37 +08:00
fawney19
94abab3260
refactor(ui): 重构批量模型管理对话框为单列勾选模式
...
- BatchAssignModelsDialog: 从左右双栏改为单列勾选,支持统一保存
- KeyAllowedModelsEditDialog: 添加分组折叠功能,优化布局
- Dialog: 调整移动端内边距适配
- ProviderDetailDrawer: 密钥列表改为两行显示
- KeyFormDialog: 缩小对话框尺寸
- ModelsTab: 调整表格列宽
2026-01-11 19:33:16 +08:00
fawney19
76ed136228
refactor(ui): 简化模型权限编辑对话框交互
...
- 将模型权限对话框从双栏穿梭框重构为单面板多选模式
- 简化对话框尺寸,优化布局为单列显示避免模型名称截断
- 模型列表移除能力列,新增快捷添加映射按钮
- 支持从模型列表直接跳转到模型映射对话框并预选模型
2026-01-11 02:06:48 +08:00
fawney19
aec0326d40
feat(ui): 密钥管理支持拖拽调整优先级
...
- 添加拖拽手柄和视觉反馈效果
- 拖拽到组内(2+同优先级)时加入该组
- 拖拽到单独密钥时交换优先级
- 同组内拖拽忽略操作
2026-01-11 00:22:21 +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
599b3d4c95
feat: 添加 Provider API Key 查看和复制功能
...
- 后端添加 GET /api/admin/endpoints/keys/{key_id}/reveal 接口
- 前端密钥列表添加眼睛按钮(显示/隐藏完整密钥)和复制按钮
- 关闭抽屉时自动清除已显示的密钥(安全考虑)
Fixes #53
2025-12-29 17:14:26 +08:00
fawney19
b5c0f85dca
refactor: 统一剪贴板复制功能到 useClipboard 组合式函数
...
将各个组件和视图中重复的剪贴板复制逻辑提取到 useClipboard 组合式函数。
增加 showToast 参数支持静默复制,减少代码重复,提高维护性。
2025-12-28 20:41:52 +08:00