# Python
.venv/
__pycache__/
*.pyc
*.egg-info/
build/
dist/
# uv lockfile: CI / release resolve deps with pip, not uv, so the lock is only
# a local `uv run` convenience -- untracked to avoid version churn / drift
uv.lock

# regenerated mesh caches (3DXML -> GLB, done on first view) -- keep the .3dxml
*.3dxml.glb

# build artifacts sw2urdf.build regenerates from graph.json
output/
examples/*/urdf/
examples/*/package.xml
examples/*/CMakeLists.txt

# test / tooling
tests/e2e/node_modules/
tests/e2e/package-lock.json
# runtime artifacts the editor writes into a served URDF package (keep the
# e2e fixtures pristine -- the overlay sidecar + live copy are regenerated)
tests/e2e/fixtures/**/*.sw2robot.json
tests/e2e/fixtures/**/.*.live.urdf
tests/e2e/fixtures/**/.*.expanded-preview-source.urdf
tests/e2e/fixtures/**/.*.collapsed-preview.urdf
_server*.txt
_client_report.json
_sldasm_index.json
_sw_spawned_pids.txt

# A global core.excludesFile ignores dotpaths via ".*"; keep repo meta tracked.
!.github/
!.github/**
