Two e2e tests failed now and then on main (runs 56 and 59): after a force-push they run git gc and expect the commit the owner read to be gone.
Cause: a push refreshes refs/pull/N/head and refs/pull/N/merge asynchronously. When gc ran first, those refs still pointed into the old history and kept the commit. Test timing only: publication already checks the current branch tips, so a late event cannot restore stale refs.
Fix: both tests reconcile the pull refs synchronously with CI.RescanPulls before gc, and assert the read commit is unreachable from every ref. No product change, no sleep.
Checks: the two tests 30/30 with -race; build, vet, hexcheck, golangci-lint, go test ./..., race on usecase and app.