diff --git a/server/src/web/routes/git.ts b/server/src/web/routes/git.ts index e548deb4..dea7d69b 100644 --- a/server/src/web/routes/git.ts +++ b/server/src/web/routes/git.ts @@ -155,11 +155,12 @@ export function createGitRoutes(getSyncEngine: () => SyncEngine | null): Hono engine.runRipgrep(sessionResult.sessionId, args, sessionPath)) - if (!('success' in result) || !result.success || !result.stdout) { + if (!result.success) { return c.json({ success: false, error: result.error ?? 'Failed to list files' }) } - const files = result.stdout + const stdout = result.stdout ?? '' + const files = stdout .split('\n') .map((line) => line.trim()) .filter((line) => line.length > 0) diff --git a/web/src/hooks/queries/useGitStatusFiles.ts b/web/src/hooks/queries/useGitStatusFiles.ts index b150fc70..8622b798 100644 --- a/web/src/hooks/queries/useGitStatusFiles.ts +++ b/web/src/hooks/queries/useGitStatusFiles.ts @@ -50,9 +50,15 @@ export function useGitStatusFiles(api: ApiClient | null, sessionId: string | nul enabled: Boolean(api && sessionId), }) + const queryError = query.error instanceof Error + ? query.error.message + : query.error + ? 'Git status unavailable' + : null + return { status: query.data?.status ?? null, - error: query.data?.error ?? null, + error: queryError ?? query.data?.error ?? null, isLoading: query.isLoading, refetch: query.refetch } diff --git a/web/src/hooks/queries/useSessionFileSearch.ts b/web/src/hooks/queries/useSessionFileSearch.ts index a794ceff..3809fbbe 100644 --- a/web/src/hooks/queries/useSessionFileSearch.ts +++ b/web/src/hooks/queries/useSessionFileSearch.ts @@ -33,9 +33,15 @@ export function useSessionFileSearch( enabled, }) + const queryError = result.error instanceof Error + ? result.error.message + : result.error + ? 'Failed to search files' + : null + return { files: result.data?.files ?? [], - error: result.data?.error ?? null, + error: queryError ?? result.data?.error ?? null, isLoading: result.isLoading, refetch: result.refetch }