Releases: WordPress/wordpress-playground
Release list
WordPress Playground v3.1.48
Documentation
- Support wildcard CORS proxy origins. (#4156)
- [Docs] Document the Playground Dock and persistence workflow. (#4081)
- [docs] Add doc-screenshots agent skill and regenerate documentation screenshots for the new UI. (#4124)
- [docs] Adding WASM PHP modules page. (#4010)
PHP WebAssembly
- [CLI] Fix concurrent SQLite stress fixture length. (#4189)
- [PHP-WASM] Ignore null iframe relay messages. (#4174)
- [PHP-WASM] Include dot entries in mounted directory scans. (#4222)
- [PHP-WASM] Route Window APIs through dedicated MessagePorts. (#4178)
- [Website] Display ZIP import progress. (#4176)
Website
- Hide Blueprint file browser toggle on desktop. (#4197)
- Keep ZIP drop listeners active through rerenders. (#4214)
- Label mobile Blueprint file explorer as Files. (#4181)
- Start a fresh Playground after interrupted OPFS sync. (#4177)
- Center the Dock refresh button between the frame and URL field. (#4225)
- Center the mobile Dock refresh button between the edge and URL field. (#4226)
- Close Site Settings when a submission starts. (#4201)
- Don't delete the Playground you're currently in. (#4187)
- Drop the Dock operation toast to the Dock only when the pane leaves no room. (#4212)
- Keep Blueprint loading status visible during filesystem setup. (#4205)
- Keep Dock focus rings inside tool buttons. (#4182)
- Keep ZIP reimports from reusing stored Playground slugs. (#4199)
- Keep autosaves running after switching Playgrounds. (#4196)
- Keep the ZIP drop overlay active over frames. (#4179)
- Label the current Playground storage state. (#4194)
- Map Playground chrome colors to the WordPress palette. (#4191)
- Match the URL field height to adjacent controls. (#4203)
- Refer to the current Playground in fresh-site settings. (#4198)
- Restore the Dock when a drag loses pointer capture. (#4216)
- Reuse MenuItem descriptions for contextual action hints. (#4193)
- Separate Blueprint warnings and errors and preserve rounded Dock panes. (#4097)
- Separate Playground storage status from save actions. (#4192)
- Show ZIP import notices while autosave continues in background. (#4195)
- Support filtered saved-site ZIP exports. (#4217)
- Surface Blueprint editor action feedback in the Dock toast. (#4143)
- [CI] Reclaim Cypress browser memory between Playground boots. (#4204)
- [Docs] Route Playground guides through Dock workflows. (#4082)
Blueprints
- Preserve auto-login across browser-stored Playground reopens. (#4185)
Internal
- [CI] Compare affected tasks with the last successful run. (#4190)
Various
- [Website] Increase mobile Files heading to 18px. (#4188)
Contributors
The following contributors merged PRs in this release:
Install via npm:
npm install @wp-playground/client@3.1.48
Or browse all packages on npm.
Stay up to date: Click Watch → Custom → Releases at the top of this repository to get notified of new releases.
WordPress Playground v3.1.47
Documentation
PHP WebAssembly
- [Blueprints] Make WordPress file imports failure-safe. (#3848)
- [Blueprints] Report ZIP extraction progress during WordPress imports. (#4168)
Website
- [Website] Fix phpMyAdmin page not found in Personal WP. (#4154)
Website
- Clarify New Playground and autosave failure states. (#4119)
- Add front-page thumbnails to saved Playgrounds. (#4133)
- Bind copied Blueprint bundles to their new Playground. (#4115)
- Detect the repository for pull request numbers. (#4120)
- Distinguish 404 errors from transient network failures. (#4114)
- Expose front-page thumbnail capture through PlaygroundClient. (#4142)
- Fix phpMyAdmin after opening Adminer. (#4144)
- Give failed Blueprint runs an explicit recovery path. (#4099)
- Import ZIP contents before initial browser persistence. (#4131)
- Keep unfinished Blueprint runs out of Recent and restore suggestions. (#4127)
- Log OPFS write worker failures. (#4125)
- Make desktop address suggestions clickable and input-width. (#4135)
- Preserve Blueprint recovery through GitHub authentication. (#4129)
- Preserve Playground records when OPFS deletion fails. (#4128)
- Preserve concurrent cross-tab metadata changes. (#4152)
- Preserve concurrent metadata while preparing Blueprint drafts. (#4116)
- Preserve plugin proxy default response headers. (#4157)
- Preserve selected Query API parameters when starting over after an error. (#4123)
- Prevent stale thumbnail captures from overwriting saved metadata. (#4167)
- Queue Blueprint Run during OPFS synchronization. (#4118)
- Remove stray plugin proxy expression. (#4158)
- Replace failed Blueprint runs before pruning autosaves. (#4134)
- Retry transient OPFS access handle contention. (#4149)
- Serialize concurrent OPFS metadata writes. (#4136)
- Share concurrent OPFS autosave operations. (#4140)
- Track Blueprint runs until their first OPFS copy succeeds. (#4126)
- Turn the Logs pane into a PHP error log. (#4122)
- Tweak confirmations copy and placement. And preserve the Playground URL through settings update. (#4150)
- Validate plugin proxy redirect destinations. (#4137)
Blueprints
- Accept ZIP drops across the page. (#4121)
- Reveal ZIP imports while their browser autosave finishes. (#4132)
- [Blueprints] Export and import all site files except Playground runtime files. (#4141)
- [Blueprints] Export complete versioned Playground ZIP snapshots. (#4139)
- [Blueprints] Import versioned ZIP user content while retaining legacy defaults. (#4130)
Contributors
The following contributors merged PRs in this release:
@adamziel @ashfame @brandonpayton @fellyph
Install via npm:
npm install @wp-playground/client@3.1.47
Or browse all packages on npm.
Stay up to date: Click Watch → Custom → Releases at the top of this repository to get notified of new releases.
WordPress Playground v3.1.46
Blueprints
- Declare v2 schema constraints beside their types. (#4077)
Documentation
- [Docs] Describe Playground tools with the Dock UI. (#4085)
- [Docs] Document Dock paths in Blueprint and API documentation. (#4083)
PHP WebAssembly
- [CLI] Use preferredVersions.wp in Playground CLI. (#4075)
- Harden non-streaming fallback tests for fetchWithCorsProxy. (#3495)
- [PHP-WASM] Expose recursive cp through PHPWorker. (#4061)
Website
- Add a square mobile Dock with a tools toggle. (#4088)
- Add end-to-end coverage for playground-zip import regressions. (#3874)
- Align mobile Dock pane titles, toolbars, and forms. (#4084)
- Anchor the autosave nudge to the Playgrounds Dock button. (#4096)
- Ask before reloading edited Blueprint fragments. (#4089)
- Clarify New Playground action labels. (#4090)
- Decode JSON-encoded <php-snippet> child payloads. (#4101)
- Keep the file editor Save control stable during autosave. (#4073)
- Make Playgrounds pane rows span the Dock width. (#4086)
- Match local-directory status to the autosave callout. (#4100)
- Name Dock pane state after the Dock. (#4080)
- Place Dock panes above the visible collapsed row. (#4112)
- Render error dialogs as Quiet Paper sheets. (#4102)
- Restyle the GitHub connect prompt to match the Dock. (#4094)
- Use outward glyph for Dock Export. (#4091)
Contributors
The following contributors merged PRs in this release:
Install via npm:
npm install @wp-playground/client@3.1.46
Or browse all packages on npm.
Stay up to date: Click Watch → Custom → Releases at the top of this repository to get notified of new releases.
Experimental native CLI package for PR #3837 – macOS – 9a437319
Warning
This is a one-off experimental build from draft PR #3837. It is not an npm
release, is not marked latest, and is not intended for production use.
Source commit: 9a437319d6c5ac47d92cb8f0f265e6ed1b36914b
The private npm tarball contains the portable PHP 7.4–8.5 WASIp2 components,
SQLite/WAL integration, JavaScript API, declarations, and CLI launcher. The
native macOS hosts remain separate release assets. The packaged manifest picks
the correct Intel or Apple Silicon host and verifies both its compressed and
executable SHA-256 digest before running it.
Assets
wp-playground-cli-native-3.1.45.tgzwp-playground-native-darwin-x64.gzwp-playground-native-darwin-arm64.gznative-host-manifest.jsonprerelease-provenance.jsonSHA256SUMS
Both hosts and the exact final tarball were installed and exercised with PHP
8.2 on fresh macOS Intel and Apple Silicon GitHub runners before publication.
Try the CLI directly
TAG=native-cli-pr-3837-9a437319-macos-v1
BASE="https://github.com/WordPress/wordpress-playground/releases/download/$TAG"
mkdir -p /tmp/wp-playground-cli-native-test
cd /tmp/wp-playground-cli-native-test
npm init -y
npm install "$BASE/wp-playground-cli-native-3.1.45.tgz"
export WP_PLAYGROUND_NATIVE_HOST_BASE_URL="$BASE/"
export WP_PLAYGROUND_NATIVE_CACHE_DIR="$HOME/.wordpress-playground/native-pr3837-9a437319"
npx wp-playground-cli runtime install
npx wp-playground-cli start --php=8.2 --skip-browserThe trailing slash in WP_PLAYGROUND_NATIVE_HOST_BASE_URL is required.
Try it in a local Studio checkout
Start from a Studio checkout whose dependencies are already installed, then
replace only the local @wp-playground/cli installation. This changes neither
Studio's package manifest nor its lockfile:
TAG=native-cli-pr-3837-9a437319-macos-v1
BASE="https://github.com/WordPress/wordpress-playground/releases/download/$TAG"
npm install --ignore-scripts --no-save --package-lock=false \
"@wp-playground/cli@$BASE/wp-playground-cli-native-3.1.45.tgz"
export WP_PLAYGROUND_NATIVE_HOST_BASE_URL="$BASE/"
export WP_PLAYGROUND_NATIVE_CACHE_DIR="$HOME/.wordpress-playground/native-pr3837-9a437319"
npm run cli:buildRun the resulting Studio CLI or your custom Studio build normally while those
two environment variables remain exported.
Verify downloads
curl -fL -O "$BASE/SHA256SUMS"
curl -fL -O "$BASE/wp-playground-cli-native-3.1.45.tgz"
curl -fL -O "$BASE/wp-playground-native-darwin-x64.gz"
curl -fL -O "$BASE/wp-playground-native-darwin-arm64.gz"
curl -fL -O "$BASE/native-host-manifest.json"
curl -fL -O "$BASE/prerelease-provenance.json"
shasum -a 256 -c SHA256SUMSWordPress Playground v3.1.45
Enhancements
- [Website] Add a file editor end-to-end test harness. (#3978)
Blueprints
- Add compiler support for more v2 data declarations. (#3967)
- Add runtime coverage for supported v2 declarations. (#3968)
- Add runtime tests for v2 post imports and post types. (#3982)
- Align Blueprint v2 schema types. (#3932)
- Compile Blueprint v2 declarations from raw JSON. (#3933)
- Execute every v2 schema variant in CI. (#4014)
- Ignore credential rewrites in git resource test. (#3941)
- Import nested WordPress file ZIPs. (#3986)
- Lower Blueprint v2 mysql-dump content to runSql. (#3944)
- Lower more Blueprint v2 declarations to v1 steps. (#3949)
- Point unsupported v2 execution errors at declaration fields. (#3940)
- Reject malformed v2 declarations before runtime setup. (#3998)
- Report progress for v2 compiler steps. (#3970)
- Support Blueprint v2 runSQL steps. (#3943)
- Support v2 WXR URL maps. (#3974)
- Support v2 WXR author options. (#3975)
- Test v2 login, language, mu-plugins, fonts, SQL, and PHP. (#4002)
Tools
Website
- [Website] Reuse FilePickerTree imports in the shared explorer. (#3973)
Documentation
- [docs] Adding manifest.json for handbook structure. (#3267)
PHP WebAssembly
- [CLI] Accept Blueprint v2 modes without an experimental flag. (#3993)
- Wire SMTP sink into PHP runtimes. (#3955)
- [CLI] Remove process.exit() from library APIs. (#3478)
- [PHP-WASM] Add per-command spawn handlers. (#3995)
- [PHP-WASM] Close child stdin when proc_open omits descriptor 0. (#4055)
- [PHP-WASM] Expose sendmail stdin as a live event stream. (#3996)
- [PHP-WASM] Route PHP popen through wasm wrappers. (#3951)
- [PHP-WASM] Transfer event stdin streams across workers. (#4060)
- [PHP-WASM] Transfer marked event stdin streams to every listener. (#4064)
- [PHP] Harden file writes and directory mounts. (#3917)
- [PHP] Keep OPFS mounts attached when final journal flushes fail. (#4003)
- [PHP] Normalize ZIP entries in unzipFile(). (#3923)
Blueprints
- [Blueprints] Add native Blueprint v2 CLI flow. (#3915)
- [Blueprints] Default v2 network access to disabled. (#3983)
- [Blueprints] Expand v2 with WP-less installs, baseline content policy, site resources, and multisite. (#4026)
- [Blueprints] Load v2 WordPress data-reference sources. (#4005)
- [Blueprints] Resolve v2 runtime WordPress versions. (#3987)
- [Blueprints] Stop shipping the PHP v2 runner. (#4011)
- [Blueprints] Stop using v2 WordPress max bounds as archive names. (#3992)
- [Blueprints] Test v2 runtime entry points. (#3985)
Website
- [Blueprints] Remove v2 experimental compatibility aliases. (#4007)
- [CLI] Add concurrent SQLite publish regression test. (#3920)
- [PHP] Add streaming tar.zst WordPress bundle extraction. (#3925)
Website
- Hide database tools until Playground is ready. (#4076)
- API for exporting saved OPFS Playground files as ZIP. (#3959)
- Add Blueprint bundle resource path helper. (#3966)
- Add an inert state and listbox navigation to the address bar. (#4058)
- Add reusable Playground export panel. (#4041)
- Add reusable Playground management and creation panels. (#4040)
- Add reusable dock pane primitives. (#3961)
- Animate the entire Dock pane when closing. (#4066)
- Autosave after dismissing restore prompts. (#4035)
- Center the Playground file-loading message. (#4072)
- Center the modal loading spinner over the page. (#4050)
- Create blueprint.json for editable Blueprints that have none. (#4052)
- Create stored Playgrounds from URLs or bundles. (#4025)
- Define Dock pane and notice positioning. (#4056)
- Define mysqli stub before custom db.php guard. (#3592)
- Delay autosave nudge until dismissal can save the new Playground. (#3823)
- Detect incomplete OPFS saves before boot. (#3962)
- Extract saved Playground state helpers. (#3989)
- Keep Adminer and phpMyAdmin checks on their related Playground and show download errors. (#4049)
- Keep autosave progress out of live announcements. (#3817)
- Keep pending file edits with their filesystem owner. (#4008)
- Keep the Dock corner launcher clickable after dragging. (#4059)
- Keep the current WordPress version in the settings dropdown. (#4051)
- Let Dock buttons be disabled and pane subtitles contain links. (#4054)
- Let the Blueprint editor show Dock controls. (#4053)
- Let the Playground save form render inside a Dock pane. (#4043)
- Mark Playground as persisted in the Redux store only after it is actually persisted. (#3960)
- Match the Blueprint URL export item height. (#4074)
- Move Playground tools into the bottom Dock. (#4009)
- Parse GitHub inputs before import, export, and preview. (#3945)
- Persist the Dock full-width preference. (#4046)
- Preserve stored boot settings when modifying settings of an autosaved Playground. (#3772)
- Push GitHub export updates to pull request head branches. (#3948)
- Put the Blueprint URL export hint inside the disabled item. (#4070)
- Read SQLite size without copying its contents. (#4033)
- Refine PWA launches on iOS. (#3742)
-...
Native CLI PR #3837 macOS build v3
Temporary macOS prerelease artifact for PR #3837 at commit 8f4e5856a23f8981576063cf70e0e5e38654f7d8.
Install on macOS:
curl -fsSL https://github.com/WordPress/wordpress-playground/releases/download/native-cli-pr-3837-8f4e5856-macos-v3/install-macos.sh | bashThe installer detects arm64 vs x86_64, downloads the matching zip, verifies the checksum, unzips into $HOME/Downloads/wp-playground-native-pr3837, and prints the command to start the installed binary. It does not start the server automatically.
Native CLI PR #3837 macOS build v2
Temporary macOS prerelease artifact for PR #3837 at commit 8f4e5856a23f8981576063cf70e0e5e38654f7d8.
Install on macOS:
curl -fsSL https://github.com/WordPress/wordpress-playground/releases/download/native-cli-pr-3837-8f4e5856-macos-v2/install-macos.sh | bashThe installer detects arm64 vs x86_64, downloads the matching zip, verifies the checksum, unzips into $HOME/Downloads/wp-playground-native-pr3837, and prints the command to start the installed binary. It does not start the server automatically.
Native CLI PR 3837 macOS test build 8f4e5856
Native CLI PR 3837 macOS test build 6698b0d1
macOS test build for PR #3837 from head commit 6698b0d. macOS arm64 and x64 packages were produced by CI run 28890488278. Package manifests record PR merge commit e72698b, whose second parent is 6698b0d. The packages include PHP 7.4 and PHP 8.0 through 8.5 from node-builds/*/wasmtime-async, including intl, redis, memcached, and xdebug extension assets. No asyncify paths were present in the package manifests. The installer downloads the matching package for the current Mac architecture, verifies SHA256, unzips it, and prints the command to run; it does not start the server.
Native CLI PR 3837 macOS test build 13ac5acc
macOS test build for PR #3837 from head commit 13ac5ac. macOS arm64 and x64 packages were produced by CI run 28880174426. Package manifests record PR merge commit d1440f0, whose second parent is 13ac5ac. The installer downloads the matching package for the current Mac architecture, verifies SHA256, unzips it, and prints the command to run; it does not start the server.