v0.3.1 — self-healing cron scheduling (PRV_Cron_Guard)

Add PRV_Cron_Guard: idempotent init-hook guard that re-schedules
prv_weekly_probe and prv_daily_prune when missing (e.g. after
an rsync deploy that bypasses the activation hook).

- New class: includes/core/class-prv-cron-guard.php
  - Hooks on init; two wp_next_scheduled() checks on hot path
  - Delegates to PRV_Cron::schedule() and PRV_Prune_Cron::schedule()
    so recurrence + offset are always canonical (no inline divergence)
  - Idempotent: no-op when events already scheduled
- PRV_Plugin::init(): wires PRV_Cron_Guard::register_hooks()
- Tests: tests/unit/test-cron-guard.php (missing, idempotent, recurrence)
- Bump version 0.3.0 -> 0.3.1 (header + PRV_VERSION constant + bootstrap)
- CHANGELOG: [0.3.1] entry
This commit is contained in:
peptiderepo
2026-06-15 13:52:12 +00:00
parent 2e2c72cac6
commit a23644b1af
6 changed files with 196 additions and 4 deletions

View File

@@ -27,7 +27,7 @@ if ( ! defined( 'ARRAY_N' ) ) {
define( 'ARRAY_N', 'ARRAY_N' );
}
define( 'PRV_VERSION', '0.3.0' );
define( 'PRV_VERSION', '0.3.1' );
define( 'PRV_PLUGIN_FILE', __DIR__ . '/../pr-vision.php' );
define( 'PRV_PLUGIN_DIR', realpath( __DIR__ . '/..' ) . '/' );
define( 'PRV_PLUGIN_URL', 'http://example.test/wp-content/plugins/pr-vision/' );