From b68d6f51b2969524b56ebababbb905dee4f065e7 Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Tue, 21 Jul 2026 20:38:13 -0700 Subject: [PATCH] fix(mobile-pairing): keep recovery alert actionable --- mobile/src/transport/rpc-client-unauthorized-close.test.ts | 5 +++++ src/renderer/src/hooks/useIpcEvents.ts | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mobile/src/transport/rpc-client-unauthorized-close.test.ts b/mobile/src/transport/rpc-client-unauthorized-close.test.ts index 71d0414d2e8..5fb4ab18e40 100644 --- a/mobile/src/transport/rpc-client-unauthorized-close.test.ts +++ b/mobile/src/transport/rpc-client-unauthorized-close.test.ts @@ -100,6 +100,11 @@ describe('unauthorized close-code mapping (silent 4001)', () => { } expect(client.getState()).toBe('auth-failed') + expect(mockSockets).toHaveLength(3) + expect(vi.getTimerCount()).toBe(0) + + await vi.advanceTimersByTimeAsync(10 * 60_000) + expect(mockSockets).toHaveLength(3) client.close() }) diff --git a/src/renderer/src/hooks/useIpcEvents.ts b/src/renderer/src/hooks/useIpcEvents.ts index 7148190b770..a217e2add98 100644 --- a/src/renderer/src/hooks/useIpcEvents.ts +++ b/src/renderer/src/hooks/useIpcEvents.ts @@ -1188,7 +1188,8 @@ export function useIpcEvents(): void { 'auto.hooks.useIpcEvents.11992d0337', 'If this was your phone or another Orca client, re-pair it from Settings → Mobile.' ), - duration: 15_000, + // Why: main emits this recovery path once per session, so it must remain visible until acted on or dismissed. + duration: Infinity, action: { label: translate('auto.hooks.useIpcEvents.6573cfe955', 'Open Mobile Settings'), onClick: () => {