Summary
Connect all currently has inconsistent disconnect/reconnect behavior across Slack, WhatsApp, and Google Workspace. Users can get into stale auth states (or repeated “Connect again” prompts), and there is no unified, reliable way to reset and reconnect all tools from the UI.
Affected Tools
- Slack
- WhatsApp
- Google Workspace
Reproduction (generic)
- Open
Connect all popup.
- Connect one or more tools (Slack/WhatsApp/Google Workspace).
- Attempt to disconnect and reconnect from the UI.
- Observe status inconsistencies (e.g., still connected, or stuck on connect/reconnect loop).
Actual behavior
- Disconnect/reconnect UX is inconsistent per tool.
- Google Workspace and Slack do not expose explicit backend disconnect endpoints in current webui routes.
- WhatsApp has a disconnect endpoint, but overall
Connect all behavior is not unified.
- Status checks rely on cached/local session state in places, which can keep stale “connected” state.
Expected behavior
- Every connector should support first-class disconnect and reconnect from
Connect all.
- Disconnect should clear provider sessions for the current user and immediately reflect
Connect in UI.
- Reconnect should start from a clean state and reliably land in
Connected.
- UX should be consistent across all three tools.
Repo-level observations
- Google Workspace routes include authorize/callback/status, but no disconnect route:
webui/google_workspace_oauth.py
- Slack route includes status, but no disconnect route:
- WhatsApp includes explicit disconnect route:
webui/whatsapp_qr.py (DELETE /disconnect)
- Frontend toggle/status orchestration is centralized in:
Proposed fix
- Add disconnect endpoints for Slack and Google Workspace (parallel to WhatsApp disconnect semantics).
- Standardize provider session cleanup (
oauth_session) per user/provider on disconnect.
- In
Connect all, treat disconnect as source-of-truth state reset (clear temporary success flags and force status refresh).
- Harmonize status polling and reduce stale local/cached “connected” display.
- Add integration tests for connect -> disconnect -> reconnect for each tool.
Impact
- Users cannot reliably self-recover from stale auth state.
- Increased support burden and confusion in tool onboarding/use.
Summary
Connect allcurrently has inconsistent disconnect/reconnect behavior across Slack, WhatsApp, and Google Workspace. Users can get into stale auth states (or repeated “Connect again” prompts), and there is no unified, reliable way to reset and reconnect all tools from the UI.Affected Tools
Reproduction (generic)
Connect allpopup.Actual behavior
Connect allbehavior is not unified.Expected behavior
Connect all.Connectin UI.Connected.Repo-level observations
webui/google_workspace_oauth.pywebui/slack_oauth.pywebui/whatsapp_qr.py(DELETE /disconnect)webui/custom.jsProposed fix
oauth_session) per user/provider on disconnect.Connect all, treat disconnect as source-of-truth state reset (clear temporary success flags and force status refresh).Impact