Skip to content

Releases: Townrain/API-Key-Manager

v5.0.3

Choose a tag to compare

@Townrain Townrain released this 17 Jul 11:12

Full Changelog: v5.0.2...v5.0.3

v5.0.2

Choose a tag to compare

@Townrain Townrain released this 08 Jul 08:07

Full Changelog: v5.0.1...v5.0.2

v5.0.1

Choose a tag to compare

@Townrain Townrain released this 07 Jul 13:16

Full Changelog: v5.0.0...v5.0.1

KeyHub-Desktop

Choose a tag to compare

@LiangL-sys LiangL-sys released this 28 Jun 18:17

v5.0.0 (2026-06-26)

  • 桌面应用: 基于 Tauri v2.5 的原生桌面应用(React 19 + TypeScript)
    • 仪表盘:密钥统计 + SSE 实时进度流
    • 服务商管理:CRUD + 真实连接测试
    • 工具面板:批量验证 / 模型测试 / 签名验证报告
    • 操作日志:查看和清理日志
    • 导入历史:查看导入记录
  • 自动构建: GitHub Actions CI/CD(PyInstaller + cargo tauri build)
  • 后端适配: 服务商详情端点修复、真实连接测试支持

v4.3.0

Choose a tag to compare

@Townrain Townrain released this 23 Jun 18:44

Full Changelog: v4.1.0...v4.3.0

v4.1.0

Choose a tag to compare

@Townrain Townrain released this 22 Jun 03:30

v4.1.0(2026-06-22)
Web 模块技术债务优化:

修复 中的死代码( 表达式未使用)middleware.pynow - 300.0
提取 工具函数,消除 3 处重复的 Chat URL 构造逻辑build_chat_url()
提取 工具函数,消除 5 处重复的提供商检测+验证模式resolve_provider()
修复 中弃用的 ,改用keys.pydatetime.utcnow()datetime.now(timezone.utc)
为所有静默异常块添加 日志记录logger.debug()
将内联导入(、)移至模块顶部import re as _reimport time as _time
统一 模型端点的错误响应格式,使用 替代原始 dicttest.pyErrorResponse
删除 中的重复注释_app.py
代码行数减少 ~110 行,新增 共享工具模块web/utils.py
操作日志清理功能:

新增 API 端点,支持清理当天或指定日期的主日志DELETE /api/logs
新增 方法ProjectLogger.clear_main_log()
测试验证:

全量测试通过:682通过,跳过1
覆盖率:78.40%(超过 60% 要求)
前端清理优化:

CSS: 添加缺失的 变量,新增 工具类--neon-cyan-dim.btn-sm.btn-danger.url-input.toolbar-divider
CSS: Confirm 模态框和添加服务商表单的内联样式提取为 CSS 类
CSS: 签名报告样式拆分到components/signature-report.css
CSS: 内联 从 71 减少到 39,/ 从 10 减少到 0style=onfocusonblur
JS: 提取 、 到selectCustomOptiontoggleCustomSelecttoggleLogsui-helpers.js
JS: 新增 函数,带确认对话框clearLogs()
HTML: 从 531 行精简到 508 行index.html
v4.0.0 (2026-06-21)
前端模块化重构: 将单体 (4725行) 重构为模块化结构:index.html

CSS 拆分: 5个主题文件 + 7个组件文件
tokens.css— CSS 变量
base.css— 基础样式、布局、响应式
components.css— 组件入口 (@import
components/— 7个独立组件(按钮、表单、卡片、表格、状态、导航、覆盖层)
modals.css— 模态框样式
animations.css— 动画和过渡
JS 模块化: 12个ES模块
state.js— 全局状态管理
utils.js— 纯工具函数
api/— 9个API模块(客户端、统计、密钥、检查、测试、平衡、模型、提供者、杂项)
UI模块: toast, progress, confirm, keys-table, providers, batch, modals, model-detect
init.js— 入口点和事件绑定
index.html精简至 467行
API模块拆分: 按后端路由结构拆分前端API模块:

api/client.js— 通用fetch逻辑(safeFetch)
api/index.js— 重新导出所有函数
每个路由模块对应独立文件
静态文件服务:添加 中间件StaticFiles

错误处理增强: loadKeys/loadStats 添加 try-catch 错误处理

ES模块修复: 修复 State 对象只读绑定问题

Web模块重构: 将单体 (2094行) 重构为模块化包结构:web.py

web/_app.py— 应用入口 (239行)
web/middleware.py— 中间件和错误处理器
web/progress.py— ProgressTracker和SSE辅助
web/routes/— 8个路由模块(keys、check、test、balance、models、providers、stats、misc)
测试套件重构:

合并补充测试文件 (test_parser_supplement, test_validator_supplement, test_ssrf_supplement)
删除重复测试文件 (test_web_fixes)
修复 mock 路径以匹配新的 web 模块结构
提取共享 fixtures 和帮助函数到 conftest.py
移除冗余 @pytest.mark.asyncio 装饰器
修复速率限制中间件的测试隔离问题
代码去重: 消除 中的重复模型检查逻辑api_check_single

调试系统清理:移除 hack,使用干净的可选导入模式sys.path.insert

重复路由修复: 合并重复的 路由GET /api/providers

日志显示修复: 修复日志显示为 的问题[object Object]

可扩展性: 在 中添加新路由、中间件和错误处理器的扩展指南routes/init.py

提供商系统重构:

删除 属性,改为先从 API 获取模型列表再测试check_model
删除所有提供商中的冗余方法(build_headers, get_models, test_token_limit, test_concurrency, _probe, check_real)
标准提供商从 ~77 行减少到 ~5-8 行
总共减少 ~2,400 行冗余代码
添加 属性,自动从 推导 聊天完成 端点chat_endpointcheck_endpoint
检测逻辑修复:

修复检测逻辑不再因为 返回 200 就立即返回提供商/v1/models
/v1/models只用于获取模型列表,不能判断提供商
/chat/completions返回 200 才能判断提供商
添加前缀匹配逻辑,支持共享前缀(如 )的提供商检测sk-
免费模型对检测非常重要,检测逻辑会测试所有模型包括免费模型
文档更新:

更新 README.md 的“提供商智能检测”部分,添加详细的检测流程说明
更新 docs/DEVELOPMENT.md 的“检测系统”部分
更新 docs/PROVIDER_REFACTORING_PLAN.md,添加“检测逻辑详解”部分
在 detector.py 中添加详细注释,说明 和 的区别/v1/models/chat/completions
Bug 修复与改进:

修复 SDK 文档方法名与实际不符( → 等)get_keys()keys()
修复删除密钥时报错 “No passphrase found”,新增自动生成加密密钥功能
修复签名验证报告端点 404 错误,改为动态生成报告
修复添加自定义服务商按钮缺失,新增前端 UI

v3.0.1

Choose a tag to compare

@Townrain Townrain released this 17 Jun 15:52

Full Changelog: v3.0.0...v3.0.1

v3.0.0

Choose a tag to compare

@Townrain Townrain released this 15 Jun 14:04

Full Changelog: v2.2.0...v3.0.0

v2.2.0

Choose a tag to compare

@Townrain Townrain released this 13 Jun 22:00

v2.1.2

Choose a tag to compare

@Townrain Townrain released this 11 Jun 01:04
8e9a534

Full Changelog: v2.1.0...v2.1.2