=== Failsafe ===
Contributors: cliff
Tags: backup, restore, restore point, safe updates, rollback
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 0.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Verified restore points. Failsafe proves your backup will actually restore before you need it, and
gates risky updates behind a rollback it has tested.

== Description ==

Every backup plugin makes a backup. Almost none of them ever check that the backup *restores* — you
find that out on the worst day, when the zip is corrupt or the database dump won't import. Failsafe's
whole job is to make the undo real.

* **Creates restore points** — a database snapshot, plus (Whole-site) the whole install or (Standard)
  just the files an update is about to change.
* **Proves them** — the database is actually test-restored into throwaway scratch tables, and every
  file in the archive is read back and checked. A point isn't trusted until it's proven.
* **Gates updates** — before a core/plugin/theme update, it creates + verifies a restore point, and
  stops the update if it can't be verified.
* **Rolls back automatically** — if the update breaks the front page, it restores the proven point.
* **Stays warm** — keeps a freshly-verified restore point on a schedule.

Two scopes, one toggle: **Standard** (database + changed files) or **Whole-site** (the whole install).

= Honest about "verified" =
The database is genuinely test-restored (proven to load). Files are integrity-verified — every entry
read back and critical files confirmed present (proven complete + extractable, not "booted as a
second live site"). Failsafe tells you which strength applies to each point. Either way it's far more
than the usual zip-and-hope, because most plugins verify nothing.

= Not in this version =
Off-site storage, incremental backups, multisite, and boot-level file verification are out of v1.

== Installation ==

1. Copy or symlink this folder into wp-content/plugins/ and activate.
2. Go to Failsafe, pick your scope (Standard or Whole-site), and leave "Gate updates" on.
3. Click "Create + verify now" to make your first proven restore point.

== Frequently Asked Questions ==

= Do I need the PHP zip extension? =
No. Failsafe uses ZipArchive when it's available and falls back to PclZip, which WordPress bundles.

= What happens if a restore point can't be verified? =
With the update gate on, the update is stopped rather than applied against a backup that might not
restore. You can turn the gate off to override.

= Will it restore from a backup it hasn't checked? =
No — it refuses to restore from an unverified point (unless you force it). Restoring from an unproven
backup is exactly what this plugin exists to prevent.

== Changelog ==

= 0.1.0 =
* First version: verified restore points (database test-restore + file integrity), Standard and
  Whole-site scopes, the update gate with auto-rollback, scheduled warm restore points, and a
  ZipArchive/PclZip archive layer so it runs on hosts without the zip extension.
