From 0aecb64ee0c10f89f6331bd7ff890937479f570f Mon Sep 17 00:00:00 2001 From: Brandon McAnsh Date: Fri, 24 Jul 2026 14:02:54 -0400 Subject: [PATCH] fix(deeplink): resolve tip card deeplinks on cold launch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On cold launch, MainRoot.buildNavGraphForLaunch bundles a tip-card deeplink into pendingAction (alongside OpenCashLink and Login) and MainRoot fires it eagerly via App.kt's onPendingAction callback. But that callback only handled OpenCashLink and Login — PresentTipCard fell into the no-op `else` branch and was dropped, and the subsequent `deepLink = null` erased the link before the fallback LaunchedEffect(deepLink, currentRoute) could recover it. The tip card was silently lost on every cold start. Warm launches were unaffected because the app is already past Loading, so the fallback effect (which does handle PresentTipCard) processes the link directly. Add the missing PresentTipCard branch to onPendingAction so it calls session.resolveTipCard(userId) eagerly, mirroring the cash-link path. The gap was introduced in c46c130eb (#1127), which wired PresentTipCard into buildNavGraphForLaunch and the fallback effect but not the eager onPendingAction dispatcher. --- .../app/src/main/kotlin/com/flipcash/app/internal/ui/App.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/flipcash/app/src/main/kotlin/com/flipcash/app/internal/ui/App.kt b/apps/flipcash/app/src/main/kotlin/com/flipcash/app/internal/ui/App.kt index b6ff8427e..51356c810 100644 --- a/apps/flipcash/app/src/main/kotlin/com/flipcash/app/internal/ui/App.kt +++ b/apps/flipcash/app/src/main/kotlin/com/flipcash/app/internal/ui/App.kt @@ -233,6 +233,8 @@ internal fun App( when (action) { is DeeplinkAction.OpenCashLink -> session.openCashLink(action.entropy) + is DeeplinkAction.PresentTipCard -> + session.resolveTipCard(action.userId) is DeeplinkAction.Login -> viewModel.handleLoginEntropy( action.entropy,