*.swp
*.swo
.DS_Store
node_modules/

# Python
__pycache__/
*.pyc
*.pyo
.coverage

# IDE
.idea/
.vscode/

# Claude local state (worktrees, sessions, etc.)
.claude/

# Jekyll (docs site)
docs/_site/
docs/.jekyll-cache/
docs/.jekyll-metadata
docs/vendor/
docs/Gemfile.lock

# Backup of old config system
bkp/

# Operator-specific config — ship only the .example. The real file
# contains personal chat_id, private repo list, and local paths.
config/orchestrator.yaml

# Historic local artifact — not consumed by ctrlrelay itself. Keeps a
# local list of repos to clone; no reason to track it publicly.
repos.manifest


# Lock file — not committed per AInvirion Python-SDK convention.
uv.lock
