feat: Core Plugin system — is_core flag, topological sort dependency resolution, deactivation protection

This commit is contained in:
leocrm-bot
2026-07-07 07:44:02 +02:00
parent 1694b14c55
commit bb4b0ce514
8 changed files with 147 additions and 1 deletions
+2 -1
View File
@@ -112,7 +112,7 @@ async def lifespan(app: FastAPI):
async_session = async_sessionmaker(get_engine(), expire_on_commit=False)
async with async_session() as db:
for name in registry._plugins:
for name in registry.resolve_load_order():
plugin = registry.get_plugin(name)
if plugin is None:
continue
@@ -131,6 +131,7 @@ async def lifespan(app: FastAPI):
version=plugin.manifest.version,
status="installed",
active=True,
is_core=plugin.manifest.is_core,
)
db.add(plugin_record)
await db.flush()