authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-06-20 20:20:07-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-06-20 20:20:07-07:00
log90074e359f360bd7983661757ccf995524b9dbaa
treef60321947cd01539e9cd2df5041c74169197147c
parent6155f5cf64e9f26d10f3c912985f8ca09f9c3fef
signature Signed by PGP key B5690EEEBB952194

[codex] Preserve desktop update state causes (#3473)

Co-authored-by: codex <codex@users.noreply.github.com>

2 files changed, 9 insertions(+), 4 deletions(-)

apps/web/src/state/desktopUpdate.test.ts+8-3
...@@ -3,7 +3,7 @@ import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";...@@ -3,7 +3,7 @@ import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
3import { AtomRegistry } from "effect/unstable/reactivity";3import { AtomRegistry } from "effect/unstable/reactivity";
4import { afterEach, describe, expect, it, vi } from "vite-plus/test";4import { afterEach, describe, expect, it, vi } from "vite-plus/test";
55
6import { createDesktopUpdateStateAtom } from "./desktopUpdate";6import { createDesktopUpdateStateAtom, DesktopUpdateStateReadError } from "./desktopUpdate";
77
8const baseState: DesktopUpdateState = {8const baseState: DesktopUpdateState = {
9 enabled: true,9 enabled: true,
...@@ -117,8 +117,13 @@ describe("desktopUpdateStateAtom", () => {...@@ -117,8 +117,13 @@ describe("desktopUpdateStateAtom", () => {
117 errorTag: "DesktopUpdateStateReadError",117 errorTag: "DesktopUpdateStateReadError",
118 attemptCount: 3,118 attemptCount: 3,
119 });119 });
120 expect(errorContext).not.toHaveProperty("error");120 const loggedError = (errorContext as { readonly error: unknown }).error;
121 expect(errorContext).not.toHaveProperty("cause");121 expect(loggedError).toBeInstanceOf(DesktopUpdateStateReadError);
122 expect(loggedError).toMatchObject({
123 _tag: "DesktopUpdateStateReadError",
124 attemptCount: 3,
125 });
126 expect((loggedError as DesktopUpdateStateReadError).cause).toBe(cause);
122127
123 listener?.(baseState);128 listener?.(baseState);
124 await vi.waitFor(() => {129 await vi.waitFor(() => {
apps/web/src/state/desktopUpdate.ts+1-1
...@@ -59,9 +59,9 @@ export function createDesktopUpdateStateAtom(getBridge: () => DesktopUpdateBridg...@@ -59,9 +59,9 @@ export function createDesktopUpdateStateAtom(getBridge: () => DesktopUpdateBridg
59 Effect.catchTags({59 Effect.catchTags({
60 DesktopUpdateStateReadError: (error) =>60 DesktopUpdateStateReadError: (error) =>
61 Effect.logError(error.message, {61 Effect.logError(error.message, {
62 error,
62 errorTag: error._tag,63 errorTag: error._tag,
63 attemptCount: error.attemptCount,64 attemptCount: error.attemptCount,
64 stack: error.stack,
65 }).pipe(Effect.as(null)),65 }).pipe(Effect.as(null)),
66 }),66 }),
67 );67 );