# Editors and OS files
.DS_Store
Thumbs.db
*~
*.swp
*.swo
.vscode/
.idea/

# CMake/build outputs
#
# Anchored to the repository root. This is the CMake build tree and the home for generated
# experiment output (`build/experiments/<experiment>/<run>/`). Unanchored, this rule also
# swallowed two things it was never meant to: `yld-ui/build/`, which Wails keeps as *source*
# for its build assets, and curated evidence under `experiments/*/evidence/build/`.
/build/
# `examples/slope_stability.ipynb` writes the archives it demonstrates into `build/notebook`
# relative to its own working directory, which is `examples/`.
/examples/build/
cmake-build-*/
CMakeFiles/
CMakeCache.txt
cmake_install.cmake
compile_commands.json
CTestTestfile.cmake
Testing/

# C/C++ artifacts
*.o
*.obj
*.a
*.lib
*.so
*.dylib
*.dll
*.exe

# Python artifacts
__pycache__/
*.py[cod]
*.egg-info/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.venv/
venv/

# Node/JavaScript
node_modules/

# Local reference repositories (not part of yld source)
geomat/

# Local research/output scratch
*.log
*.tmp
*.bak
#
# Curated experiment evidence is the exception. Logs belong under `build/` during a run, but the
# experiment tooling deliberately records some of them under `experiments/<key>/evidence/`, and a
# `--evidence` copy lands there explicitly. Ignoring those loses part of the record.
!experiments/*/evidence/*.log
!experiments/*/evidence/**/*.log

# yld-ui (Wails v3 host + Svelte SPA)
#
# The Wails project directory is `yld-ui/`. Its `build/` directory holds the Taskfiles, `config.yml`,
# per-platform tasks and the app icon as *source*, so it is tracked; only what Wails generates there
# is ignored. Paths below are taken from the Wails build assets, not guessed.
/yld-ui/build/bin/
/yld-ui/build/darwin/icons.icns
/yld-ui/build/darwin/Assets.car
/yld-ui/build/windows/icon.ico
/yld-ui/build/ios/DerivedData/
/yld-ui/build/ios/xcode/
# The Vite output. Embedded into the Go binary at compile time by `//go:embed all:frontend/dist`,
# and regenerated by `task build:frontend`, so it is never committed.
/yld-ui/frontend/dist/
# Playwright artefacts from the browser checks (`npm run e2e`). The specs and helpers under
# `frontend/e2e/` are source and stay tracked.
/yld-ui/frontend/test-results/
/yld-ui/frontend/playwright-report/
/yld-ui/frontend/blob-report/
# There is deliberately no rule for `frontend/bindings/`: no native Wails bindings are ever
# generated (see architecture/DECISIONS.md), so an accidental bindings directory must show up as
# untracked noise rather than be silently ignored.
