__pycache__/
*.py[cod]
*.egg-info/
.venv/
dist/
build/
.pytest_cache/
.hypothesis/
.coverage
htmlcov/
.ruff_cache/
*.png
*.html
!docs/**/*.html
# Part 1's figures are COMMITTED, not built (docs/manual/make_figures.py says
# why): the sphinx build stays seconds and stays offline, at the cost of a
# figure that can go stale.  `*.png` above would have dropped them silently,
# leaving a manual whose images are broken everywhere except this machine.
!docs/manual/using/figures/*.png
# The GUI's built frontend is COMMITTED (WP-1010) so installing the wheel never
# needs node — and `*.html` above would have quietly dropped its entry point,
# leaving a dist whose freshness test passes on this machine while a fresh clone
# serves the placeholder page instead of the app.
!src/rietx/gui/static/**
# ...and the same rule swallowed the *source* entry too, which is worse: the
# dist above is committed, so a fresh clone still serves the app — but without
# `gui/index.html` vite has no entry module and the frontend cannot be rebuilt
# at all.  Found by CI on the first clean-clone build (PR #17), never locally,
# because the file exists on every machine that has ever run the build.
!gui/index.html
gui/node_modules/
gui/.vite/
# every test refinement writes obs/calc/diff plots and exported tables here,
# for visual inspection (Rwp hides locally-bad fits).  The *.png rule above
# used to cover this by accident; WP-0505 added a CSV export and it was
# committed, so ignore the directory rather than the extensions that happen
# to land in it.
tests/output/
# kept agent-eval run records (eval-runs/README.md).  A round's calls.jsonl,
# answers and transcripts outlive the session that produced them so the
# harness can be iterated on, and are deleted by hand when it is not.  The
# findings live in the WP handover and the milestone record, never here.
eval-runs/
# jax's persistent compile cache (tests/conftest.py points JAX at it): the
# backend suites are compile-bound, and the cache is keyed by a content hash
# of the computation, so it is safe to share between runs and xdist workers.
tests/.jax_cache/
# sphinx output for the theory manual (docs/manual/); note the !docs/**/*.html
# un-ignore above would otherwise commit every built page.
docs/manual/_build/
.DS_Store

# .claude/ is committed selectively: commands/ is shared tooling, while
# worktrees/ holds live checkouts and settings.local.json is per-machine.
.claude/worktrees/
.claude/settings.local.json
