v0.3: SQLite persistence + ProjectService + dependency resolution

- New: services/sensu_db.py (SQLite, 5 tables)
- New: services/project_service.py (project registry, port allocation, dep resolution)
- Integrated into main.py (step 11.6)
- Tests: 23/23 passing (15 original + 8 new)
This commit is contained in:
2026-06-10 18:59:25 +08:00
parent c73e569958
commit d48ef65b35
4 changed files with 327 additions and 1 deletions
+16 -1
View File
@@ -23,7 +23,9 @@ from services.plugin_service import PluginService
from services.permission_service import PermissionService
from services.api_service import APIService
from services.shutdown_service import ShutdownService
from services.web_panel.manager import WebPanelManager
from services.web_panel.manager import WebPanelManager
from services.project_service import ProjectService
from services.sensu_db import SenSuDB
from bridges.core_bridge import CoreBridge
from bridges.plugin_bridge import PluginBridge
@@ -122,6 +124,8 @@ class CatFramework:
# 确保 internet_service 已经实例化(在第10步)
if internet_service:
from services.web_panel.manager import WebPanelManager
from services.project_service import ProjectService
from services.sensu_db import SenSuDB
# 初始化面板管理器
web_panel = WebPanelManager(base_config, self.service_manager)
@@ -130,6 +134,17 @@ class CatFramework:
if await web_panel.start():
self.service_manager.register_service("web_panel", web_panel)
logger.info("✅ Web 面板挂载完成")
# 11.6 项目注册表 + 数据库
logger.info("> 初始化 项目注册表 中...")
try:
db = SenSuDB("data/sensu.db")
project_service = ProjectService(self.service_manager, db)
await project_service.start()
self.service_manager.register_service("project", project_service)
logger.info("✅ 项目注册表就绪")
except Exception as e:
logger.warning(f"项目注册表初始化跳过: {e}")
else:
logger.warning("Web 面板初始化未完成")
except Exception as e: