fix(renderer): preserve desktop error codes

This commit is contained in:
ZacharyZhang-NY committed 2026-04-22 15:00:35 -04:00
1 parent eec26a09a3
commit 1453a8fa95
15 files changed
+326 -40

No files matched your search

+12 -5
View File
@@ -9,6 +9,13 @@ import type {
StandupReport,
TaskRecord,
} from "@shared/types";
import {
describeDesktopError,
formatDesktopResultError,
normalizeAppErrorNotice,
type AppErrorInput,
type AppErrorNotice,
} from "../../lib/desktop";
// Sidebar badge counts and inbox items both live in the renderer —
// derived on every read from the snapshot (see `@shared/sidebar-badges`
@@ -26,11 +33,11 @@ export interface CompanySlice {
snapshotRevision: number;
companyMetrics: CompanyMetrics | null;
standupReport: StandupReport | null;
error: string | null;
error: AppErrorNotice | null;
setSnapshot: (snapshot: ProfileSnapshot | null) => void;
setCompanyMetrics: (metrics: CompanyMetrics | null) => void;
setStandupReport: (report: StandupReport | null) => void;
setError: (error: string | null) => void;
setError: (error: AppErrorInput) => void;
refreshSnapshot: () => Promise<void>;
patchTask: (task: TaskRecord) => void;
removeTask: (taskId: string) => void;
@@ -68,7 +75,7 @@ export const createCompanySlice: StateCreator<
}),
setError: (error) =>
set((state) => {
state.error = error;
state.error = normalizeAppErrorNotice(error);
}),
refreshSnapshot: async () => {
try {
@@ -80,12 +87,12 @@ export const createCompanySlice: StateCreator<
});
} else {
set((state) => {
state.error = result.error.message;
state.error = formatDesktopResultError(result.error);
});
}
} catch (err) {
set((state) => {
state.error = err instanceof Error ? err.message : String(err);
state.error = describeDesktopError(err);
});
}
},
+3 -2
View File
@@ -2,10 +2,11 @@ import type { StateCreator } from "zustand";
import type { AppState } from "../store";
import type { AppLocale } from "@shared/locale";
import { DEFAULT_LOCALE } from "@shared/locale";
import type { AppErrorNotice } from "../../lib/desktop";
export interface Toast {
id: string;
message: string;
message: string | AppErrorNotice;
tone: "success" | "danger" | "warn";
}
@@ -29,7 +30,7 @@ export interface UiSlice {
setTaskViewMode: (mode: "list" | "kanban") => void;
setTaskInspectorTab: (tab: TaskInspectorTab) => void;
incrementLogRevision: () => void;
addToast: (message: string, tone?: Toast["tone"]) => void;
addToast: (message: Toast["message"], tone?: Toast["tone"]) => void;
dismissToast: (id: string) => void;
}