From d2a2d28b01bbc737c8c8b7b463ef0b0331ad2d3f Mon Sep 17 00:00:00 2001 From: Chaim Date: Mon, 6 Apr 2026 06:58:03 +0000 Subject: [PATCH] feat: auto-sync extension registry from Gitea on startup Every time the server starts (including after deploy), it syncs the extension registry from Gitea before serving requests. Co-Authored-By: Claude Opus 4.6 (1M context) --- server.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/server.py b/server.py index 440b0ef..b435300 100644 --- a/server.py +++ b/server.py @@ -993,8 +993,21 @@ class APIHandler(BaseHTTPRequestHandler): if __name__ == '__main__': - # Load modules from DB; fall back to static list if DB unavailable - _load_modules_from_db() + # Sync extensions from Gitea and load into DB on every startup + try: + result = sync_extension_registry() + if result['status'] == 'ok': + changes = result['added'] + result['reactivated'] + result['deactivated'] + if changes: + print(f"[init] Registry synced — added: {result['added']}, reactivated: {result['reactivated']}, deactivated: {result['deactivated']}") + else: + print(f"[init] Registry synced — no changes ({len(MODULES)} modules)") + else: + print(f"[init] Registry sync failed: {result.get('message', '')}") + _load_modules_from_db() + except Exception as e: + print(f"[init] Registry sync error: {e}") + _load_modules_from_db() if not MODULES: MODULES.update(_MODULES_FALLBACK) print(f"[init] Using static fallback: {len(MODULES)} modules")