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) <noreply@anthropic.com>
This commit is contained in:
2026-04-06 06:58:03 +00:00
parent 69fd5ae0c4
commit d2a2d28b01
+15 -2
View File
@@ -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")