CI / ruff · pytest (pull_request) Successful in 2m24s
Gitea Actions: lint + tests, then infra/deploy/deploy.sh over ssh as the dedicated ptsr-deploy user (secrets DEPLOY_SSH_KEY, DEPLOY_HOST), then an HTTPS smoke check. deploy.sh now ships a tar.gz via scp and retries every remote step (the host drops some ssh connections); the web build runs as the deploy user so the next release can clean up. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>