Repository navigation
Operations
- Pickup: every 2 minutes through cron-job.org → GitHub Actions.
- League: every 5 minutes through cron-job.org → GitHub Actions.
- Watchdog + weather: every 6 hours through native GitHub Actions.
- Release eligibility: hourly.
- Web/PWA API: event driven through Cloudflare.
The retired external watchdog schedule stays disabled.
Allowed proactive Web Push:
- pickup RSVP/capacity changes;
- real RATS schedule changes;
- one combined release notice per Pacific day.
Operational health, tests, deployments, commits, PRs, score-only changes, and setup reminders do not generate user notifications.
The league watcher compares newly validated RATS fixtures with the previous verified feed and writes a transient change list. The encrypted BallerWatch notification board and Web Push record schedule alerts and one-hour reminders without Google permissions or any external calendar. The built-in match calendar combines pickup and league games for everyone, including guests.
- Set temporary repository secret
BALLERWATCH_RECOVERY_PASSWORD. - Run Reset web user password with confirmation
RESET. - Verify success.
- Delete/rotate the temporary secret.
- Sign in to the PWA with the new password.
The reset also revokes existing signed-in devices.
Run Purge current data, type PURGE. It deletes generated runtime state and reinitializes Web Push identity. Source code and repository/Worker secrets remain.
Cloudflare failure affects live PWA API/Q&A/board reads but does not stop cron-job.org pickup/league dispatch or native GitHub maintenance. Runtime-state read failure can use encrypted Actions-cache backup where supported. Invalid release/runtime credentials fail closed.