Nebula railcore overdrive#73
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f07a171175
ℹ️ 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".
| const sparseUnavailable = Array.isArray(sqliteFtsDiagnostics) | ||
| ? sqliteFtsDiagnostics.find((entry) => entry?.code === RETRIEVAL_SPARSE_UNAVAILABLE_CODE) | ||
| : null; | ||
| if (!annEnabled && !vectorOnlyProfile && sparseUnavailable) { |
There was a problem hiding this comment.
Stop aborting after successful BM25 sparse fallback
This unconditional sparseUnavailable throw now fires even when sparse retrieval already succeeded via JS BM25 fallback. With SQLite indexes that are missing only chunks_fts (or other sqlite-fts-required tables) but still have token postings tables, the pipeline can produce valid BM25 hits, yet this branch still raises CAPABILITY_MISSING, turning a recoverable FTS unavailability case into a hard failure for ANN-off queries.
Useful? React with 👍 / 👎.
| const selectedModes = PROFILE_MODES.filter((mode) => ( | ||
| (mode === 'code' && runCode) | ||
| || (mode === 'prose' && runProse) | ||
| || (mode === 'extracted-prose' && runExtractedProseRaw) | ||
| || (mode === 'records' && runRecords) |
There was a problem hiding this comment.
Exclude missing optional modes from profile-mix checks
Profile cohort validation is currently driven by requested modes, not by modes that actually loaded an index state, so default/prose searches still include extracted-prose even when that optional index is absent. Because missing state normalizes to default, vector-only code/prose indexes are incorrectly treated as mixed-profile cohorts and rejected unless --allow-unsafe-mix is passed, which blocks valid searches.
Useful? React with 👍 / 👎.
Summary
General Checklist