From 90074e359f360bd7983661757ccf995524b9dbaa Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 20 Jun 2026 20:20:07 -0700 Subject: [PATCH] [codex] Preserve desktop update state causes (#3473) Co-authored-by: codex --- apps/web/src/state/desktopUpdate.test.ts | 11 ++++++++--- apps/web/src/state/desktopUpdate.ts | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/apps/web/src/state/desktopUpdate.test.ts b/apps/web/src/state/desktopUpdate.test.ts index f6b3081a80fb1659505115e3c96445a2231df83b..a2bcbd19a33f573288fca4700aea3b88b823b8c9 100644 --- a/apps/web/src/state/desktopUpdate.test.ts +++ b/apps/web/src/state/desktopUpdate.test.ts @@ -3,7 +3,7 @@ import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; import { AtomRegistry } from "effect/unstable/reactivity"; import { afterEach, describe, expect, it, vi } from "vite-plus/test"; -import { createDesktopUpdateStateAtom } from "./desktopUpdate"; +import { createDesktopUpdateStateAtom, DesktopUpdateStateReadError } from "./desktopUpdate"; const baseState: DesktopUpdateState = { enabled: true, @@ -117,8 +117,13 @@ describe("desktopUpdateStateAtom", () => { errorTag: "DesktopUpdateStateReadError", attemptCount: 3, }); - expect(errorContext).not.toHaveProperty("error"); - expect(errorContext).not.toHaveProperty("cause"); + const loggedError = (errorContext as { readonly error: unknown }).error; + expect(loggedError).toBeInstanceOf(DesktopUpdateStateReadError); + expect(loggedError).toMatchObject({ + _tag: "DesktopUpdateStateReadError", + attemptCount: 3, + }); + expect((loggedError as DesktopUpdateStateReadError).cause).toBe(cause); listener?.(baseState); await vi.waitFor(() => { diff --git a/apps/web/src/state/desktopUpdate.ts b/apps/web/src/state/desktopUpdate.ts index 75764410625ce85c1bbaa1df5132d4ae2f95d93d..a7b9ed483b65a7b4510ff7071aeadca3b3101f84 100644 --- a/apps/web/src/state/desktopUpdate.ts +++ b/apps/web/src/state/desktopUpdate.ts @@ -59,9 +59,9 @@ export function createDesktopUpdateStateAtom(getBridge: () => DesktopUpdateBridg Effect.catchTags({ DesktopUpdateStateReadError: (error) => Effect.logError(error.message, { + error, errorTag: error._tag, attemptCount: error.attemptCount, - stack: error.stack, }).pipe(Effect.as(null)), }), ); -- 2.54.0