listPullRequestsAssociatedWithCommit is eventually-consistent after a squash
merge; the single immediate call intermittently flagged legit merges as
'direct push to main'. Now polls up to 5x/10s before opening an issue.
Agent-Session: cto audit-race-fix
The deploy workflow references ci.yml as a reusable workflow
via `uses: ./.github/workflows/ci.yml`. Without workflow_call
in the trigger list, GitHub Actions rejects the reference.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rsync over SSH on push to main. Runs CI first, then syncs
production files to wp-content/plugins/peptide-reconstitution-calculator/
on Hostinger. Includes LiteSpeed cache purge and health check.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>