Skip to content

ci: run the heavy jrag-watch tests (golden/COW/warm) in CI or nightly #425

Description

@HumanBean17

Context

PR #424 (jrag watch) added the load-bearing tests that prove the feature's core guarantees — but they're all skipped in CI.

.github/workflows/test.yml sets JAVA_CODEBASE_RAG_RUN_HEAVY=0, so these heavy-gated tests never run in CI:

  • tests/watch/test_daemon.py::test_golden_*_ipc_* (6) — golden IPC byte-identity for every read command (proves the warm path renders byte-identically to cold, with a _load_graph spy proving the daemon served).
  • tests/watch/test_concurrency_characterization.py (3) — Lance atomic-version reads, graph copy-on-write snapshot isolation, warm model reuse.
  • tests/watch/test_warm.py (5) — WarmResources + the COW snapshot lifecycle.

Why it matters

CI structurally cannot catch a regression in the three properties that justify shipping watch mode: byte-identity, never-partial reads, and warm reuse.

Proposal

Add a heavy CI job (or a nightly) that runs with JAVA_CODEBASE_RAG_RUN_HEAVY=1.

Caveat: the heavy suite currently exits with a pre-existing lance/pyarrow SIGSEGV (exit 139) at Python interpreter teardown — unrelated to watch mode (the os._exit discipline in cli/jrag exists specifically to dodge it). The job should read the pytest summary line from the log rather than gating on the process exit code. (Filed separately — see the full-suite-health issue.)

Repro

JAVA_CODEBASE_RAG_RUN_HEAVY=1 .venv/bin/python -m pytest tests/watch -q

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions