From bc5d7bbf099d632182eb53e7d38a30d2c462a39e Mon Sep 17 00:00:00 2001 From: Matt Johnson Date: Mon, 6 Jul 2026 05:13:06 +0000 Subject: [PATCH] fix(gui): restart banner says 'Restart required' (process, not container recreate) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The banner said 'Container restart required' and a code comment claimed 'the container will tear down' — both wrong. /api/restart touches /tmp/meshai_restart, which the entrypoint watches to restart the BOT PROCESS in place (~seconds); the container is not recreated. Fix the copy + point users at the existing 'Restart now' button. Also mention transport connections in the restart-required list. Co-Authored-By: Claude Opus 4.8 (1M context) --- work/dashboard-frontend/src/components/RestartBanner.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/work/dashboard-frontend/src/components/RestartBanner.tsx b/work/dashboard-frontend/src/components/RestartBanner.tsx index ff53ce9..d8f882c 100644 --- a/work/dashboard-frontend/src/components/RestartBanner.tsx +++ b/work/dashboard-frontend/src/components/RestartBanner.tsx @@ -87,8 +87,9 @@ export default function RestartBanner() { const body = await res.json().catch(() => ({})) throw new Error(body.detail || `HTTP ${res.status}`) } - // Clear the banner immediately; the container will tear down and the - // dashboard will need a refresh anyway. + // Clear the banner immediately; the bot process restarts in place + // (a few seconds) and the dashboard briefly reconnects. The container + // itself is NOT recreated. clearRestartRequired() } catch (e) { setError(String(e)) @@ -106,7 +107,7 @@ export default function RestartBanner() {
- Container restart required + Restart required {state.changedKeys.length > 0 && ( ({state.changedKeys.length} key{state.changedKeys.length === 1 ? '' : 's'}:{' '} @@ -114,7 +115,7 @@ export default function RestartBanner() { )} - for these changes to take effect. Until then the runtime keeps its boot-time configuration. Restart-required keys include anything under Config → environmental (feed_source, central URL), the LLM backend swap, and the dispatcher cold-start grace window. Other keys take effect on the next handler call. +for these changes to take effect. Click Restart now — it restarts the bot process in place (a few seconds; the dashboard briefly reconnects), NOT the container. Until then the runtime keeps its boot-time configuration. Restart-required keys include transport connections and anything under Config → environmental (feed_source, central URL), the LLM backend swap, and the dispatcher cold-start grace window. Other keys take effect on the next handler call. {error &&
{error}
}