jxxghp
be65e047b0
fix(plugin): support mirrors for Release asset downloads ( #7224 )
2026-10-27 22:21:48 +08:00
DDSRem
2de976f6b3
Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
...
docs: 统一全项目中文注释和结构化契约说明
2026-10-17 19:26:29 +08:00
InfinityPacer
0238351071
fix(plugin): v3t 下不再隐藏不兼容插件,改为提示不支持 ( #6760 )
...
* feat(plugin): surface v3t incompatibility instead of hiding plugins
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
* chore(architecture): refresh dependency baseline after plugin gate split
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
* fix(plugin): keep runtime-incompatible plugins out of startup sync
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
* fix(plugin): annotate runtime compatibility ports without bare dict
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com >
2026-09-23 00:35:20 +08:00
Aqr-K
5c01cdddb3
fix(plugin): 插件安装改为暂存后原子换入,避免下载失败删掉已装插件 ( #6678 )
2026-09-14 07:00:50 +08:00
jxxghp
c60949ffff
Merge branch 'v3' into feat/plugin-instance-config-logging
2026-09-13 14:30:42 +08:00
jxxghp
8072b7d78f
Refactor application architecture and compatibility boundaries
2026-09-13 12:53:00 +08:00
Aqr-K
4dbb8b8204
feat(plugin): 插件配置与实例描述符迁入独立表
...
插件配置此前寄存在 systemconfig 的 plugin.<实例ID> 单键下,实例描述符则整份挤在
PluginInstances 这一个 JSON 键里,两者都不成立:
- plugin.<ID> 是裸字符串 key,而仓库规则本身禁止用裸字符串做 SystemConfig key,
只允许先定义 SystemConfigKey 枚举项;插件 ID 由用户安装决定,永远枚举不出常量。
条目数随安装量增长,混在系统设置表里会把主程序自己的设置项淹掉。
- 那个键存的其实是实例 ID,表里没有任何一列说得出它属于哪个插件,想列出某个插件
的全部实例配置只能靠字符串前缀去猜。
- 实例描述符整份读出再整份写回,改一个分身要重写全部分身。
改为 plugininstance 一实例一行:instance_id 与 source_plugin_id 构成身份,本体与
分身由两者是否相等派生而不设模式列——模式列会是这个等式的冗余副本,两者一旦失步
同一行就会在不同读取口被判成不同角色。展示信息与业务参数同存一行,属于同一个
生命周期,分表只会让建分身、删分身退化成两张表之间的协调问题。
读写路由落在 SystemConfigOper.get/set/delete,而不是在各个调用方各改一处:第三方
插件可能直接用 self.systemconfig.get("plugin.xxx") 读写自己的配置,只改
PluginConfigStore 与 _PluginBase.get_config/update_config 必然漏掉它们。路由只做
前缀识别,插入、更新与空本体行回收都委托 PluginInstanceOper,不在配置层重抄一遍。
PluginInstances 旧键迁移后不删,留作回滚依据,并以
SystemConfigKey.PluginInstancesImported 标志防止重复导入;判据不能是「表当前为空」,
否则用户把分身全部删光后,下次启动会把它们整批导回来。
迁移链:b2d4f6a8c1e3 -> 281965691a20(3.0.34 建表并搬描述符)
-> c4e1a7b9d2f6(3.0.35 加 config_data 并搬 plugin.* 配置)。
依赖基线与启动模块数随两个新模块重算,架构文档与数据库技能表目录同步登记新表。
2026-09-12 17:39:36 -04:00
jxxghp
d8fd39d6ea
test: publish install readiness atomically and sync quality metrics
2026-09-09 23:53:30 +08:00
jxxghp
0c05956814
refactor(architecture): enforce module naming policy
2026-08-29 22:17:17 +08:00
jxxghp
fa40f29dfd
refactor(plugin): converge runtime ownership and compatibility
2026-08-29 12:55:52 +08:00
jxxghp
13fba96fd8
refactor(runtime): govern dependency module naming
2026-08-29 08:14:21 +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
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
InfinityPacer
71db425c07
feat(plugin): 建立可信来源准入与安装恢复 ( #6462 )
2026-08-26 07:52:00 +08:00
InfinityPacer
34f59bc9f4
fix(plugin): filter declared uv dependency exclusions ( #6437 )
2026-08-24 20:06:57 +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
10582277e2
refactor: unify plugin file operation cancellation
2026-08-24 03:17:07 +08:00
jxxghp
579226612a
refactor: own plugin release requests
2026-08-24 00:41:09 +08:00
InfinityPacer
3fa8ddf63a
fix(plugin): close cancellation compensation gaps
2026-08-23 14:47:17 +08:00
InfinityPacer
14ec4c6eae
test(plugin): verify real cancellation cleanup
2026-08-23 14:26:43 +08:00
InfinityPacer
0378eabb8f
fix(plugin): make installation lifecycle cancellable
2026-08-23 14:26:42 +08:00
InfinityPacer
2d80f9f04f
fix(plugins): preserve dependency manifest sources ( #6370 )
2026-08-20 20:51:35 +08:00
InfinityPacer
23f5d59c74
feat: 使用 uv 锁定主程序依赖并强化插件恢复边界 ( #6364 )
2026-08-20 12:17:19 +08:00
jxxghp
5128ae9e1e
refactor: 推进后端分层架构治理
2026-08-18 00:29:14 +08:00
Aqr-K
8a11214a43
refactor(db): 修复异步连接池无界增长,并完成 SQLAlchemy 2.0 迁移与分层归位 ( #6320 )
2026-08-15 06:58:38 +08:00
jxxghp
369d7d6448
refactor: reorganize backend module boundaries
2026-08-14 19:53:33 +08:00
jxxghp
7b3444c366
refactor backend module architecture
2026-08-14 15:45:38 +08:00
jxxghp
ca32922a7f
refactor(media): unify media identity and chain responsibilities
2026-08-12 18:31:09 +08:00
jxxghp
4570a7b74a
feat: 修复插件市场空白和API缓存 ( #6253 )
2026-08-08 21:40:06 +08:00
jxxghp
1d708870c9
fix: avoid blocking plugins on pre-existing pip errors
2026-07-21 08:25:03 +08:00
InfinityPacer
770201c48c
fix(plugin): exclude build dependencies from runtime copies ( #6096 )
2026-07-11 18:15:00 +08:00
qqcomeup
099ef7d5bf
fix: avoid blocking plugin release history refresh ( #6084 )
2026-07-08 12:51:24 +08:00
InfinityPacer
ab5995a609
fix(security): contain plugin zip extraction ( #6051 )
2026-07-05 09:26:09 +08:00
jxxghp
c1cefa3f40
Rename package installer helper to package
2026-06-23 13:45:55 +08:00
InfinityPacer
0c53fb86fd
feat(deps): add uv-backed package installer ( #5987 )
...
* feat(deps): add uv-backed package installer
* feat(deps): support package cache root
2026-06-23 13:36:15 +08:00
jxxghp
4d87bf8d53
fix(plugin): normalize market labels
2026-06-19 08:59:50 +08:00
InfinityPacer
84eee40e81
fix(plugin): optimize release cache loading ( #5966 )
2026-06-18 18:52:28 +08:00
InfinityPacer
69ed70cc66
feat(plugin): support installing release versions ( #5964 )
2026-06-18 15:47:07 +08:00
InfinityPacer
51c2843dd0
fix(plugin): clean release fallback before retry ( #5930 )
2026-06-12 19:08:18 +08:00
InfinityPacer
10dcb3727e
fix(plugin): fall back when release package is unavailable ( #5929 )
2026-06-12 13:26:35 +08:00
InfinityPacer
791f1fe4ac
test: 共享测试 harness 入 app/testing(网络守卫 + 引导)并统一 sys.modules 打桩原语 ( #5888 )
2026-06-03 18:34:20 +08:00
jxxghp
0e5c592862
refactor: centralize MoviePilot server helper
2026-05-27 12:56:45 +08:00
jxxghp
b7f6ee12ee
fix: 强制刷新插件市场绕过远端缓存
2026-05-24 20:28:45 +08:00
jxxghp
ee9eced2f1
fix: avoid blocking event loop during plugin install
2026-05-21 09:16:42 +08:00
jxxghp
c52ccaf75f
feat: add plugin system version compatibility checks
2026-05-20 19:55:44 +08:00
jxxghp
f0bc1bd681
fix: prevent storage operations in preview mode and add tests for transfer preview logic
2026-05-13 13:39:57 +08:00
jxxghp
ac090af606
feat(plugin): enhance dependency management by protecting main program dependencies and refining runtime constraints
2026-05-12 12:38:17 +08:00
jxxghp
1b2433f7c2
feat: implement runtime dependency checks and recovery for plugin installations
2026-05-11 08:54:34 +08:00
InfinityPacer
a59afe4cc9
fix(plugin): avoid clearing runtime modules after dependency install
2026-05-08 18:38:09 +08:00