Context
Running the full suite with JAVA_CODEBASE_RAG_RUN_HEAVY=1 surfaces 4 failures that are pre-existing — not regressions from PR #424 (jrag watch). Verified: PR #424 doesn't touch path_filtering / index/ / cocoindex / mcp_hints / mcp_v2, and the 3 pollution failures (below) pass in isolation and persist with --ignore=tests/watch.
1. test_lancedb_ignore_file_reduces_indexed_java_files — real failure
tests/integration/test_lancedb_e2e.py — assert 2 > 2.
- A
.java-codebase-rag/ignore file is expected to reduce the count of indexed Java files in the cocoindex Lance flow, but with-ignore and without-ignore both index 2 files.
- Fails in isolation. Lives in unmodified code (
path_filtering.LayeredIgnore / the cocoindex flow).
2. Three test-pollution failures — pass in isolation, fail in the full suite
tests/jrag/test_read_payloads.py::test_golden_output_byte_identical[callees_client_fold]
tests/jrag/test_read_payloads.py::test_golden_output_byte_identical[search]
tests/mcp/test_mcp_hints.py::test_structured_hint_describe_type_rollup_clients
- All PASS in isolation; fail in the full suite due to test-ordering / disk-state pollution (e.g., a stale
tests/*/.java-codebase-rag index hijacking project-root discovery — the rm -rf ritual mitigates it pre-run but not mid-suite).
3. Suite exit code is unreliable (related, pre-existing)
The full heavy suite exits with a lance/pyarrow SIGSEGV (exit 139) at Python interpreter teardown — the os._exit discipline in cli/jrag exists specifically to avoid this in normal operation. The pytest summary still prints before the crash, so gating on the process exit code is wrong — read the summary line from the log.
Repro
JAVA_CODEBASE_RAG_RUN_HEAVY=1 .venv/bin/python -m pytest -v -p no:cacheprovider 2>&1 | grep FAILED
Note
None of these block PR #424 (CI runs the non-heavy suite, which is green for the changed code: tests/watch 116, tests/jrag 15, config 65, docs 9). They're filed so the full heavy suite can be made CI-able.
Context
Running the full suite with
JAVA_CODEBASE_RAG_RUN_HEAVY=1surfaces 4 failures that are pre-existing — not regressions from PR #424 (jrag watch). Verified: PR #424 doesn't touchpath_filtering/index// cocoindex /mcp_hints/mcp_v2, and the 3 pollution failures (below) pass in isolation and persist with--ignore=tests/watch.1.
test_lancedb_ignore_file_reduces_indexed_java_files— real failuretests/integration/test_lancedb_e2e.py—assert 2 > 2..java-codebase-rag/ignorefile is expected to reduce the count of indexed Java files in the cocoindex Lance flow, but with-ignore and without-ignore both index 2 files.path_filtering.LayeredIgnore/ the cocoindex flow).2. Three test-pollution failures — pass in isolation, fail in the full suite
tests/jrag/test_read_payloads.py::test_golden_output_byte_identical[callees_client_fold]tests/jrag/test_read_payloads.py::test_golden_output_byte_identical[search]tests/mcp/test_mcp_hints.py::test_structured_hint_describe_type_rollup_clientstests/*/.java-codebase-ragindex hijacking project-root discovery — therm -rfritual mitigates it pre-run but not mid-suite).3. Suite exit code is unreliable (related, pre-existing)
The full heavy suite exits with a lance/pyarrow SIGSEGV (exit 139) at Python interpreter teardown — the
os._exitdiscipline incli/jragexists specifically to avoid this in normal operation. The pytest summary still prints before the crash, so gating on the process exit code is wrong — read the summary line from the log.Repro
Note
None of these block PR #424 (CI runs the non-heavy suite, which is green for the changed code: tests/watch 116, tests/jrag 15, config 65, docs 9). They're filed so the full heavy suite can be made CI-able.