Skip to content

Make indexing results compact and fix corpus recovery - #91

Merged
DMontgomery40 merged 1 commit into
mainfrom
feat/graphrag-operator-state-and-costs-20260905
Sep 5, 2026
Merged

Make indexing results compact and fix corpus recovery#91
DMontgomery40 merged 1 commit into
mainfrom
feat/graphrag-operator-state-and-costs-20260905

Conversation

@DMontgomery40

@DMontgomery40 DMontgomery40 commented Sep 5, 2026

Copy link
Copy Markdown
Owner

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:

  • 26 real corpus/Graph recovery browser cases pass.
  • 24 indexing/accounting/schema/confirmation scenarios pass after fixture corrections (23 in the combined rerun plus the corrected quick-start case).
  • Frontend lint, 36 unit tests and production build pass; Ruff, mypy, type/contract synchronization and config reality checks pass.
  • Independent Sol reviews approve the final store, retry, guard, UI and CI corrections. The full private backend gate passed: 3,119 passed, 40 skipped. GitHub checks remain the merge gate.
  • GitNexus scope is the expected shared stores, indexing/confirmation UI, native retry/guard and vision accounting paths.

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.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 5, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-05T17:49:48.709648Z 5f2425b Manual request
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread web/src/stores/useConfigStore.ts Outdated
// 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;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment thread web/src/stores/useRepoStore.ts Outdated
}

const repos: Corpus[] = await reposRes.json();
if (generation !== repoLoadGeneration) return;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@DMontgomery40 DMontgomery40 changed the title Keep corpus configuration current and clarify gateway cost dashboards Fix corpus recovery, indexing guards and GraphRAG retries Sep 5, 2026
@DMontgomery40
DMontgomery40 force-pushed the feat/graphrag-operator-state-and-costs-20260905 branch from 375bf37 to 53bb7b9 Compare September 5, 2026 16:44
@DMontgomery40

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep them coming!

Reviewed commit: 53bb7b9074

ℹ️ 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".

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
@DMontgomery40
DMontgomery40 force-pushed the feat/graphrag-operator-state-and-costs-20260905 branch from 53bb7b9 to 5f2425b Compare September 5, 2026 17:44
@DMontgomery40 DMontgomery40 changed the title Fix corpus recovery, indexing guards and GraphRAG retries Make indexing results compact and fix corpus recovery Sep 5, 2026
@DMontgomery40

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: 5f2425bc0b

ℹ️ 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".

@DMontgomery40
DMontgomery40 merged commit 4b70194 into main Sep 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant