jxxghp
02686ed674
feat(search): merge music artists into person search
2026-09-10 09:02:17 +08:00
jxxghp
53f7012b6b
feat(music): add AMLL TTML lyrics source
2026-09-09 23:53:30 +08:00
jxxghp
17eaf47c34
refactor(music)!: remove Musixmatch and expose lyrics plugin types
...
BREAKING CHANGE: remove the Musixmatch module and settings without migration. Lyrics providers can use the public music candidate SDK and existing plugin module hook.
2026-09-09 23:04:20 +08:00
ranzhigg
f10af54404
fix(plugin-market): share index request limits
2026-09-09 07:48:40 +08:00
jxxghp
d0c894f5eb
fix(transfer): close durable error recovery loop
2026-09-08 22:38:59 +08:00
thsrite
d04b721f84
feat(mediaserver): 新增 MediaVault 自建媒体库模块
...
通过 MediaVault 管理端口的原生接口接入自建媒体库,凭据为管理面板的长效 API Key:
- 媒体库列表、条目分页遍历、条目详情与总数
- 按标题/年份/媒体身份判断电影与剧集存在性,季集齐全度与季集条目 ID
- 数量统计、最近入库、继续观看、封面与背景图直链、播放地址
- 入库后按目标路径命中媒体库并排队后台扫描,未命中时回退全库扫描
- 用 MediaVault 账号完成 MoviePilot 用户认证
MediaVault 无音乐库也不外发 Webhook,get_music 与 webhook_parser 不实现;
图片直链自带 API Key,无需 mediaserver_image_cookies。
同时把 mediavault 接入 mediaserver-operation Agent Skill 的 provider 清单。
2026-09-07 13:49:10 +08:00
InfinityPacer
b8fd1b9958
修复非模块组件配置变更未触发热重载 ( #6569 )
...
* fix(event): bind config reload lifecycle owners
* chore(architecture): update config reload dependency baseline
* fix(event): preserve config resolver type contracts
2026-09-04 03:43:49 +08:00
InfinityPacer
43af5b5282
fix(module): bind config reload to module manager ( #6568 )
2026-09-04 01:34:29 +08:00
jxxghp
71147c1d96
feat(classification): support multi-source media rules
2026-09-03 11:51:18 +08:00
Aqr-K
d7c5955031
fix(plugin): 插件自有数据库释放与销毁全程容错,并修正建表去重与 schema 命名
...
release/destroy 统一经 _close_handle 先清线程局部会话再 dispose,两步失败都
只记日志:单个插件的连接池故障不再让 close_database 跳过宿主同步与异步引擎的
释放,release_all_databases 也逐插件隔离。按模型建表对 __table__ 去重,单表
继承的父子类一并声明时不再对同一张表建两次。
卸载编排先删插件数据、后停插件,停机钩子里的 get_database() 会把刚销毁的库
重新建出来:注册表记下已销毁的插件标识,其后的 release 改为再次销毁并清除
标记,ensure 则撤销标记,宿主编排代码不动。PostgreSQL schema 名在归一改写过
标识或超长时追加插件标识哈希并截到 63 字节,My-Plugin、My_Plugin 与
my_plugin 不再折叠到同一个 schema 而在卸载时互相 DROP。
start 的失败分支释放已经建立、却进不了运行态的句柄,整体停止把只登记在
_classes 里的插件一并释放。声明的迁移目录不存在时在建句柄之前抛
FileNotFoundError,不再留下空库;SQLite 迁移 URL 改由引擎渲染;
_get_sqlite_engine 的连接参数下沉到实际使用它的异步分支。
2026-09-02 02:14:19 -04:00
Aqr-K
f4c5549a37
feat(plugin): 接线插件自有数据库生命周期
...
新增 app/runtime/extensions/plugin/database.py 运行时端口(零 app.db 依赖),
PluginLifecycle.start 在 init_plugin 之后建库、_finalize 只释放不销毁;
PluginConfigStore.delete_data 在删除宿主业务数据后销毁插件自有库;
组合根 app/startup/initializers/plugins.py 把端口装配到 db 层实现。
覆盖 start→ensure / stop·reload·remove→release / delete_data→destroy
三条接线与失败策略。
2026-09-02 02:14:19 -04:00
jxxghp
0c05956814
refactor(architecture): enforce module naming policy
2026-08-29 22:17:17 +08:00
jxxghp
c1f50f6d3f
refactor(runtime): unify paired decision flows
2026-08-29 19:58:33 +08:00
jxxghp
2116ccecf9
refactor(startup): enforce symmetric lifecycle cleanup
2026-08-29 18:59:14 +08:00
jxxghp
808f2439ef
refactor(startup): add provider reset contracts
2026-08-29 17:57:01 +08:00
InfinityPacer
dba4ddc168
fix(plugin): 增加插件市场元数据边界 ( #6495 )
...
* fix(plugin): bound market metadata inputs
* test(architecture): sync plugin metadata baseline
* fix(plugin): narrow validated metadata identifiers
* test(architecture): sync coverage baseline
2026-08-29 15:23:33 +08:00
jxxghp
fa40f29dfd
refactor(plugin): converge runtime ownership and compatibility
2026-08-29 12:55:52 +08:00
InfinityPacer
92066dfad4
feat: 完成插件原生依赖重启激活闭环 ( #6491 )
...
* feat(plugins): track native dependency activation
* fix(plugins): finalize native restart state lifecycle
2026-08-29 02:10:50 +08:00
InfinityPacer
513d867dd6
fix(plugin): suppress delayed install reloads ( #6484 )
2026-08-27 23:28:09 +08:00
jxxghp
988b425510
fix(plugin): preserve market package generation
2026-08-27 22:46:03 +08:00
jxxghp
f134e068e7
refactor: normalize capability module paths
2026-08-27 22:20:38 +08:00
InfinityPacer
011ebfbe5f
fix: 协调本地插件与绑定仓库的版本选择 ( #6482 )
...
* fix(plugin): reconcile local and bound payload versions
* fix(plugin): preserve bound source on updates
* fix(plugin): normalize source reconciliation ids
* fix(plugin): defer local payload activation
* fix(plugin): centralize startup source admission
* fix(plugin): derive sync mode from admitted source
2026-08-27 20:03:30 +08:00
jxxghp
23bff6b2bb
refactor: add durable transfer planning checkpoints
2026-08-27 13:16:33 +08:00
InfinityPacer
3b7f8c357d
fix: 增加插件 V3t 运行时兼容门禁 ( #6475 )
...
* fix(plugin): enforce declared runtime compatibility
* chore(ci): record plugin runtime compatibility edges
---------
Co-authored-by: jxxghp <jxxghp@gmail.com >
2026-08-27 07:06:16 +08:00
InfinityPacer
627775c090
fix(plugin): 按绑定仓库保留更新候选 ( #6474 )
...
* fix(plugin): preserve repository update candidates
* chore(ci): sync architecture ratchet baselines
* chore(ci): align canonical coverage baseline
* chore(ci): align coverage ratchet baseline
2026-08-27 06:56:33 +08:00
InfinityPacer
7c81fb357f
fix(plugin): 收敛市场安装与运行态错误处理 ( #6470 )
2026-08-26 18:00:49 +08:00
jxxghp
9dbe424c3d
refactor(config): retire RuntimeSettingsCompat host usage
2026-08-26 15:55:21 +08:00
jxxghp
e02418bace
feat(media): aggregate aliases from enabled metadata sources
2026-08-26 13:45:03 +08:00
InfinityPacer
71db425c07
feat(plugin): 建立可信来源准入与安装恢复 ( #6462 )
2026-08-26 07:52:00 +08:00
jxxghp
574c50586e
feat(music): 完善歌词与专辑目录整理
2026-08-25 21:02:26 +08:00
InfinityPacer
adbeff95d0
fix(plugin): serialize dynamic route projection ( #6441 )
2026-08-25 06:40:43 +08:00
InfinityPacer
326b5cf3ad
feat: 新增 Python 3.14t 自由线程镜像 ( #6434 )
...
* fix(resource): select free-threaded extension ABI
* chore(deps): require moviepilot-rust 0.2.9
* perf: add free-threaded runtime comparison
* feat: add free-threaded runtime profile
* chore(deps): require moviepilot-rust 0.3.0
* test: isolate system endpoint import graph
* fix(docker): preserve runtime profile during recovery
* feat(runtime): expose active GIL state
* feat(plugin): log GIL fallback attribution
* test: refresh runtime observability dependency baseline
* fix(plugin): validate the active uv runtime profile
* test(runtime): expand free-threaded benchmark evidence
* docs(runtime): define v3t governance gates
* test(runtime): separate rust benchmark modes
* docs: sync free-threaded architecture baseline
* perf: add PostgreSQL driver comparison
* docs(runtime): record final free-threaded evidence
* fix(runtime): converge dual-profile dependency verification
* fix(runtime): scope Python 3.14 warning filter
* fix(runtime): match actual oss2 syntax warning
* docs(runtime): refresh free-threaded benchmark evidence
* test(architecture): refresh runtime dependency baseline
* ci: skip unused Trivy Java database
* build: exclude local verification artifacts
* docs(runtime): refresh PostgreSQL driver benchmarks
* docs(runtime): record plugin restore acceptance
* docs(runtime): record amd64 candidate acceptance
* ci: pin beta image publisher action
* test(architecture): merge runtime dependency baseline
* feat(runtime): expose Python GIL status
* docs(runtime): document Python runtime status fields
2026-08-24 17:48:14 +08:00
jxxghp
009631b8ee
refactor: unify capability shutdown convergence
2026-08-24 13:48:11 +08:00
jxxghp
52fd495d38
refactor: normalize downloader file contracts
2026-08-24 02:10:04 +08:00
jxxghp
83318b12c0
refactor: enforce module fanout contracts
2026-08-24 02:02:01 +08:00
jxxghp
19653b1437
refactor: type recognition module contracts
2026-08-24 01:58:36 +08:00
jxxghp
3e4e182ff9
refactor: type routed module contracts
2026-08-24 01:55:27 +08:00
jxxghp
9712803b8d
refactor: type music module contracts
2026-08-24 01:50:01 +08:00
jxxghp
f655051c85
refactor: unify tmdb query contracts
2026-08-24 01:47:47 +08:00
jxxghp
488b3667bb
refactor: unify anilist module contracts
2026-08-24 01:45:49 +08:00
jxxghp
903d1d3c4d
refactor: unify bangumi module contracts
2026-08-24 01:44:06 +08:00
jxxghp
ce27732064
refactor: unify douban module contracts
2026-08-24 01:42:34 +08:00
jxxghp
8f6456be6c
refactor: unify discovery module contracts
2026-08-24 01:40:39 +08:00
jxxghp
c41492e56c
refactor: type host lookup contracts
2026-08-24 01:38:27 +08:00
jxxghp
bb80c10a0b
refactor: type storage value contracts
2026-08-24 01:35:42 +08:00
jxxghp
e359bbace9
refactor: type media server contracts
2026-08-24 01:33:04 +08:00
jxxghp
bc8e4e75e3
refactor: unify media capability contracts
2026-08-24 01:15:09 +08:00
jxxghp
14e70208a2
refactor: type downloader action contracts
2026-08-24 01:11:47 +08:00
jxxghp
f37407d0f3
fix: merge downloader tracker mappings
2026-08-24 01:08:45 +08:00
jxxghp
b0c4809d1a
refactor: type high-value module contracts
2026-08-24 01:03:57 +08:00