fix(ui): handle indexing errors in frontend and enable dev mode API hosting#549
fix(ui): handle indexing errors in frontend and enable dev mode API hosting#549sahil-mangla wants to merge 2 commits into
Conversation
…osting - Fixed frontend to render an error banner instead of silently dismissing when a job fails or OOMs (status === 'error'). - Allowed the backend HTTP server to start API endpoints in development even if no frontend files are embedded. Signed-off-by: sahil-mangla <manglasahil2017@gmail.com>
|
Linter Fix (clang-format): The second force-push was made to wrap a long string literal in src/main.c that exceeded the maximum line length check, which was causing the CI formatting job (lint-format) to fail. No logic changes were introduced. |
|
Hey @DeusData shall i close the PR or should i wait for you to merge it first? |
|
Hey @sahil-mangla, a bit of patience please. At the moment there is a lot of "background work" happening. Coming back to you ASAP :) |
|
Thanks @sahil-mangla — the UI error-banner half is good and we'd like it. The blocker is the Could you split this PR: keep the UI error-handling, and gate the always-start-server behavior behind an explicit opt-in (e.g. a |
|
@DeusData I agree that removing the CBM_EMBEDDED_FILE_COUNT > 0 guard changes the existing behavior contract for --ui, even if the listener is loopback-only. I’ll split the changes and update this PR to keep only the UI error-handling improvements. I’ll revert the src/main.c change from this PR and keep the development-server behavior as a separate follow-up, potentially behind an explicit opt-in flag such as --dev-api. |
Signed-off-by: sahil-mangla <manglasahil2017@gmail.com>
|
Thanks @sahil-mangla — the Could you reduce this to just the |
Surface indexing failures in UI and enable backend API startup in development mode
What does this PR do?
This PR addresses a poor user experience when indexing fails, particularly for extremely large repositories that may exhaust available memory.
Changes
Why is this needed?
During investigation of issue #524, I reproduced indexing failures using a synthetic repository containing approximately 200,000 Python files.
The indexing subprocess was terminated by the OS with exit code 137 (SIGKILL / out-of-memory condition). The backend correctly transitioned the job status to "error".
However, the frontend previously treated any non-"indexing" state as completion:
if (data.length > 0 &&
data.every((j) => j.status !== "indexing")) {
onDone();
}
As a result:
This made indexing failures appear as if indexing had silently completed or hung.
This PR surfaces those failures directly in the UI so users receive immediate feedback when indexing fails.
Reproduction
Testing
Manual testing performed
Verified that:
Checklist