feat(search): redesign jrag search — honest scores, dedup, hybrid, guidance (Phase 0) #685
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: test | |
| on: | |
| pull_request: | |
| push: | |
| branches: [master] | |
| jobs: | |
| test: | |
| name: test (${{ matrix.os }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Ubuntu is the required gate (blocks merges). macOS + Windows run on | |
| # every code-change PR to surface platform regressions, but stay | |
| # non-blocking (continue-on-error below) until each has been green | |
| # across several merges — the fast test suite exercises the native | |
| # kuzu/ladybug graph layer, which had never been run on these OSes | |
| # before this matrix. Promote an OS to a hard gate by dropping it from | |
| # the continue-on-error expression once it is reliably green. | |
| # | |
| # macos-13 (Intel x86_64) is the only runner that proves the graph-only | |
| # install/boot path (PEP 508 markers gate the vector trio off there). | |
| # TEMPORARILY DISABLED: the leg was pending indefinitely. Re-add | |
| # `macos-13` to the list below to restore Intel graph-only coverage; | |
| # the graph-only boot is still covered cross-platform by | |
| # tests/test_graph_only_boot.py (which blocks the vector modules in-process). | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| continue-on-error: ${{ matrix.os != 'ubuntu-latest' }} | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: dorny/paths-filter@v3 | |
| id: changes | |
| with: | |
| filters: | | |
| docs: | |
| - '**/*.md' | |
| - '**/*.mdc' | |
| - 'docs/**' | |
| - 'propose/**' | |
| - 'plans/**' | |
| - 'skills/**' | |
| - '.agents/**' | |
| - 'AGENTS.md' | |
| - 'README.md' | |
| - 'CODEBASE_REQUIREMENTS.md' | |
| - '.github/CODEOWNERS' | |
| code: | |
| - '**/*.py' | |
| - 'pyproject.toml' | |
| - 'pytest.ini' | |
| - 'mcp.json.example' | |
| - '.gitignore' | |
| - '.github/workflows/**' | |
| - 'tests/fixtures/**' | |
| - 'tests/bank-chat-system/**' | |
| - 'tests/pytest.ini' | |
| - uses: actions/setup-python@v5 | |
| if: steps.changes.outputs.code == 'true' | |
| with: | |
| python-version: "3.11" | |
| - name: Install dependencies | |
| if: steps.changes.outputs.code == 'true' | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[dev]" | |
| - name: Check generated edge navigation doc | |
| if: steps.changes.outputs.code == 'true' | |
| run: python scripts/generate_edge_navigation.py --check | |
| - name: Cache HuggingFace models | |
| if: steps.changes.outputs.code == 'true' && matrix.os != 'macos-13' | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/huggingface | |
| key: hf-${{ hashFiles('**/pyproject.toml') }}-v1 | |
| restore-keys: | | |
| hf-${{ hashFiles('**/pyproject.toml') }}- | |
| hf- | |
| - name: Run tests | |
| if: steps.changes.outputs.code == 'true' | |
| env: | |
| JAVA_CODEBASE_RAG_RUN_HEAVY: "0" | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| TRANSFORMERS_CACHE: ~/.cache/huggingface | |
| HF_HOME: ~/.cache/huggingface | |
| # Process isolation: run each test file in its own fresh worker process. | |
| # Running the full suite in a single process accumulates native runtimes | |
| # (cocoindex + lancedb Tokio, plus kuzu's scheduler and torch) that corrupt | |
| # the heap, crashing kuzu's NodeTableScanState::scanNext with a SIGSEGV ~53%. | |
| # `--dist loadfile` keeps each file in one worker, so no cross-file state | |
| # accumulates. Verified: 771 passed / 9 skipped, no segfault. | |
| run: pytest tests -n auto --dist loadfile -v | |
| - name: Skip tests (docs-only) | |
| if: steps.changes.outputs.code != 'true' | |
| run: echo "Docs-only change; pytest skipped." |