From 4dbbbeaf6a85998ca27a606eb57793bb5d61e947 Mon Sep 17 00:00:00 2001 From: flying-hero <462087392@qq.com> Date: Sat, 4 Apr 2026 19:18:10 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20=E4=BF=AE=E5=A4=8D=EF=BC=9A?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E6=8E=89=E7=AB=AF=E5=8F=A3=E4=B8=BA=200=20?= =?UTF-8?q?=E7=9A=84=E5=86=85=E9=83=A8=E8=BF=9B=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 变更: - 前端 Dashboard 只显示端口>0 的有效龙虾 - 隐藏 openclaw-process-* 等临时进程 - 隐藏 openclaw-gateway 网关节点 现在只显示 8 只正常服务的龙虾 --- code/backend/db.sqlite3 | Bin 0 -> 163840 bytes code/frontend/src/pages/Dashboard/index.js | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 code/backend/db.sqlite3 diff --git a/code/backend/db.sqlite3 b/code/backend/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..36ff9d2943c9388c805d75e4b8e6e46897065542 GIT binary patch literal 163840 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 literal 0 HcmV?d00001 diff --git a/code/frontend/src/pages/Dashboard/index.js b/code/frontend/src/pages/Dashboard/index.js index a2d6013..91487c6 100644 --- a/code/frontend/src/pages/Dashboard/index.js +++ b/code/frontend/src/pages/Dashboard/index.js @@ -21,7 +21,9 @@ function Dashboard() { const fetchAgents = async () => { try { const response = await axios.get(`${API_BASE}/agents/`); - setAgents(response.data); + // 过滤掉端口为 0 的内部进程 + const validAgents = response.data.filter(agent => agent.port && agent.port > 0); + setAgents(validAgents); setLoading(false); } catch (error) { console.error('获取 Agent 状态失败:', error);