feat(v0.4): TUI 系统监控面板 + 插件状态面板
v0.4.1 系统监控面板: - 复用共享 SystemInfoCollector (TUI + Web面板同一数据源) - CPU/MEM 彩色进度条 + 网络实时速率 - 2 秒刷新,set_interval 驱动 v0.4.2 插件状态面板: - 展示已加载插件的名称/版本/命令数 - 3 秒刷新,PluginService 延迟注入 SystemInfoCollector: - 注册为共享服务 (sys_collector) - Web panel status.py 优先从 service_manager 获取 - 零重复数据采集 TUI 布局升级: 3行 → 4行 (monitor + log + message + input) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,7 @@ import argparse
|
||||
from services.project_engine import ProjectEngine
|
||||
from services.pyenv_manager import PyEnvManager
|
||||
from services.proxy_service import ProxyService
|
||||
from services.web_panel.utils.system_info import SystemInfoCollector
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
@@ -62,6 +63,10 @@ class SenSuFramework:
|
||||
# 2.5 自动启动脚本 (日志服务就绪后)
|
||||
await init_service.start_auto_scripts()
|
||||
|
||||
# 2.6 系统信息采集器 (共享实例,TUI + Web面板共用)
|
||||
sys_collector = SystemInfoCollector()
|
||||
self.service_manager.register_service("sys_collector", sys_collector)
|
||||
|
||||
# 3. 核心桥接服务
|
||||
core_bridge = CoreBridge()
|
||||
await core_bridge.start()
|
||||
@@ -94,7 +99,10 @@ class SenSuFramework:
|
||||
self.service_manager.register_service("tui", self._create_fallback_tui())
|
||||
else:
|
||||
try:
|
||||
tui_service = TuiService(base_config, log_service, command_service)
|
||||
tui_service = TuiService(
|
||||
base_config, log_service, command_service,
|
||||
sys_collector=sys_collector,
|
||||
)
|
||||
await tui_service.start()
|
||||
self.service_manager.register_service("tui", tui_service)
|
||||
logger.info("TUI服务启动成功")
|
||||
@@ -122,6 +130,11 @@ class SenSuFramework:
|
||||
await plugin_service.start()
|
||||
self.service_manager.register_service("plugin", plugin_service)
|
||||
|
||||
# 将 plugin_service 注入 TUI 插件状态面板
|
||||
tui = self.service_manager.get_service("tui")
|
||||
if hasattr(tui, 'tui_app') and tui.tui_app:
|
||||
tui.tui_app.plugin_panel.set_plugin_service(plugin_service)
|
||||
|
||||
# === 🟢 新增: 11.5 Web管理面板初始化 (必须在网络服务启动前!) ===
|
||||
# 原因: aiohttp 启动后会“冻结”路由器,之后再挂载子应用会报错
|
||||
logger.info("> 初始化 Web 管理面板 中...")
|
||||
|
||||
Reference in New Issue
Block a user