feat(agent-office): WS reconnect exponential backoff + status detail

- Replace fixed 3s reconnect with exponential backoff
  (1s/2s/4s/8s/16s/30s, capped). Reduces console noise when
  upstream WebSocket is blocked (e.g. DSM reverse proxy without
  WS upgrade headers).
- ws.onerror swallowed (onclose still schedules reconnect) so the
  browser stops printing an unhandled-error pair per attempt.
- Expose reconnectAttempt in hook; TopBar shows 'Connecting…'
  pre-first-attempt and 'Disconnected · 재연결 시도 #N' after.

Root cause of WS failure is upstream (curl proves the endpoint
itself is fine — see DSM reverse proxy WebSocket headers).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-18 08:25:18 +09:00
parent 0dce449124
commit b713f00bf9
3 changed files with 33 additions and 8 deletions

View File

@@ -10,7 +10,7 @@ import './AgentOffice.css';
export default function AgentOffice() {
const {
agents, pendingTasks, notifications, connected,
agents, pendingTasks, notifications, connected, reconnectAttempt,
refreshTrigger, clearNotifications
} = useAgentManager();
@@ -53,7 +53,7 @@ export default function AgentOffice() {
return (
<div className="ao-root">
<TopBar connected={connected} />
<TopBar connected={connected} reconnectAttempt={reconnectAttempt} />
<div className="ao-main">
<div className="ao-grid-wrap">
<AgentGrid