Founder live-report, 2026-09-07, current main.
Repro
- Open the plugins / extensions page.
- Find an MCP server whose auth has gone stale (the ones showing a re-auth action).
- Activate re-auth.
- The entire UI freezes. While frozen, activating Diagnose does nothing.
Expected
- Re-auth should run in the background like the rest of the MCP login paths — the machinery already exists (
mcp_login_cell + mcp_login_cancel Esc handling), so the UI must stay responsive and show progress/receipt.
- Diagnose should run
/mcp validate for that server and surface a receipt, or at minimum stay clickable and report why it can't run.
Suspect area (anchors)
- Recovery-kind mapping in the extensions view:
crates/tui/src/tui/views/extensions.rs (~1144–1206; re-auth maps to /mcp login <server> per mcp_item_action_for_stale_oauth_is_login at ~1799).
McpRecoveryKind incl. Diagnose → /mcp validate: crates/tui/src/mcp.rs:4452–4538.
- Background login cell + cancel token:
crates/tui/src/tui/app.rs:2268–2273, delivery in crates/tui/src/tui/ui/event_loop.rs:1527–1538, Esc path in crates/tui/src/tui/ui/handlers.rs:568.
The freeze smells like work running synchronously on the UI thread (or input starved while a refresh holds a lock) in exactly the area #5971 touched this cycle (need-login-first + refresh receipts) — that merge is a reasonable bisect point.
Environment
- macOS, TUI, current main (post d5beab0).
Founder live-report, 2026-09-07, current main.
Repro
Expected
mcp_login_cell+mcp_login_cancelEsc handling), so the UI must stay responsive and show progress/receipt./mcp validatefor that server and surface a receipt, or at minimum stay clickable and report why it can't run.Suspect area (anchors)
crates/tui/src/tui/views/extensions.rs(~1144–1206; re-auth maps to/mcp login <server>permcp_item_action_for_stale_oauth_is_loginat ~1799).McpRecoveryKindincl.Diagnose→/mcp validate:crates/tui/src/mcp.rs:4452–4538.crates/tui/src/tui/app.rs:2268–2273, delivery incrates/tui/src/tui/ui/event_loop.rs:1527–1538, Esc path incrates/tui/src/tui/ui/handlers.rs:568.The freeze smells like work running synchronously on the UI thread (or input starved while a refresh holds a lock) in exactly the area #5971 touched this cycle (need-login-first + refresh receipts) — that merge is a reasonable bisect point.
Environment