You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Several high-value behaviours are untested or only run outside the CI merge gate.
Gaps (confirmed)
search real no-Lance error path is untested. Every search test monkeypatches run_search (e.g. test_mcp_v2.py:120,128,136,569,…) — the genuine except Exception envelope (mcp_v2.py:986) never runs in CI. Violates README rule Add Cursor rules and agent settings for CLI agents #3 (test the contract without LanceDB). A regression turning the graceful failure into a traceback would ship green.
Installer upgrade / config-schema migration untested.handle_rerun (installer.py:682) is tested for existing-config and no-config, but not for an older config needing keys seeded/migrated — a breaking config change would silently corrupt installs.
Ranking / RRF beyond a single unit test (test_search_lancedb.py::test_rrf_merge_weights_second_list_by_row) — no multi-table RRF, score ordering, or tie-breaking coverage for search's core value-prop.
Heavy-gating:test_lancedb_e2e.py, test_vectors_progress.py, and test_installer_integration.py are the only coverage for the vectors flow, the concurrent-optimize race guard (Retryable commit conflict), and real install indexing — none run in CI without JAVA_CODEBASE_RAG_RUN_HEAVY=1.
Impact
Real error envelopes and the vectors flow are effectively unverified by the merge gate.
Highest-value tests to add
search with no Lance index present (no monkeypatch) → assert success is False, non-empty message, no traceback; prove find/describe/neighbors still succeed against the same graph.
resolve unknown identifier → success is False, empty candidates.
Installer config-migration on re-run after upgrade (old-schema config → keys seeded, $version bumped, user selections preserved).
Promote at least a smoke version of the vectors flow + the concurrent-optimize race guard into CI (or a nightly).
Summary
Several high-value behaviours are untested or only run outside the CI merge gate.
Gaps (confirmed)
searchreal no-Lance error path is untested. Everysearchtest monkeypatchesrun_search(e.g.test_mcp_v2.py:120,128,136,569,…) — the genuineexcept Exceptionenvelope (mcp_v2.py:986) never runs in CI. Violates README rule Add Cursor rules and agent settings for CLI agents #3 (test the contract without LanceDB). A regression turning the graceful failure into a traceback would ship green.resolve"no match" path untested (only many-match + empty-string paths covered).handle_rerun(installer.py:682) is tested for existing-config and no-config, but not for an older config needing keys seeded/migrated — a breaking config change would silently corrupt installs.test_search_lancedb.py::test_rrf_merge_weights_second_list_by_row) — no multi-table RRF, score ordering, or tie-breaking coverage forsearch's core value-prop.test_lancedb_e2e.py,test_vectors_progress.py, andtest_installer_integration.pyare the only coverage for the vectors flow, the concurrent-optimize race guard (Retryable commit conflict), and real install indexing — none run in CI withoutJAVA_CODEBASE_RAG_RUN_HEAVY=1.Impact
Real error envelopes and the vectors flow are effectively unverified by the merge gate.
Highest-value tests to add
searchwith no Lance index present (no monkeypatch) → assertsuccess is False, non-emptymessage, no traceback; provefind/describe/neighborsstill succeed against the same graph.resolveunknown identifier →success is False, emptycandidates.$versionbumped, user selections preserved).