Repository navigation
Releases: jxxghp/MoviePilot
Releases · jxxghp/MoviePilot
Release list
v3.1.5
本次更新内容
- 新增订阅活动记录,按执行轮次查看搜索、匹配、下载和完成情况,支持筛选与详情查看,完成后的订阅也可在历史中回溯。
- 支持查看、实时跟踪和下载单个订阅的运行日志,便于定位订阅未下载或执行异常的原因。
- 修复剧集部分入库后订阅进度未及时更新的问题,手动下载后的入库进度也能正确同步。
- 优化种子内容缓存与下载限流处理,减少重复获取临时下载链接,提升下载稳定性。
- 修复工作流编辑时动作端口尚未就绪导致连线丢失的问题;输入或粘贴完整六位验证码后自动提交登录。
- 优化确认弹窗、更新提示、长标题和移动端安全区域布局,统一 GitHub Token 提示框的玻璃主题样式。
- 改进站点数据解析,兼容自定义做种页面及 Unit3D 魔力页面;修复含下划线插件 ID 的实例校验。
- 修复 Bangumi 等识别来源缺少语言、国家信息时分类规则失效的问题,完善 TMDB 辅助信息补充。
- 修复整理时拒绝覆盖较大文件后的结果状态、整理恢复检查点保存,以及 ACL 挂载目录下音乐音轨读取问题。
- 智能助手新增 API Route 模型服务商,改进 API 调用的用户身份与权限处理;修复 QQ Bot 网关重连,并升级 Rust 加速组件至 0.3.8。
- 站点采集器迁移为独立发布,按采集器自身输入变化更新版本。
完整变更记录
- feat: 独立发布站点采集器并按输入变化递增版本 by @jxxghp (54b6368)
- fix(transfer): preserve success on size overwrite decline (#6960) by @jxxghp (c670432)
- fix: 校验采集器草稿绑定提交以支持安全重试 by @jxxghp (ec0b77e)
- docs: 用有效标签筛选统一采集器下载入口 by @jxxghp (3fc4a5c)
- fix(music): keep detached audio readable on ACL mounts (#6961) by @jxxghp (453a347)
- fix(plugin): accept underscore IDs in instance validation (#6962) by @jxxghp (01301b8)
- refactor: move site collector releases and sources to independent repository by @jxxghp (28e1cb3)
- fix(testing): register runtime configuration in shared plugin bootstrap by @InfinityPacer (b174d3c)
- feat(subscribe): add isolated execution logs with authorized streaming (#6963) by @jxxghp (391f55d)
- chore(frontend): target subscription log UI v3.1.5 by @jxxghp (04453ce)
- chore(release): retain backend image frontend declaration by @jxxghp (e4f69b0)
- test(subscribe): align regression imports with Ruff policy by @jxxghp (ad4f8fb)
- fix(subscribe): preserve original execution log content by @jxxghp (7a85357)
- fix(agent): separate public API queries from bound user operations by @jxxghp (bd1e6eb)
- fix(indexer): support custom seeding and Unit3D bonus pages by @jxxghp (99ef7e5)
- fix(download): reuse torrent content before resolving tickets (#6967) by @jxxghp (6f9c075)
- fix(subscribe): reconcile partial library progress (#6966) by @jxxghp (de7726c)
- test(subscribe): verify progress preserves persisted extra fields by @jxxghp (899a0eb)
- fix(agent): point capability entrypoints at canonical manager module (#6969) by @jxxghp (c8e935f)
- fix(bangumi): merge tmdb classification metadata for aux source (#6968) by @jxxghp (6ef8408)
- feat(subscribe): persist business activity with scoped details by @jxxghp (86c7fcc)
- docs(subscribe): account for four activity modules in startup contract by @jxxghp (26185d4)
- fix(tmdb): skip image queries for unsupported recognition sources by @jxxghp (04126ce)
- fix(qqbot): reconnect when the gateway requests a new connection by @jxxghp (0c640be)
- fix(transfer): persist provider checkpoint planning time by @jxxghp (4357035)
- chore: bump moviepilot-rust to 0.3.8 (#6975) by @DDSRem-Bot (8c3c8ad)
- feat(llm): add API Route provider (#6972) by @DennyHo0917 (f4cd7d0)
- chore(release): publish MoviePilot v3.1.5 by @jxxghp (d315377)
- fix(update): preserve pending update state across checks by @jxxghp (40711d2)
版本对比
v3.1.4
本次更新内容
🚀 v3.1.4 更新内容
- 新增插件扩展的 AI 助手形象,支持在助手面板中预览和切换,管理员可设置默认形象。
- 优化悬浮助手的贴边收起、位置记忆和形象加载,刷新后恢复已选形象,并改善气泡定位与减少动态效果的适配。
- 优化下载卡片、整理历史和文件列表的布局、长路径显示与排序;改善移动端悬浮按钮交互,修复版本历史列表标记。
- 优化订阅补全搜索:限制单个来源最多翻查 20 页,减少持续不匹配的 IMDb 查询;整季缺失时完整收集资源,让后页整季包参与择优。
- 提升下载可靠性:缺少站点凭据时按匹配配置补齐,空白保存路径使用默认目录,并遵守站点限流与配额冷却。
- 修复工作流中种子上下文在持久化、过滤和添加下载节点之间传递的问题,恢复节点输出供后续步骤使用。
- 修复插件依赖恢复与启停状态刷新,避免停用插件的依赖约束干扰已启用插件。
- 改善 Agent 与工具兼容性:兼容媒体类型参数,Python 执行环境继承部署配置,修复 CLI 对 MCP/REST 工具结果的解析。
- 加强整理任务异常处理:未被处理的执行异常转入人工复核,避免任务无限自动重放。
完整变更记录
- ci: preserve manual release summaries and raw changelog by @jxxghp (63e30e4)
- test: align release contract and isolate search media mocks by @jxxghp (4f3424d)
- test: mock media singleton instance at search boundary by @jxxghp (736b668)
- fix(api): accept agent media type values by @pyss56 (0d62815)
- fix: isolate unhandled durable transfer failures by @jxxghp (bb29451)
- fix(plugin): recover dependencies without disabled constraints by @jxxghp (b663825)
- fix(cli): unwrap MCP REST tool responses by @jxxghp (2b415cc)
- fix(workflow): accept RSS domain context when adding downloads (#6947) by @jxxghp (f03b5fb)
- fix(workflow): keep torrent contexts usable across persistence and filtering by @InfinityPacer (3faa49f)
- fix(agent): inherit deployment environment in Python kernels by @jxxghp (cb6bc02)
- fix(torrent): respect tracker rate limits and quota cooldowns by @jxxghp (dd90883)
- fix(download): treat blank save path as default directory by @InfinityPacer (338687b)
- fix(download): let labelled full-season packs compete in whole-season phase by @InfinityPacer (9117ebd)
- feat(plugin): add agent pet extension contract by @InfinityPacer (25aaf3a)
- feat(plugin): add avatar to agent pet declarations by @InfinityPacer (e97f64e)
- docs(skills): document get_agent_pets in plugin authoring skill by @InfinityPacer (ab729be)
- fix(plugin): advance runtime generation when a plugin is enabled or disabled by @InfinityPacer (40e80f4)
- docs(skills): place agent pet images beside remoteEntry by @InfinityPacer (83e07a8)
- feat(plugin): expose remote entry and version on agent pets by @InfinityPacer (d9ac4cc)
- fix(download): recover omitted site credentials for torrent fetch by @jxxghp (63055f8)
- fix(workflow): restore torrent node outputs before consumption (#6959) by @jxxghp (5b8b16b)
- docs(architecture): sync workflow type debt low watermark by @jxxghp (e8d63f2)
- fix(search): cap paging and stop unmatched IMDb sources by @jxxghp (0cbdbf9)
- fix(search): preserve full collection for whole-season subscriptions by @jxxghp (4059877)
- build(release): publish v3.1.4 by @jxxghp (5dd55eb)
版本对比
v3.1.3
本次更新内容
🚀 v3.1.3 更新内容
- 新增 Atlas Cloud 模型服务商和 Milkie 站点适配。
- 豆瓣、Bangumi 订阅可自动转换为 TMDB 条目;暂停订阅后会停止自动搜索和下载。
- 新增歌词正文转简体中文选项,写入 LRC/TXT 时生效。
- 提升搜索和下载可靠性:重试时跳过过期任务、临时失败可重试,并优化无结果时的冷却处理。
- 加强稳定性与安全性:限制连续密码登录失败,调整通配 CORS 凭据行为,修复插件包替换与导入并发问题。
- 优化前端体验:重新设计了媒体整理和文件管理界面,订阅卡片显示来源,支持在各阶段忽略版本更新提示。
完整变更记录
- feat(indexer): 适配 Milkie 站点搜索与连通测试 by WenGuoyin (e19076f)
- docs(architecture): sync metrics for Milkie adapter by @jxxghp (6758633)
- feat(music): optionally simplify written lyrics by @jxxghp (70811b5)
- fix(subscribe): convert douban/bangumi identity to TMDB on subscribe by @YuHoYe (d42c217)
- fix(subscribe): validate TMDB conversion and sync architecture facts by @jxxghp (35d5cac)
- docs(agents): drop stale S2-L6 temporary-debt wording for rss.py by @cwd0204 (32fa9be)
- chore(douban): drop duplicated apikey literal from __post docstring by @cwd0204 (55d3081)
- fix(api): disable CORS credentials for wildcard origins by @cwd0204 (0cfb292)
- test: stub optional downloader modules only when they are missing by @cwd0204 (88641d4)
- fix(subscribe): stop automatic searches and downloads when paused by @jxxghp (54f2dab)
- fix(security): throttle password login after repeated failures by @cwd0204 (2165475)
- style: apply safe ruff auto-fixes and exempt startup late imports by @cwd0204 (f3ad81b)
- fix(workflow): drop shared context on fork and legacy pickle context by @InfinityPacer (6034dcc)
- feat(llm): 新增 Atlas Cloud provider by @binyangzhu000-sudo (6d47931)
- fix(workflow): 修复添加下载的媒体上下文类型 #6931 by @jxxghp (0115c41)
- fix(scheduler): preserve dispatched plugin one-shot jobs (#6935) by @jxxghp (b3581e0)
- fix(bangumi): use HTTPS for calendar covers by @jxxghp (b2dfde5)
- fix(workflow): satisfy architecture gates for issue 6931 by @jxxghp (9924e5e)
- fix(torrent): retry transient downloads and shorten empty-content cooldown by @jxxghp (e9f0c69)
- fix(download): remove deleted source from matching downloader by @jxxghp (1ed458e)
- fix(search): ignore expired scan retry times by @jxxghp (828f66e)
- fix(search): separate retry timestamp types by @jxxghp (8811825)
- build(release): publish v3.1.3 by @jxxghp (24c2a30)
- fix(plugin): serialize package swaps with imports (#6939) by @jxxghp (d7db4cf)
版本对比
v3.1.2-1
本次更新内容
完整变更记录
- fix(search): restore concurrent progressive manual paging by @jxxghp (f0b34cf)
- chore(release): bump backend version to v3.1.2-1 by @jxxghp (97a6dc3)
- fix(telegram): report persistent polling failures by @jxxghp (cf889ba)
- fix(transfer): suppress completion events without target items by @jxxghp (11303a8)
- fix(agent): inject host dependencies into protocol factories by @jxxghp (0cd6b36)
- fix(indexer): paginate keyword results without server page support by @jxxghp (656e285)
版本对比
v3.1.2
本次更新内容
🚀 v3.1.2 更新内容
- 搜索: 订阅补全支持逐页搜索和断点续搜;资源页支持手动继续加载搜索结果。
- 下载: 保存目录支持使用配置别名作为路径;下拉选项显示“别名(路径)”。
- 音乐整理: 新增 CUE 识别开关,并修复过期 CUE 引用文件缺失时可能引发的问题。
- Agent: 改善 QQ、飞书用户绑定匹配,修复非 Gemini 模型的工具参数兼容;优化 LLM 客户端关闭、运行签名计算和 macOS 内核进程终止重试。
- 媒体与站点: Jellyfin 媒体库查询纳入合集成员;TNode 会先获取当前用户信息再校验用户 ID。
完整变更记录
- fix(audio): ignore stale CUE sheets whose referenced files are gone by @JontyLee (5cc0375)
- chore(deps): upgrade chardet to 7.6.0 by @InfinityPacer (8b4b5eb)
- fix(agent): reap macOS kernels before retrying group termination by @InfinityPacer (7e76239)
- fix(jellyfin): include collection members in library queries by @jxxghp (a8f71f3)
- fix(indexer): fetch TNode current user before requiring an id (#6895) by @jxxghp (43edef1)
- feat(download): accept configured directory names as save_path by @cwd0204 (4e9e868)
- docs(download): document directory aliases for save_path by @cwd0204 (4c994c9)
- fix(agent): resolve alternative QQ and Feishu user bindings by @jxxghp (e51fd44)
- fix(agent): preserve nullable tool schemas outside Gemini by @jxxghp (d22e478)
- fix(agent): close owned LLM clients with their lifecycle by @jxxghp (6c9ebd0)
- fix(agent): exclude history storage from runtime signatures by @jxxghp (230b128)
- feat(search): 订阅补全逐页搜索、断点续搜与资源页手动分页 (#6907) by @CHANTXU64 (e5e2558)
- 更新 version.py 到 v3.1.2 by @jxxghp (bf6ad15)
- fix(deps): update audited runtime dependencies by @jxxghp (6ba8bc0)
- feat(music): preserve per-task CUE recognition policy by @jxxghp (32d37fa)
- Synchronize FRONTEND_VERSION with APP_VERSION by @jxxghp (ed85f76)
版本对比
v3.1.1
本次更新内容
🚀 v3.1.1 更新内容
- 智能助手:新增输出语言选择,支持温度参数留空,修正高强度思考参数传递,改善本地 API 调用、JSON 请求参数和验证码识别回退。
- 插件面板:新增桌面和移动端图标入口,支持插件搜索、常用收藏及最近使用。
- 分类管理:简化分类与规则编辑,完善预览详情,优化默认分类规则和豆瓣语言信息映射。
- 整理性能:优化大批量整理队列分页、任务去重与刷新频率,提升目录监控增量快照处理效率。
- 订阅与日历:修正缺集计算范围,支持暂停订阅手动补搜,修复追剧日历入库状态更新。
- 站点与下载:兼容 XML/RSS 搜索源,自动刷新失效签名种子链接,优化 M-Team 缓存,修复 Unit3D 用户数据解析。
- 音乐整理:完善手动整理的简体元数据处理,改善 LRCLIB 歌词查询与繁简匹配。
- 消息通知:修正管理员和操作用户收件人路由,改善微信、飞书图片发送,减少实时消息积压和重连后的重复刷新。
- 界面体验:统一文件浏览器、移动端卡片和 PWA 提示的玻璃效果;优化订阅卡片视觉,记住媒体整理分组视图,修复海报排列。
完整变更记录
- ci(sync): merge upstream nightly with failure reports by @ranzhigg (46a3c8a)
- fix(ci): align sync reports with artifact policy by @ranzhigg (06240d1)
- fix: restore Python 3 exception syntax by @ranzhigg (053de2b)
- perf(transfer): bound queue snapshots for batch imports by @ranzhigg (56cf6fe)
- docs(architecture): sync transfer queue baseline by @ranzhigg (fb8f283)
- perf(monitor): index incremental snapshot reconciliation by @ranzhigg (1965cc4)
- fix(cli): force sync remote tags during updates by @jxxghp (a8b0870)
- fix(system): query v3 releases in version command by @jxxghp (d1a5997)
- fix(system): type release tags and record reduced mypy debt by @jxxghp (e14e49e)
- docs: sync system version query type debt metrics by @jxxghp (da93215)
- fix(classification): prepare policy-specific facts and refine defaults by @jxxghp (5f59648)
- fix(parser): keep Unit3D username as user id by @jxxghp (e1d1de1)
- chore(parser): preserve existing ruff baseline by @jxxghp (97b251e)
- fix(douban): map source languages for classification (#6860) by @jxxghp (e3524a3)
- fix(douban): keep language mapping within projection boundary by @jxxghp (2e24c40)
- fix(vyo): load servers using the persisted configuration type by @thsrite (33f17fa)
- fix(notification): 限制实时消息队列积压并在 SSE 重连后一次推送 (#6862) by @MiCat-S (eb76fca)
- chore(transfer): remove unrelated fork sync changes by @jxxghp (1ba2f28)
- refactor(transfer): keep queue projections in transfer endpoint module by @jxxghp (1eacd10)
- fix(agent): restore JSON-encoded string bodies in api argument canonicalization by @q10710 (37d9680)
- test(transfer): cover bounded queue endpoint contract by @jxxghp (cb9b9e5)
- fix(agent): type and cover encoded api bodies by @jxxghp (6b8f5f9)
- fix(notification): align scoped recipient routing by @jxxghp (118e2ef)
- fix(monitor): keep snapshot reconciliation within complexity budget by @jxxghp (cac298f)
- fix(monitor): type snapshot reconciliation state by @jxxghp (66e7916)
- style(monitor): normalize snapshot imports by @jxxghp (db4e898)
- docs(architecture): sync mypy debt metric by @jxxghp (afa6a42)
- fix(llm): 允许温度留空以省略不兼容的请求参数 (#6865) by @CHANTXU64 (3c56f0b)
- fix(llm): preserve max reasoning effort (#6866) by @CHANTXU64 (8b30668)
- fix(transfer): 整理规划的业务拒绝不再按系统错误告警 (#6868) by @MiCat-S (2a31b51)
- fix(indexer): support XML feeds in site search by @jxxghp (378944a)
- fix(subscribe): preserve accepted searches for paused subscriptions by @InfinityPacer (6e295d5)
- fix(music): apply simplified metadata to manual transfers by @jxxghp (754da97)
- docs(architecture): sync music normalization dependency count by @jxxghp (fcf12a1)
- fix(agent): route API calls to the local backend (#6875) by @jxxghp (4d74d4c)
- docs(music): keep metadata details in the API category guide by @jxxghp (3bdd756)
- fix(agent): guide captcha OCR failures to browser vision by @jxxghp (d8031e2)
- test(agent): remove the API skill line limit by @jxxghp (3a6f386)
- fix(download): refresh expired signed torrent links by @jxxghp (823423b)
- fix(torrent): prefer resource ids over tracker group ids by @jxxghp (5dabe1e)
- fix(torrents): use incremental cache for M-Team by default by @jxxghp (e21d684)
- fix(feishu): apply image referer and proxy policy by @jxxghp (3f20617)
- fix(image): retry transient cover fetch failures by @jxxghp (f4b1e7e)
- fix(wechat): proxy douban notification images by @jxxghp (03a285a)
- fix(api): classify notification image transport route by @jxxghp (c8869d4)
- fix(site): 非超级管理员读取订阅站点和域名详情时不返回认证字段 by @MiCat-S (3bdf09d)
- fix(message): 回调验证日志不再输出 token by @MiCat-S (4416e27)
- fix(downloader): 添加种子失败提示改用种子名称 by @MiCat-S (bdef005)
- test(llm): restore Gemini SDK patch between tests by @jxxghp (7038f56)
- feat(agent): add configurable output language by @jxxghp (6f0f528)
- fix(api): allow dedicated identifier writes by @jxxghp (22704e9)
- fix(lyrics): normalize LRCLIB music metadata by @jxxghp (fa5fa33)
- chore(release): bump backend and frontend to v3.1.1 by @jxxghp (4ca70b4)
- fix(system): 公开设置不再返回存储的连接配置 by @MiCat-S (75d8b2e)
- fix(agent): 浏览器与验证码工具的私网访问参数仅限管理员 by @MiCat-S (aa78bc9)
- fix(message): WebPush 主动推送接口仅限超级管理员 by @MiCat-S (dc974b6)
- fix(media): 刮削接口要求管理权限,与手动整理和文件管理保持一致 by @MiCat-S (873c4c7)
- fix(nettest): TMDB 网站连通性测试使用程序自身 UA by @MiCat-S (36e68b1)
- fix(music): 支持关闭 CUE 识别整理分轨音频 by @jxxghp ([fb652c7](...
v3.1.0
本次更新内容
🚀 v3.1.0 更新内容
- 音乐识别与整理增强:支持整轨 CUE、可信音频标签直接整理,完善专辑版本选择、曲目匹配、古典音乐信息及指纹回退,保护硬链接保种文件。展示识别依据,支持按文件组校正专辑及发行版本。
- Agent 能力升级:增强历史会话检索、后台学习与执行保护;Docker、CLI 自动安装中文检索扩展,提升中文短词检索能力。新增思考状态、耗时展示。
- 远程存储增强:支持同一 SMB 服务配置多个共享,完善远程下载目录、服务端整理、容量查询和异常恢复。
- 系统基础优化: 优化系统升级体验,降低内存占用。
- 界面体验优化:订阅卡片适配海报色调,优化玻璃主题背景、移动端空状态及整理确认交互。
完整变更记录
- ci: share architecture scans and stop rerunning gate tests in coverage shards by @InfinityPacer (ec1c1dd)
- ci: split architecture gate into parallel jobs and drop duplicate event policy run by @InfinityPacer (5d6e4b3)
- fix(agent): 请求上线前规整工具参数 schema,修复经 OpenAI 兼容网关调用 Gemini 时 400 (#6818) by @Aqr-K (de63e17)
- fix(indexer): 站点搜索兜底失败信息附带状态码与页面标题 (#6819) by @Aqr-K (f4a68f3)
- feat(telegram): route channel notifications to configured topic by @jxxghp (e98e92e)
- fix(plex): sync music items with optional metadata (#6814) by @jxxghp (d1899c4)
- feat(message): expose instance hostname in templates (#6815) by @jxxghp (b43ae37)
- fix(cli): 修复安装向导资源读取与目录处理 by @jxxghp (6759128)
- fix(cli): preserve virtualenv python for autostart by @jxxghp (d9ff186)
- fix(transfer): make manual review notes optional by @jxxghp (45322c2)
- feat(scheduler): add plugin one-shot job API to host scheduler by @InfinityPacer (b387484)
- docs(skills): document plugin one-shot jobs in plugin authoring skill by @InfinityPacer (a10e6c3)
- fix(metainfo): preserve global words for empty overrides by @jxxghp (90466e6)
- perf(startup): compose redis cache and agent memory only when used by @InfinityPacer (810ee28)
- fix(search): use media aliases for English-only sites by @jxxghp (067a908)
- docs(architecture): sync search dependency metrics by @jxxghp (0fae514)
- fix(cache): close shared redis pool once and keep redis caches across restarts by @InfinityPacer (6fc2c53)
- fix(smb): clear stale state before reconnecting storage by @jxxghp (512bd10)
- test(smb): resolve storage types after module reload by @jxxghp (c0464c6)
- fix(image): allow configured site domains in image proxy by @jxxghp (8c46c9b)
- fix(image): cache site allowlist and include custom image hosts by @jxxghp (b4175a4)
- fix(music): retain untagged audio evidence and read native ID3 tags by @jxxghp (ea048d3)
- fix(music): preserve album directory year and version evidence by @jxxghp (2dd1813)
- feat(music): organize trusted audio tags without online recognition by @jxxghp (ee3fe99)
- feat(music): use original torrent evidence in album recognition by @jxxghp (b62dbbf)
- feat(music): preserve release identities and metadata evidence by @jxxghp (3ebd2c0)
- feat(music): group physical releases and preserve tagged release types by @jxxghp (b2f82a4)
- feat(music): recognize and archive whole-album CUE resources by @jxxghp (979f625)
- fix(music): isolate storage evidence and reject unopened release packages by @jxxghp (983d3e1)
- fix(music): align album tracks by unique evidence instead of file order by @jxxghp (47303a1)
- feat(music): verify release candidates with identities and complete track evidence by @jxxghp (c15b4bf)
- feat(music): bound recognition requests and make lookup caches recoverable by @jxxghp (54591ac)
- fix(music): retry transient recognition before freezing file operations by @jxxghp (4a2ef75)
- ci: replace line budgets with structural complexity gates by @jxxghp (7e43ea9)
- feat(music): validate bounded fingerprint candidates and recover failed lookups by @jxxghp (3a7b0c1)
- fix(music): protect linked seeds during native metadata writes by @jxxghp (75ae174)
- fix(music): preserve native APE identities and precise tag dates by @jxxghp (264fb6e)
- fix(cli): move dev updates out of ordinary startup by @jxxghp (e306bc3)
- fix(transfer): organize remote downloads on the SMB server by @jxxghp (61e9ef7)
- feat(music): add bounded source fallback and verified album matching by @jxxghp (3a5486a)
- feat(smb): mount multiple shares in one storage service by @jxxghp (ee9fbf2)
- perf(telegram): replace pyTelegramBotAPI with a lightweight Bot API client by @InfinityPacer (fb9d020)
- fix(music): verify artist aliases and preserve ambiguous identities by @jxxghp (72fcd84)
- fix(cli): reinstall same-version frontend releases in dev mode by @jxxghp (4b84ced)
- fix(notification): show module execution error details by @jxxghp (db7ab2f)
- fix(deps): upgrade pyjwt to 2.14.0 for security advisories by @InfinityPacer (9e225dc)
- feat(music): preserve classical credits and verify performance evidence by @jxxghp (9b054bd)
- fix(smb): restore multi-share capacity and diagnose unmapped paths by @jxxghp (0833169)
- perf(webpush): send Web Push with http-ece and py-vapid instead of pywebpush by @InfinityPacer (4bd7e3d)
- fix(music): read and write native ASF metadata safely by @jxxghp (2ebb3c7)
- feat(music): expose recognition evidence and release groups in transfer previews by @jxxghp (104d802)
- fix(update): clear stale update records after external upgrade by @InfinityPacer (27ce5ec)
- fix(cli): only report config migration after copying files by @jxxghp (fb0f573)
- feat(music): honor explicitly selected release editions by @jxxghp (8fbf1cb)
- perf(feishu): replace lark-oapi with lightweight OpenAPI and long-connection clients by @InfinityPacer ([437b232](https://github.com/j...
v3.0.10-1
本次更新内容
完整变更记录
- fix(nettest): authenticate network proxy GitHub probe by @jxxghp (9d37ee4)
- fix(subscribe): resolve cross-source video status without premiere year by @jxxghp (6cdd4db)
- perf(runtime): release idle pool threads' allocator caches by @InfinityPacer (c5a57db)
- docs(architecture): sync dependency edge count by @InfinityPacer (3b2cd28)
- fix(docker): enable jemalloc background thread only in the main process by @InfinityPacer (31ca107)
- fix(runtime): strip inherited jemalloc background thread config for subprocesses by @InfinityPacer (7191b23)
- docs(runtime): trim allocator background thread docstring by @InfinityPacer (ecafd4c)
- docs(runtime): drop redundant allocator comments by @InfinityPacer (143ed49)
- fix(update): accept -N hotfix suffix for stable releases by @InfinityPacer (82f5fca)
- chore(release): backend v3.0.10-1 by @InfinityPacer (193bc8d)
版本对比
v3.0.10
本次更新内容
🚀 v3.0.10 更新内容
- 网络测试:修正 IMDb、AniList 和 TheAudioDB 的探测请求,让检测方式与实际接口和配置保持一致。
- 内存与缓存:优化空闲内存回收和可选 SDK 的按需加载;调整二进制缓存路由,降低 Redis 承载这类缓存的情况。
- Plex 同步:减少不必要的详情读取;读取失败时中止同步,保留已有缓存。
- 下载与字幕:修正单文件种子的站点字幕保存目录;兼容文件修改时间约 1 秒的精度差异。
- 运行时稳定性:修复模块卸载后的事件处理器身份问题。
- 前端交互:工作流操作等待异步任务结束后再恢复;修复媒体服务器设置重复保存,并恢复 GitHub Token 使用说明。
完整变更记录
- fix: align AniList and TheAudioDB network probes by @jxxghp (cf13f2e)
- fix(cache): keep binary blob caches out of Redis by @InfinityPacer (dc52317)
- perf(memory): return idle allocator pages to the OS by @InfinityPacer (9af903e)
- perf(memory): stop retaining module sources and cap nginx workers by @InfinityPacer (c924a45)
- perf(memory): import storage and passkey SDKs on demand by @InfinityPacer (313f894)
- test: isolate optional SDK import probe from local site resources by @InfinityPacer (4f73041)
- fix: avoid Plex sync detail reloads and preserve cache on read failure by @jxxghp (e2f925a)
- test: register Plex movie type without Ruff import warning by @jxxghp (f2bce84)
- Fix site subtitle target directory for single-file torrents by @jxxghp (8956816)
- fix(event): preserve handler identity after module unload by @jxxghp (342b570)
- fix(event): type module identity fallback precisely by @jxxghp (1374328)
- fix(transfer): tolerate one-second mtime drift by @jxxghp (d4dd646)
- chore(release): backend v3.0.10 by @jxxghp (0cb07f4)
- fix(site): merge CookieCloud domains that start with a dot (#6805) by @G0m3e (d423898)
- fix(plugin): release reloaded plugin code held by framework caches (#6807) by @InfinityPacer (2a68dd6)
版本对比
v3.0.9
本次更新内容
🚀 v3.0.9 更新内容
- 刮削与剧集识别:手动刮削支持选择 TMDB 分集组;改进 AniList 季番匹配、整季包集数校验和下载历史媒体类型识别。
- 音乐交互:关闭 Agent 时也能搜索和选择音乐资源;优化频道结果标题展示,并让自动音乐选择按文件处理。
- 下载与字幕整理:蓝光临时文件未完成时延后转移;修复字幕路径缺失及转移后字幕保存问题。
- 媒体服务器同步:Plex 大型媒体库支持超时配置、分页读取和超时重试;修正 Emby 电视剧 Webhook 的剧集匹配。
- 网络测试:增加协议适配检查,明确检测目标,并完善官方服务图标显示。
- 通知与消息渠道:优化 iOS PWA Web Push 注册和窄屏权限状态显示;VoceChat 回复使用配置的频道 ID。
- 设置与账号体验:基础设置保存后显示成功反馈;完善 GitHub Token 授权说明、手动录入和重新连接,并支持 QQ 身份绑定。
- 界面细节:修复分类媒体库布局和筛选规则组选项;调整插件卡片图标,展示 GIL 回退信息,并改善页面切换体验。
完整变更记录
- fix: 修复 resource_term 前导空格问题 (#6772) by @JontyLee (9dba379)
- Fix subtitle saving after completed transfers by @jxxghp (ffa14e9)
- Update subtitle transfer dependency baseline by @jxxghp (bae7445)
- Keep subtitle owner within complexity budget by @jxxghp (397d496)
- Handle missing subtitle file paths safely by @jxxghp (79c0826)
- feat(media): support episode groups in manual scraping by @jxxghp (5d620b0)
- test(agent): sync moviepilot api skill version by @jxxghp (ca717f0)
- chore: bump moviepilot-rust to 0.3.7 (#6777) by @DDSRem-Bot (a225465)
- fix(metainfo): preserve subtitle-like title tokens by @jxxghp (e619bed)
- fix(metainfo): avoid untyped token cursor call by @jxxghp (586c1e7)
- feat(system): add protocol-aware network checks by @jxxghp (1d84d17)
- fix(system): preserve network probe service contracts by @jxxghp (027b4fe)
- fix(system): use explicit module runtime facade getter by @jxxghp (b5e2972)
- chore(architecture): refresh network probe dependency baseline by @jxxghp (7abc420)
- docs(architecture): sync network probe graph metrics by @jxxghp (d76bcee)
- chore(architecture): record websocket probe thread owner by @jxxghp (419423d)
- fix(system): type network test facade exports by @jxxghp (5dfbcf5)
- chore(architecture): sync network probe startup counts by @jxxghp (44f4656)
- fix(nettest): map service-specific icons by @jxxghp (2807bcf)
- fix(transfer): keep automatic music selection per file by @jxxghp (3428aed)
- fix(plex): retry paged media library reads by @jxxghp (61179ab)
- fix(vocechat): route channel replies using configured ID by @jxxghp (811f524)
- fix(monitor): defer Blu-ray transfer while temp files remain by @jxxghp (71a2725)
- fix(search): match AniList season entries with numbered torrents by @jxxghp (83fc6b5)
- fix(transfer): honor download history media type by @jxxghp (ee9b32b)
- fix(transfer): keep history type resolution within ratchet by @jxxghp (a698d55)
- feat(messaging): support music interactions without agent by @jxxghp (2cfb94d)
- refactor(chain): organize music interaction modules by @jxxghp (3621795)
- fix(cache): increase Redis pool defaults by @jxxghp (807a90f)
- fix(emby): use series identity in TV webhooks by @jxxghp (4264aef)
- chore(architecture): sync startup module counts by @jxxghp (37bb171)
- fix(messaging): show music resource titles in channel interactions by @jxxghp (d6fe5a8)
- fix(messaging): keep music listing within architecture boundary by @jxxghp (126e954)
- refactor(messaging): render music torrents in interaction helper by @jxxghp (0d80b2e)
- fix(download): enforce episode allowlist for full packs by @jxxghp (a3035ab)
- refactor(download): keep full-pack admission within complexity budget by @jxxghp (33da9ce)
- chore: release v3.0.9 by @jxxghp (46ad1ad)
- fix: correct IMDb and TheAudioDB network probes by @jxxghp (f0cfaa8)