Pull Request
Last Updated
July 16, 2026
Purpose
Changes
-
Screenshots / Demos
Test Plan
npm run test:premergenpm run podman:doctorpasses when validating Podman-backed local flows- Same pre-merge gate run against
mainin a clean worktree when Worker or checkout logic changed - Manual smoke checklist completed for changed checkout / Worker flows (staging when available, otherwise documented local smoke fallback)
- Local Jekyll build ok
./scripts/test-e2e.sh --podmanpasses when browser checkout behavior changednpx playwright test tests/e2e/admin-dashboard.spec.ts --project=chromiumpasses when admin dashboard UI, i18n, accessibility, responsive behavior, or admin Worker contracts changednode --check assets/js/admin-dashboard.jspasses when dashboard JavaScript changed- First-party cart opens, no console errors
- Worker
/checkout-intent/startreturns the expected on-site custom-session bootstrap or hosted fallback response (test mode) - Pledge persistence stores tiers, support items, custom amount, and live totals refresh correctly
- Update Card flow still succeeds for active and
payment_failedpledges when touched - Countdown timers show correct values on page load (no “00 00 00 00” flash)
- Cron
workflow_dispatchcharges test pledges off‑session - Docs updated (if behavior or setup changed)
Security / Secrets
- No secrets committed
- Uses repo/Worker secrets only
- Admin dashboard changes do not expose/edit secret values; Secrets & credentials remains status-only
- Admin mutations preserve the intended storage path: GitHub-backed publish, KV-only Users save, KV-only saved referral codes, or read-only browse/export
Ethical Risk Review
- Reviewed
docs/ETHICAL_RISK.mdif this changes money, supporter data, messaging, analytics, automation, public sharing, or admin power - No new hidden data collection, tracking, public indexing, or private/tokenized prefetch behavior
- Consent, opt-out, suppression, dry-run, or recourse behavior is preserved where the change touches email, reminders, previews, marketing, or pledge management
- Abuse or misuse cases were considered for public pages, embeds, QR/referral links, Blast, admin roles, checkout, and reports when touched
- User-facing claims about campaign state, scarcity, tax, shipping, fees, tips, or totals still match Worker-canonical truth
Backward Compatibility
- No breaking content model changes
- If schema changes, updated
docs/DEV_NOTES.mdand sample campaigns - Existing campaign/add-on/tier/variant IDs are preserved unless the migration intentionally changes them