diff options
| author | Adam <[email protected]> | 2025-12-21 04:11:09 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-21 04:11:09 -0600 |
| commit | bf663905579d198d63ff1641112ec4f682cee09a (patch) | |
| tree | 1fc97fdbb3b4adf732cac9e7303811da4e2a7c37 | |
| parent | 184643f0db48fe35dfbb32f5234bd8d28691c234 (diff) | |
| download | opencode-bf663905579d198d63ff1641112ec4f682cee09a.tar.gz opencode-bf663905579d198d63ff1641112ec4f682cee09a.zip | |
fix(desktop): better error reporting
| -rw-r--r-- | packages/desktop/src/pages/error.tsx | 30 | ||||
| -rw-r--r-- | packages/desktop/vite.config.ts | 1 |
2 files changed, 26 insertions, 5 deletions
diff --git a/packages/desktop/src/pages/error.tsx b/packages/desktop/src/pages/error.tsx index 352b9f3e8..c7330c298 100644 --- a/packages/desktop/src/pages/error.tsx +++ b/packages/desktop/src/pages/error.tsx @@ -62,12 +62,32 @@ function formatInitError(error: InitError): string { } } -function formatError(error: unknown): string { +function formatErrorChain(error: unknown, depth = 0): string { if (!error) return "Unknown error" - if (isInitError(error)) return formatInitError(error) - if (error instanceof Error) return `${error.name}: ${error.message}\n\n${error.stack}` - if (typeof error === "string") return error - return JSON.stringify(error, null, 2) + + const indent = depth > 0 ? `\n${"─".repeat(40)}\nCaused by:\n` : "" + + if (isInitError(error)) { + return indent + formatInitError(error) + } + + if (error instanceof Error) { + const parts = [indent + `${error.name}: ${error.message}`] + if (error.stack) { + parts.push(error.stack) + } + if (error.cause) { + parts.push(formatErrorChain(error.cause, depth + 1)) + } + return parts.join("\n\n") + } + + if (typeof error === "string") return indent + error + return indent + JSON.stringify(error, null, 2) +} + +function formatError(error: unknown): string { + return formatErrorChain(error, 0) } interface ErrorPageProps { diff --git a/packages/desktop/vite.config.ts b/packages/desktop/vite.config.ts index a388884cd..57071a894 100644 --- a/packages/desktop/vite.config.ts +++ b/packages/desktop/vite.config.ts @@ -10,5 +10,6 @@ export default defineConfig({ }, build: { target: "esnext", + sourcemap: true, }, }) |
