Make indexing results compact and fix corpus recovery - #91
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 375bf37a62
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // Once resolved, an empty registry is explicit global scope, never a request | ||
| // to resurrect a removed corpus from an older browser URL. | ||
| // A failed first registry read does not establish an empty registry. | ||
| if (registry.initialized && (!registry.error || registry.repos.length > 0)) return registry.activeRepo; |
There was a problem hiding this comment.
Preserve failed registry scope while a retry is pending
When the first corpus load failed, initialized is true, error is set, and repos is empty; starting the recovery retry immediately clears error in loadRepos, so this condition treats the still-empty registry as successfully resolved. The subscription consequently switches from the URL-selected corpus to global scope and can finish loading and expose global configuration while /api/corpora is still pending. This occurs in the existing backend-recovery retry in SystemStatusSubtab, so retain the prior scope until the retry succeeds rather than using the transient cleared-error state.
Useful? React with 👍 / 👎.
| } | ||
|
|
||
| const repos: Corpus[] = await reposRes.json(); | ||
| if (generation !== repoLoadGeneration) return; |
There was a problem hiding this comment.
Keep superseded forced callers waiting for the winning load
When two forced registry refreshes overlap and the older response arrives first, this return resolves the older caller even though its refresh was discarded and the newer request is still pending. Mutation actions rely on the awaited refresh having published state; for example, addRepo immediately calls setActiveRepo(created.corpus_id), which can reject the newly created corpus against the old nonempty repos list and then return success without selecting it. A superseded forced call should await the current winning load, or its mutation caller must otherwise wait until the latest generation settles.
Useful? React with 👍 / 👎.
375bf37 to
53bb7b9
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep them coming! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Collapse cost, graph and schema diagnostics behind readable summaries. Repair corpus refresh ownership, canonical embedding guards and hidden GraphRAG retries. Provision verified PDF test models and reject undocumented image token formulas. @codex review
53bb7b9 to
5f2425b
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Indexing results overwhelmed the operator with permanently expanded accounting, graph diagnostics and raw schema JSON. The page now opens with short cost/status summaries and human-readable schema counts. Details, provenance and raw JSON are available through collapsed disclosures; actionable errors and uncertain totals remain visible. Both index confirmation paths share this presentation, and semantic quick-start leads to schema review.
This also fixes corpus refresh races that could report success after a failed winning request, uses the canonical stored embedding identity for the rebuild guard, disables hidden GraphRAG SDK/wrapper retries, and corrects native cost dashboard queries. Checkpoint recovery and revised semantic forecasting remain separate pending work.
Validation:
CI now provisions checksum-verified, revision-pinned Docling models before real PDF tests, avoiding downloads during conversion. Unknown image-model formulas fail explicitly; the expanded regression matrix reproduced 72 failures before the fix. No PDF tests are skipped.
Production browser acceptance follows deployment. The failed NASA replacement is still unpublished; the prior active generation remains intact, and no further paid rebuild has started.