# Runtime / secrets
source/storage/database/*.sqlite
source/storage/database/*.sqlite-*
source/storage/uploads/*
source/storage/cache/*
source/storage/logs/*
source/storage/backups/*
source/storage/plugins/*
!source/storage/plugins/.gitkeep
!source/storage/backups/.gitkeep
!source/storage/**/.gitkeep

# Operator forum-post manifests (use deploy/forum-data/ locally)
source/data/

# Local config (created by installer)
source/config/local.php

# IDE / OS
.idea/
.vscode/
*.swp
.DS_Store

# Composer (lock file is committed; install with composer or source/composer.phar)
source/vendor/

# Tests / build
source/sqlite:*/
**/latch-rate-limit-*.sqlite
source/tests/.phpunit.cache/
**/.phpunit.result.cache
source/tests/api/config.local.php
source/tests/smoke/config.local.php
source/tests/api/user-token.local.json
source/tests/api/pkce.local.json
phpunit.xml
dist/

# Operator-only (excluded from release tarball; keep local)
PLAN.md
deploy
deploy/
!.github/
!.github/workflows/
!.github/workflows/**
docs/COPR.md
scripts/sync-latch.sh
scripts/publish-latch-server.sh
scripts/publish-latch-nopass.sh
scripts/publish-forum-db.sh
scripts/post-forum-updates.sh
scripts/post-documentation.php
scripts/post-security-news.php
scripts/update-roadmap-post.php
scripts/latch-logs.sh
scripts/setup-api-test-client.sh
scripts/install-latch-security.sh
scripts/cleanup-latch-server.sh