You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recover undecryptable Google credentials — when the stored account data can't be decrypted (AUTH_KEY changed after a migration/restore, or a corrupted option), the Settings tab now shows a "Reset stored credentials" button so you can clear the unrecoverable data and reconnect a fresh Google account.
Fixes the reconnect dead-end — previously the plugin refused to modify the undecryptable accounts blob, so reconnecting was impossible; the reset path clears it safely (no-op if data still decrypts).
Bug fixes & hardening
Missing-Email / slot counts aligned with the assignment slot check: revocation_error rows no longer count as occupying a slot, so a recipient stuck in Drive-delete retry surfaces as an open assignable slot.
Self-service rate limits refunded on no-side-effect submissions (typo, no free slots, item mismatch) so a failed attempt no longer burns a per-order/per-IP token for the hour.
VALUES() upsert replaced with the INSERT ... AS new syntax (MySQL 8.0.20+ deprecation).
Backfill jobs retention sweep — completed/failed jobs older than 30 days are pruned hourly under a named lock (filterable via wgdp_backfill_retention_days).
Dashboard recent-failures list cached (2-min TTL) to stop scanning the whole entitlements table on every dashboard load.
IP throttling now honors a trusted X-Forwarded-For chain when configured via the wgdp_trusted_proxies filter (never for untrusted peers).
Claim-page OTP CSS registered under its own handle instead of piggybacking on wp-block-library.
Partial-refund candidates exclude revocation_error rows; get_siblings() now orders deterministically; admin re-provision revokes via Drive delete when a permission id is present; Access Manager total folds injected unassigned rows into the reported count.
Notes
Uses the standard GitHub updater (Flow B manual release). Added build_plugin.py for future releases.