Skip to content

Conversation

@akirk
Copy link
Member

@akirk akirk commented Jan 21, 2026

Based on #3155.

Motivation for the change, related issues

When a plugin breaks a Personal Playground WordPress site, users need a way to recover. This adds a Health Check recovery option that enables troubleshooting mode, disabling all plugins so users can identify the problematic one.

Screenshots

Screenshot 2026-01-22 at 04 30 53 Screenshot 2026-01-22 at 04 31 30

Implementation details

  • health-check-recovery.ts: Blueprint that installs Health Check plugin and an MU-plugin to bypass hash verification, enabling troubleshooting mode
  • getBlueprintUrl(): Encodes blueprints as base64 data URLs for easy sharing
  • Recovery section in PersistentPlaygroundOverlay with expandable "Install Health Check & Troubleshoot" button

Testing Instructions (or ideally a Blueprint)

  1. Run npm run dev and visit http://127.0.0.1:5401
  2. Open the menu (grid icon) and scroll to "Recovery" section
  3. Click "you can troubleshoot" to reveal the recovery button
  4. Click "Install Health Check & Troubleshoot"
  5. Verify it installs Health Check and lands on plugins page in troubleshooting mode

@akirk akirk force-pushed the persistent/enable-persistent-deployment branch from 2899417 to c278f6e Compare January 21, 2026 16:24
@akirk akirk force-pushed the persistent/health-check-recovery branch from fcb299c to 5dfd325 Compare January 21, 2026 16:25
@akirk akirk changed the title Add Health Check recovery for persistent sites [website] Add Health Check recovery for persistent sites Jan 21, 2026
@akirk akirk force-pushed the persistent/health-check-recovery branch from 5dfd325 to de5b08e Compare January 21, 2026 18:02
@akirk akirk force-pushed the persistent/enable-persistent-deployment branch from 90b5665 to eeb8f50 Compare January 21, 2026 18:14
@akirk akirk force-pushed the persistent/health-check-recovery branch 2 times, most recently from 1baf5fd to 9676f6f Compare January 22, 2026 03:10
@akirk akirk changed the title [website] Add Health Check recovery for persistent sites [website] Personal Playground: Add Health Check recovery Jan 22, 2026
@akirk akirk force-pushed the persistent/health-check-recovery branch from 6192b58 to 30ade19 Compare January 22, 2026 14:41
@akirk akirk force-pushed the persistent/enable-persistent-deployment branch from 2a32bba to fd63f4c Compare January 23, 2026 03:41
@akirk akirk force-pushed the persistent/health-check-recovery branch from 30ade19 to 6ee19d9 Compare January 23, 2026 05:03
@akirk akirk changed the title [website] Personal Playground: Add Health Check recovery [personal-wp] Add Health Check recovery Jan 23, 2026
Base automatically changed from persistent/enable-persistent-deployment to trunk January 23, 2026 10:33
@adamziel adamziel requested a review from a team as a code owner January 23, 2026 10:33
@akirk akirk force-pushed the persistent/health-check-recovery branch from 6ee19d9 to c9b2a78 Compare January 23, 2026 12:07
@akirk akirk force-pushed the persistent/health-check-recovery branch from c9b2a78 to 473eae4 Compare January 23, 2026 13:17
slug: 'health-check',
},
options: {
activate: false,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! This makes it reasonably safe to run even when WordPress is in a fatal error state. I don't think we ever include wp-load.php just for the installation.

toPath: '/wordpress/wp-content/mu-plugins/health-check-troubleshooting-mode.php',
},
{
// Add an MU-plugin that loads before health-check (alphabetically: "0" < "h")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Smart!

@adamziel adamziel merged commit bdc1079 into trunk Jan 23, 2026
35 checks passed
@adamziel adamziel deleted the persistent/health-check-recovery branch January 23, 2026 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants