Releases: frankenpress/mu-plugin
v0.15.2
What's Changed
- fix(apply): flush rewrite rules after applying options.json by @MatthewKennedy in #51
Full Changelog: v0.15.1...v0.15.2
What's Changed
- fix(apply): flush rewrite rules after applying options.json by @MatthewKennedy in #51
Full Changelog: v0.15.1...v0.15.2
v0.15.1
What's Changed
- feat(apply): AuthorRemapper for WXR-imported post_author (fp pull Phase 2) by @MatthewKennedy in #50
Full Changelog: v0.15.0...v0.15.1
What's Changed
- feat(apply): AuthorRemapper for WXR-imported post_author (fp pull Phase 2) by @MatthewKennedy in #50
Full Changelog: v0.15.0...v0.15.1
v0.15.0
What's Changed
- chore(.aidocs): move cache-architecture.md here from workspace .aidocs/ by @MatthewKennedy in #47
- docs(readme): mark FP_SMTP_USERNAME/PASSWORD as conditionally required by @MatthewKennedy in #48
- feat: SnapshotExporter component (5th request-path) + Factory extract by @MatthewKennedy in #49
Full Changelog: v0.14.1...v0.15.0
What's Changed
- chore(.aidocs): move cache-architecture.md here from workspace .aidocs/ by @MatthewKennedy in #47
- docs(readme): mark FP_SMTP_USERNAME/PASSWORD as conditionally required by @MatthewKennedy in #48
- feat: SnapshotExporter component (5th request-path) + Factory extract by @MatthewKennedy in #49
Full Changelog: v0.14.1...v0.15.0
v0.14.1 — Tier 1D: mu-plugin clarity wins
What's Changed
- docs(claude): note v0.14.0 apply preflight as the convention by @MatthewKennedy in #45
- feat: Tier 1D — mu-plugin clarity wins by @MatthewKennedy in #46
Full Changelog: v0.14.0...v0.14.1
What's Changed
- docs(claude): note v0.14.0 apply preflight as the convention by @MatthewKennedy in #45
- feat: Tier 1D — mu-plugin clarity wins by @MatthewKennedy in #46
Full Changelog: v0.14.0...v0.14.1
v0.14.0 — apply preflight for missing snapshot binaries
Apply now hard-fails on missing snapshot binaries
When a snapshot's attachments.json declares binary files that aren't actually present under <snapshot_dir>/uploads/, wp fp apply used to silently land the attachment post row and skip the binary copy — leaving a broken-image front end and exit code 0. Designers hit this after the round-trip:
fp snapshot
docker compose down -v
docker compose up -d
fp apply
# DB has site_logo=42 but /app/web/app/uploads/2026/05/logo.png is missing → 404
This release adds a preflight pass at the top of Restorer::apply(). Missing files surface as a single WP_CLI::error() listing every offending path with a remediation hint. copy_binaries()'s silent continue is replaced with a throw (defense in depth for the preflight→copy race).
What changed
- New
Restorer::verify_attachment_binaries()runs before any DB writes. copy_binaries()now throws instead of silently skipping missing files.- New
tests/CliRestorerVerifyBinariesTest.phpcovers both branches.
Behaviour change
A snapshot whose attachments.json declares files not on disk now hard-fails at apply time. Schema is unchanged (fp.snapshot/v5). Most installs see no change — only those whose snapshot dirs were already missing binaries (e.g. corrupted commits, git LFS not pulled, manual cleanup) will surface as failures.
Upgrading
Site composer.json:
-"frankenpress/mu-plugin": "^0.13.0"
+"frankenpress/mu-plugin": "^0.14.0"Then rebuild and tag the site image, and roll through your GitOps. No data migration, no schema bump.
Full diff
What's Changed
- feat(apply): preflight check for missing snapshot binaries by @MatthewKennedy in #44
Full Changelog: v0.13.11...v0.14.0
v0.13.11
What's Changed
- fix(snapshot): emit empty templates_slugs entry for owned post types with no rows by @MatthewKennedy in #43
Full Changelog: v0.13.10...v0.13.11
v0.13.10
What's Changed
- fix(snapshot): drift linter accepts site-tracked plugins/themes by @MatthewKennedy in #42
Full Changelog: v0.13.9...v0.13.10
v0.13.9
What's Changed
- feat(snapshot/apply): warn on unreferenced media + set attachment post_author by @MatthewKennedy in #41
Full Changelog: v0.13.8...v0.13.9
v0.13.8
What's Changed
- feat(snapshot): drift linter — refuse to snapshot with non-composer plugins/themes by @MatthewKennedy in #40
Full Changelog: v0.13.7...v0.13.8
v0.13.7
What's Changed
- feat(apply): deletion-propagation reaper for orphan owned-post rows by @MatthewKennedy in #39
Full Changelog: v0.13.6...v0.13.7