
*~
*.bak
# Binary files / state
*.brn
cache/
mp3/
commit.sh
*.conf
*.conf.lock
.mediabot-conf-*
config/
*.crt
*.db
# Editor junk
*.env
*.ini
*.json
!Mediabot/Games/data/trivia-fr.json

# Public Grafana dashboards are versioned project artifacts.
!contrib/grafana/*.json

*.key
# Local tools & tmp
*.log
# Logs
*.log.*
bot.log
bot.log.*
*.pem
*.pid
*.pw
*.secrets
# Secrets & confs
*.sqlite
*.sqlite3
*.swp
*.tmp
tmp/
*.yml
mediabot.pid
test_all_commands.pl
test_log.txt

# Test artifacts
t/live/test.conf

# OS
.DS_Store


# MB211 local/generated artifacts for safe commits
__pycache__/
*/__pycache__/
*.pyc
*.pyo
*.pyd
t/tmp_mb*_scripts/
docs/mb[0-9][0-9][0-9]_*.md
mb[0-9][0-9][0-9]_*.md
mb[0-9][0-9][0-9]_*.sh
mb[0-9][0-9][0-9]_*_bundle.zip
fix_mb*.sh
snap_mediabot*.sh

# Public GitHub Actions workflows are intentionally tracked.
!.github/workflows/*.yml

# Public plugin v2 sidecar manifests are versioned project artifacts.
!plugins/scripts/**/*.manifest.json
!plugins/API_V2_CONTRACT.json
!plugins/API_V3_CONTRACT.json
!plugins/API_V3_EVENTS.json
!plugins/*/plugin.json

# MB696 - Node dependency hygiene
node_modules/
!contrib/mbweb/package.json
!contrib/mbweb/package-lock.json

# MB809: core-owned RSS pacing lock and incomplete state writes
.rss-pacing.json.lock
.rss-pacing-*

# MB813: per-channel automatic quote state locks and incomplete writes
.randomquote.json.lock
.randomquote-*

# Developer-local Perl dependencies; never stage installed module trees.
/local/
