# Operator-identifying config and secrets (v0.3 split)
/data/config/local.yaml
/data/config/secrets/
/data/secrets/
.env
.env.local
.env.*
!.env.example
local.yaml
!local.yaml.example
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
/lib/
/lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Virtual environments
venv/
ENV/
# v0.5.5: anchor to repo root only -- bare `env/` matched meshai/env/ (the
# adapter package directory) and forced `git add -f` workarounds in 2.14/2.16.1.
/env/
.venv/

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

# Project specific
config.yaml
*.db
*.sqlite
*.sqlite3
/data/
*.log

# Secrets
.env
*.pem
*.key

# Frontend build output (built in Docker via multi-stage, or manually for
# the pip install path -- see README "Quick start"). Anchored with the
# work/ prefix: the bare "meshai/dashboard/static/" pattern silently
# stopped matching anything after 2e1fb325 moved the source tree into
# work/, which is how these build artifacts got committed in the first
# place.
work/meshai/dashboard/static/

# Node (frontend deps, reinstalled via package-lock.json / npm ci)
node_modules/


# OS
.DS_Store
Thumbs.db
# Operator-identifying config and secrets (v0.3 split)
/data/config/local.yaml
/data/config/secrets/
/data/secrets/
.env
.env.local
.env.*
!.env.example
local.yaml
!local.yaml.example
data/*.sqlite
data/*.sqlite-wal
data/*.sqlite-shm

# Secrets (values live here, never committed)
/data/secrets/.env
data/secrets/.env
work/data/secrets/.env
