Aqr-K
|
6610a8c008
|
fix: retain plugin lifecycle ownership and recover installation state (#7146)
* fix: retain plugin lifecycle ownership and recover installation state
* test: cover plugin rollback and uninstall lifecycle boundaries
---------
Co-authored-by: jxxghp <jxxghp@gmail.com>
|
2026-10-23 07:44:07 +08:00 |
|
DDSRem
|
2de976f6b3
|
Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
docs: 统一全项目中文注释和结构化契约说明
|
2026-10-17 19:26:29 +08:00 |
|
jxxghp
|
7e24ce62c3
|
fix(plugin): restrict update badges to bound repositories
|
2026-10-16 12:29:20 +08:00 |
|
InfinityPacer
|
19e062c178
|
feat(plugin): attribute free-threaded GIL fallback to plugins (#6767)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-09-23 13:12:02 +08:00 |
|
InfinityPacer
|
3cef2149d0
|
fix(plugin): read the runtime compatibility gate from the declared snapshot (#6761)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-23 01:44:45 +08:00 |
|
moviepilot-codex[bot]
|
c0f7141e26
|
fix(plugin): invalidate federation static resource cache (#6748)
|
2026-09-21 16:24:38 +08:00 |
|
Aqr-K
|
2789440796
|
fix(plugin): 分身 ID 对外查询统一归一到源插件,并补齐认证远程入口的源插件字段 (#6680)
|
2026-09-14 07:01:18 +08:00 |
|
Aqr-K
|
57fb96fc3c
|
feat(plugin): 分身后缀可留空自动分配,并支持按后缀恢复已停用的分身 (#6673)
|
2026-09-14 07:00:31 +08:00 |
|
Aqr-K
|
5fd04505c1
|
feat(plugin): 分身彻底清理,并按包含性校验收口插件数据目录解析 (#6671)
|
2026-09-13 21:05:04 +08:00 |
|
Aqr-K
|
3d594ecee3
|
refactor(plugin): 插件配置改走独立通道,SystemConfig 不再按键值分支
插件配置此前借用 systemconfig 的 plugin.<实例ID> 单键,为了换表又在
SystemConfigOper 的 set/delete/load_snapshot 里按该前缀开分支。这是反向依赖:
一个对所有键一视同仁的通用键值存储被迫知道「插件」这个概念,读写路径依键值而
异,「这个键落在哪张表」只有读代码才说得清;规范方法按值加特例,也让此后任何新
键都要先确认自己会不会被拦截。
本次把插件配置整条链拆出,形状与本分支日志等级那条链一致:
- SystemConfigOper 整体回退到官方实现,与 f70d7c141 逐字节相同,对所有键一视同仁。
- 配置端口改按实例 ID 寻址:PluginStorage 新增 read_config / write_config /
async_write_config / delete_config,PluginConfigStore 去掉 key_prefix 与 _key,
不再有任何字符串键经过;plugin_exists 存在性规则、空键过滤与 force 语义不变。
- PluginInstanceOper 补齐读取与异步写入原语 get_config_data /
async_save_config_data,同步与异步共用同一份落库决策,避免两条路径对「值未变化
不写」和「建行用哪个源插件」各自分叉。
- _PluginBase 的 get_config / update_config 直连 PluginInstanceOper,方法名、签名、
返回与 docstring 不变;self.systemconfig 保留,插件读 SystemConfigKey 枚举值仍
然合法,插件公开面没有扩大。
插件直接用 SystemConfig 存取自身配置不予支持。它本就不是封装过的插件配置通道,
为它设计兼容或加守卫拦截,等于再把「插件」塞回通用存储里——那正是本次要拆掉的东
西。拆开后 plugin.<ID> 只是一个与插件无关的普通 systemconfig 键:迁移已经把旧的
plugin.* 行搬进插件实例表,读它拿到 None,写它会新增一条谁也不读的 systemconfig
记录,插件配置通道既不读也不写它,两边不会再有任何交叉。
代价是读取从内存快照变成一次按实例 ID 的主键查询。调用点都不在热路径上:宿主侧
只有插件启动/重载、配置表单接口与分身创建三处,插件侧 get_config() 惯例在
init_plugin 里取一次。写入侧没有变化,本来就是一次事务。
回归防线:新增用例断言 SystemConfigOper 对 plugin. 前缀没有任何特殊行为——写进去
就是一行普通 systemconfig 记录,读出来就是刚写的值,不会被路由到插件实例表。
兼容层零改动,三个 alembic 迁移一行未改。
|
2026-09-13 01:41:57 -04:00 |
|
InfinityPacer
|
814da86028
|
fix(plugin): avoid refreshing all repositories on update
|
2026-09-12 19:11:08 +08:00 |
|
jxxghp
|
03ec668fe3
|
test(runtime): align strict event mocks
|
2026-09-11 00:20:57 +08:00 |
|
jxxghp
|
e656793aa5
|
refactor(api): split management endpoint routers
|
2026-09-05 16:05:27 +08:00 |
|
jxxghp
|
f00853de2a
|
feat(api): expose frontend-safe management capabilities
|
2026-09-05 15:11:02 +08:00 |
|
jxxghp
|
adae5bd878
|
fix(api): restore full plugin catalog by default
|
2026-09-04 10:47:02 +08:00 |
|
jxxghp
|
d512f528be
|
refactor(api): make collection pagination explicit
|
2026-09-01 09:13:56 +08:00 |
|
jxxghp
|
a73714e5e7
|
feat(agent): add compatible collection pagination
|
2026-09-01 07:43:55 +08:00 |
|
jxxghp
|
d50177f45d
|
refactor(system): 收口系统 API 业务职责
|
2026-08-30 12:16:54 +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
|
f38637dcea
|
refactor(api): move host orchestration into application services
|
2026-08-29 10:27:57 +08:00 |
|
jxxghp
|
daf67dc71a
|
fix(plugin): restore compatible history lookup
|
2026-08-29 08:47:25 +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
|
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
|
d24c52ea97
|
fix(plugin): 按绑定仓库处理插件更新 (#6472)
|
2026-08-26 21:35:16 +08:00 |
|
InfinityPacer
|
ac2a2b1129
|
feat(plugin): persist declared metadata snapshots (#6467)
|
2026-08-26 13:15:12 +08:00 |
|
jxxghp
|
4dd2d7fed2
|
refactor: use explicit runtime facade getters
|
2026-08-24 03:56:54 +08:00 |
|
jxxghp
|
7f09927c47
|
refactor: own shutdown lifecycle boundaries
|
2026-08-23 20:20:26 +08:00 |
|
jxxghp
|
f1e542bef0
|
refactor: govern background tasks and query ownership
|
2026-08-23 13:24:04 +08:00 |
|
jxxghp
|
1bb6e36e8c
|
refactor: complete runtime configuration migration
|
2026-08-22 19:07:07 +08:00 |
|
jxxghp
|
7b9499fc5b
|
feat(plugin): add virtual plugin instances
|
2026-08-22 09:40:38 +08:00 |
|
InfinityPacer
|
b9bbc8913c
|
fix: 完善插件恢复与运行态收敛 (#6376)
|
2026-08-21 18:09:29 +08:00 |
|
jxxghp
|
5128ae9e1e
|
refactor: 推进后端分层架构治理
|
2026-08-18 00:29:14 +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 |
|
qqcomeup
|
099ef7d5bf
|
fix: avoid blocking plugin release history refresh (#6084)
|
2026-07-08 12:51:24 +08:00 |
|
InfinityPacer
|
2764742b86
|
fix(plugin): reset stopped plugin config and data (#6031)
|
2026-06-30 22:37:07 +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
|
93056ed1ff
|
feat(plugin): add pre-reset plugin data event (#5957)
|
2026-06-17 06:34:15 +08:00 |
|
jxxghp
|
93713ba662
|
feat: sync plugin markets from wiki
|
2026-06-14 12:57:40 +08:00 |
|
jxxghp
|
1c41d9f253
|
feat: add plugin history endpoint to fetch remote update details
|
2026-06-02 07:12:13 +08:00 |
|