# Python __pycache__/ *.py[cod] *$py.class *.so .Python # Build output artifacts (LedGrab/, *.zip, *.exe, *.tar.gz, cached downloads) build/LedGrab/ build/*.zip build/*.exe build/*.tar.gz build/*.msi build/python-embed-*.zip build/pip-wheels/ build/win-wheels/ build/tk-extract/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ # …but keep pre-built Android wheels (pydantic-core cross-compiled for # arm64-v8a / x86_64 / x86, required by the Chaquopy build) !android/wheels/ !android/wheels/* *.egg-info/ .installed.cfg *.egg # Virtual Environment venv/ ENV/ env/ .venv # Node node_modules/ # IDE .vscode/ .idea/ *.swp *.swo *~ .DS_Store .claude/ # Testing .pytest_cache/ .coverage htmlcov/ .tox/ # Logs *.log logs/ *.log.* # Runtime data — anchor to repo root so nested package data dirs # (server/src/ledgrab/data/prebuilt_sounds, game_adapters) are NOT ignored. # An unanchored `data/` rule silently broke the v0.4.2 release by keeping # shipped sound assets out of the CI tag checkout. /data/ /server/data/ # Defensive: if the server is launched from server/src/ (uncommon path), # its relative `data/` dir resolves to server/src/data/. Templates now # live in SQLite, so any *.json that lands here is stale runtime export # and must not be committed. /server/src/data/ *.db *.sqlite *.json.bak # Environment variables .env .env.local # Docker .dockerignore # Home Assistant homeassistant/.storage/ # Temporary files *.tmp temp/ tmp/ # OS Thumbs.db .DS_Store # Added by code-review-graph .code-review-graph/ # vex semantic-search embedding cache (auto-downloaded on first --semantic run) .fastembed_cache/