From c91b79b6e2e6a77bd44a301689e995288f080a79 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 28 Feb 2026 22:25:11 -0800 Subject: [PATCH] Scope upstream refresh in checkout effect lifecycle - Replace fire-and-forget `Effect.runPromise` call with `Effect.forkScoped` - Keep checkout responsive while tying upstream refresh to scoped effect management --- apps/server/src/git/Layers/GitCore.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/server/src/git/Layers/GitCore.ts b/apps/server/src/git/Layers/GitCore.ts index 8807918c0ff5686b647f6beedb18911eaa448c5a..06bb75afa8ee0fff54eddf963c3b3b20ac3c511b 100644 --- a/apps/server/src/git/Layers/GitCore.ts +++ b/apps/server/src/git/Layers/GitCore.ts @@ -1167,11 +1167,9 @@ const makeGitCore = Effect.gen(function* () { }); // Refresh upstream refs in the background so checkout remains responsive. - yield* Effect.sync(() => { - void Effect.runPromise( - refreshCheckedOutBranchUpstream(input.cwd).pipe(Effect.catch(() => Effect.void)), - ); - }); + yield* Effect.forkScoped( + refreshCheckedOutBranchUpstream(input.cwd).pipe(Effect.catch(() => Effect.void)), + ); }); const initRepo: GitCoreShape["initRepo"] = (input) => -- 2.54.0