Sync runner checkout / sync (push) Successful in 6s
## Summary - Fail when `--app` / `--env` match no `host_apps` row (was silent no-op) - Fail when `--app` missing from `app_catalog` Prevents "deploy succeeded" that only refreshed web-static nginx while skipping Django — what happened on [chat_backend run 205](https://git.aimloperations.com/ai_ml_operations/chat_backend/actions/runs/205) before `chat_backend` was registered on master. ## Test plan - [ ] `./scripts/deploy.sh --app does_not_exist --env prod` should fail with catalog message - [ ] `./scripts/deploy.sh --app chat_backend --env prod` should proceed with Django once catalog/host_apps presentReviewed-on: #6