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}
}