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: () => {