# Python
__pycache__/
*.py[cod]
*.pyo
*.pyd
.Python
*.egg-info/
dist/
build/
.eggs/
*.egg
*.whl

# Virtual environments
.venv/
venv/
env/

# uv
.uv/
uv.lock

# Testing
.pytest_cache/
.coverage
htmlcov/
.tox/

# Type checking
.mypy_cache/
.ruff_cache/

# IDE
.idea/
.vscode/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# MeshBay runtime (never commit)
hub_private.pem
node_state.json
bob_state.json
*.key
unlock.key
testfile.bin
hub.log
hub.pid

# QE — test/demo artefacts, credentials, ephemeral data (never versioned)
QE/

# POC ephemeral files
poc/node_state.json
poc/bob_state.json
poc/testfile.bin
packages/meshbay-client/ui/
packages/meshbay-client/node_modules/
# The bundled Python node daemon (PyInstaller output), assembled by
# packaging/win/build-node-runtime.ps1 and carried into the installer as an
# electron-builder extraResource. Build artifact, never committed.
packages/meshbay-client/node-runtime/

# electron-builder's buildResources dir — a real source (app icon), not a
# build artifact, despite living under a path the generic `build/` rule above
# would otherwise swallow.
!packages/meshbay-client/build/
!packages/meshbay-client/build/**

# packaging build scripts — real source, not build output
!packaging/build/
!packaging/build/**
