[3.2] - 2025-01
Backend
Features
- 新增 WebAuthn Passkey 无密码登录支持
- 支持注册、认证、管理 Passkey 凭证
- 支持多设备凭证(iCloud Keychain 等)备份检测
- 支持克隆攻击防护(sign_count 验证)
- 认证策略模式,统一密码登录和 Passkey 登录接口
- 新增日历视图,集成 Bangumi.tv 放送时间表
- 新增下载器 API 和管理接口
- 全面异步化改造
- 数据库层新增异步支持(aiosqlite),为 Passkey 操作提供非阻塞 I/O
UserDatabase支持同步/异步双模式,兼容新旧代码路径Database上下文管理器同时支持with(同步)和async with(异步)- RSS 引擎、下载器、检查器、解析器全面转为异步
- 网络请求从
requests迁移至httpx(AsyncClient)
- 后端迁移至
uv包管理器(pyproject.toml + uv.lock) - 服务器启动使用后台任务,避免阻塞
Changes
- 升级 WebAuthn 依赖至 py_webauthn 2.7.0
_get_webauthn_from_request优先使用浏览器 Origin header,修复跨端口开发环境下的验证问题auth_user和update_user_info转为异步函数TitleParser.tmdb_parser转为异步函数RSSEngine方法全面异步化(pull_rss、refresh_rss、download_bangumi、add_rss)Checker.check_downloader转为异步函数ProgramStatus从 threading 迁移至 asyncio(Event、Lock)
Bugfixes
- 修复
aaguid类型错误(py_webauthn 2.7.0 中为str,不再是bytes) - 修复
credential_backup_eligible字段不存在的问题(改用credential_device_type) - 修复
verify_authentication_response传入无效参数credential_id导致 TypeError - 修复程序启动阻塞服务器的问题
- 修复搜索接口导出与组件不匹配的问题
- 修复 poster 端点路径检查错误拦截所有请求
- 修复 OpenAI 解析器安全问题
- 修复数据库测试使用异步会话与同步代码不匹配
Frontend
Features
- 全新 UI 设计系统重构
- 统一的设计令牌(颜色、字体、间距、阴影、动画)
- 支持亮色/暗色主题切换
- 完善的无障碍访问支持(ARIA、键盘导航、焦点管理)
- 响应式布局适配移动端
- 新增 Passkey 管理面板(设置页)
- WebAuthn 浏览器支持检测
- 设备名称自动识别
- Passkey 列表展示与删除
- 登录页新增 Passkey 指纹登录按钮
- 新增日历视图页面
- 新增下载器管理页面
- 新增 Bangumi 卡片悬停覆盖层(显示标题和标签)
- 新增
resolvePosterUrl工具函数,统一处理外部 URL 和本地路径 - 重新设计 LLM 设置面板
- 重新设计设置、下载器、播放器、日志页面样式
Changes
- 重构搜索逻辑,移除 rxjs 依赖
- 搜索 Store 导出重构,匹配组件期望格式
- 升级前端依赖
CI/Infrastructure
- CI 新增 PR 开启时的构建测试(dev 分支 PR 到 main 时自动触发 build)
- CI 升级
actions/upload-artifact和actions/download-artifact至 v4 - Docker 构建移除
linux/arm/v7平台(uv 镜像不支持) - 新增 CLAUDE.md 开发指南