Commit Graph

30 Commits

Author SHA1 Message Date
ranzhigg
f10af54404 fix(plugin-market): share index request limits 2026-09-09 07:48:40 +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
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
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
jxxghp
988b425510 fix(plugin): preserve market package generation 2026-08-27 22:46:03 +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
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
InfinityPacer
71db425c07 feat(plugin): 建立可信来源准入与安装恢复 (#6462) 2026-08-26 07:52:00 +08:00
jxxghp
820582ab12 refactor: close plugin shutdown mutation races 2026-08-23 21:55:22 +08:00
jxxghp
7f09927c47 refactor: own shutdown lifecycle boundaries 2026-08-23 20:20:26 +08:00
InfinityPacer
6c2817e383 fix(plugin): close cancellable install lifecycle gaps 2026-08-23 14:26:42 +08:00
jxxghp
d36795ec4d refactor: route runtime extension settings through port 2026-08-23 02:53:48 +08:00
jxxghp
1a71e4809f feat: wire host database and extension metrics 2026-08-22 13:22:33 +08:00
InfinityPacer
a90a0e8597 fix: upgrade web dependencies and stabilize plugin routes (#6383) 2026-08-22 09:47:13 +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
InfinityPacer
23f5d59c74 feat: 使用 uv 锁定主程序依赖并强化插件恢复边界 (#6364) 2026-08-20 12:17:19 +08:00
jxxghp
8d62f33155 fix(plugin): 修复坏插件模块声明击穿模块调度导致接口大面积报错
- projection 只接受映射类型的 get_module 声明,非法值跳过并记日志
- dispatcher 同步/异步路径防御非映射方法表,单个坏插件被隔离
- media 端点改用 application 层插件运行时门面,消除分层违规依赖
- 图片能力测试打桩 models.dev 目录边界,适配仓库内离线目录留空

Closes #6346
2026-08-18 15:53:28 +08:00
jxxghp
dc23977b0c fix: 修复站点用户数据转换并完善媒体来源扩展 2026-08-18 14:50:09 +08:00
jxxghp
8472bcff43 refactor: 收口 V3 分层架构与插件兼容边界 2026-08-18 13:22:02 +08:00
jxxghp
5128ae9e1e refactor: 推进后端分层架构治理 2026-08-18 00:29:14 +08:00