github jxxghp/MoviePilot v3.1.0

3 hours ago

✨ 新功能

  • install CJK history tokenizer for Docker and CLI by @jxxghp
  • expose model thinking progress by @jxxghp
  • complete integrated evaluation by @jxxghp
  • add persistent Python read-only orchestration by @jxxghp
  • 内置媒体服务 MediaVault 更名为 Vyo by @thsrite
  • align execution guardrails with Hermes by @jxxghp
  • serve API docs behind a runtime toggle, closed by default by @InfinityPacer
  • align background learning with Hermes by @jxxghp
  • align history recall with Hermes SQLite FTS5 by @jxxghp
  • expose Feishu event long connection to plugins by @InfinityPacer
  • honor explicitly selected release editions by @jxxghp
  • expose recognition evidence and release groups in transfer previews by @jxxghp
  • preserve classical credits and verify performance evidence by @jxxghp
  • mount multiple shares in one storage service by @jxxghp
  • add bounded source fallback and verified album matching by @jxxghp
  • validate bounded fingerprint candidates and recover failed lookups by @jxxghp
  • bound recognition requests and make lookup caches recoverable by @jxxghp
  • verify release candidates with identities and complete track evidence by @jxxghp
  • recognize and archive whole-album CUE resources by @jxxghp
  • group physical releases and preserve tagged release types by @jxxghp
  • preserve release identities and metadata evidence by @jxxghp
  • use original torrent evidence in album recognition by @jxxghp
  • organize trusted audio tags without online recognition by @jxxghp
  • add plugin one-shot job API to host scheduler by @InfinityPacer
  • expose instance hostname in templates (#6815) by @jxxghp
  • route channel notifications to configured topic by @jxxghp

🐛 修复

  • allow managed runtime pip removal by @jxxghp
  • clean managed pip and isolate update test versions by @jxxghp
  • remove pip package metadata from runtime by @jxxghp
  • remove vulnerable system pip from runtime image by @jxxghp
  • upgrade vulnerable runtime packages by @jxxghp
  • make project runtime the default Python command by @jxxghp
  • align thinking status with model lifecycle by @jxxghp
  • isolate cached item ids by server (#6850) by @jxxghp
  • honor project runtime Python entry by @jxxghp
  • explain empty memory targets by @jxxghp
  • mark realtime notification type and severity by @InfinityPacer
  • forward tool messages to OpenAI stream by @jxxghp
  • preserve historical tool styles by @jxxghp
  • keep message channel thinking status during tools by @jxxghp
  • satisfy subtitle API type gates by @jxxghp
  • bind CLI commands to project virtualenv by @jxxghp
  • use M-Team subtitle search API by @jxxghp
  • keep thinking status separate by @jxxghp
  • satisfy test import lint by @jxxghp
  • confirm local changes before upgrade by @jxxghp
  • keep mypy ratchet green by @jxxghp
  • satisfy complexity ratchet by @jxxghp
  • resolve copied skill runtime roots by @jxxghp
  • allow slashes in rule group names by @jxxghp
  • prefer project runtime Python by @jxxghp
  • keep remote snapshots complete and recoverable by @freeman
  • improve PT title parsing and benchmark recognition by @jxxghp
  • keep API docs routes across plugin route updates by @InfinityPacer
  • key cached images by complete URL (#6840) by @freeman
  • make API input errors actionable by @jxxghp
  • scope transfer deduplication to storage (#6838) by @freeman
  • preserve bound subscription owner for channel users by @jxxghp
  • reject conflicting recording and album identities by @jxxghp
  • only report config migration after copying files by @jxxghp
  • clear stale update records after external upgrade by @InfinityPacer
  • read and write native ASF metadata safely by @jxxghp
  • restore multi-share capacity and diagnose unmapped paths by @jxxghp
  • upgrade pyjwt to 2.14.0 for security advisories by @InfinityPacer
  • show module execution error details by @jxxghp
  • reinstall same-version frontend releases in dev mode by @jxxghp
  • verify artist aliases and preserve ambiguous identities by @jxxghp
  • organize remote downloads on the SMB server by @jxxghp
  • move dev updates out of ordinary startup by @jxxghp
  • preserve native APE identities and precise tag dates by @jxxghp
  • protect linked seeds during native metadata writes by @jxxghp
  • retry transient recognition before freezing file operations by @jxxghp
  • align album tracks by unique evidence instead of file order by @jxxghp
  • isolate storage evidence and reject unopened release packages by @jxxghp
  • preserve album directory year and version evidence by @jxxghp
  • retain untagged audio evidence and read native ID3 tags by @jxxghp
  • cache site allowlist and include custom image hosts by @jxxghp
  • allow configured site domains in image proxy by @jxxghp
  • clear stale state before reconnecting storage by @jxxghp
  • close shared redis pool once and keep redis caches across restarts by @InfinityPacer
  • use media aliases for English-only sites by @jxxghp
  • preserve global words for empty overrides by @jxxghp
  • make manual review notes optional by @jxxghp
  • preserve virtualenv python for autostart by @jxxghp
  • 修复安装向导资源读取与目录处理 by @jxxghp
  • sync music items with optional metadata (#6814) by @jxxghp
  • 站点搜索兜底失败信息附带状态码与页面标题 (#6819) by @Aqr-K
  • 请求上线前规整工具参数 schema,修复经 OpenAI 兼容网关调用 Gemini 时 400 (#6818) by @Aqr-K

🔧 其他

  • remove image scans and scan-driven runtime patches by @jxxghp
  • bump backend to v3.1.0 by @jxxghp
  • sync dependency metrics by @jxxghp
  • refresh dependency metrics by @jxxghp
  • refresh dependency baseline by @jxxghp
  • sync egress policy metrics by @jxxghp
  • sync Ruff baseline for mediaserver by @jxxghp
  • keep runtime guidance in English by @jxxghp
  • sync mypy debt metric by @jxxghp
  • bound dateparser languages for free-text dates by @InfinityPacer
  • load only the pinyin syllable table for music titles by @InfinityPacer
  • split batch matching into explicit phases by @freeman
  • refresh architecture baseline for vyo module by @jxxghp
  • merge: resolve v3 conflicts for vyo rename by @jxxghp
  • lower mypy baseline for plugin routes by @InfinityPacer
  • share default error-response fields across routes by @InfinityPacer
  • refresh official plugin baseline after AgentResourceOfficer removal by @InfinityPacer
  • mark lazy plugin SDK imports for pylint by @InfinityPacer
  • import Message from its defining module by @InfinityPacer
  • load FeishuModule for channel admin resolver registration by @InfinityPacer
  • replace lark-oapi with lightweight OpenAPI and long-connection clients by @InfinityPacer
  • send Web Push with http-ece and py-vapid instead of pywebpush by @InfinityPacer
  • replace pyTelegramBotAPI with a lightweight Bot API client by @InfinityPacer
  • replace line budgets with structural complexity gates by @jxxghp
  • resolve storage types after module reload by @jxxghp
  • sync search dependency metrics by @jxxghp
  • compose redis cache and agent memory only when used by @InfinityPacer
  • document plugin one-shot jobs in plugin authoring skill by @InfinityPacer
  • split architecture gate into parallel jobs and drop duplicate event policy run by @InfinityPacer
  • share architecture scans and stop rerunning gate tests in coverage shards by @InfinityPacer

完整更新记录: v3.0.10-1...v3.1.0

Don't miss a new MoviePilot release

NewReleases is sending notifications on new releases.