Changelog
All notable changes to this project are documented in this file by a CI job that runs on every NPM release. The file follows the Keep a Changelog format.
[v3.1.59] (2026-10-19)
Documentation
- CORS proxy: Pin validated destinations on custom ports. (#4416)
Contributors
The following contributors merged PRs in this release:
@brandonpayton
[v3.1.58] (2026-10-12)
Documentation
- [i18n] Translate php-frameworks guide into Gujarati. (#4380)
PHP WebAssembly
- [PHP-WASM] Allow worker requests to use the primary PHP instance. (#4387)
- [PHP-WASM] Avoid timer delays between PHP socket reads. (#4384)
- [PHP-WASM] Buffer localhost HTTP uploads and preserve cancellation. (#4390)
- [PHP-WASM] Index filesystem journal entries by path. (#4385)
- [PHP] Bound pending reads when restoring OPFS sites. (#4386)
- [PHP] Retain current OPFS mounts across PHP runtime rotation. (#4389)
- [Website] Add the Reprint connection and PHP stream adapter. (#4397)
Website
- Clone live WordPress sites with Reprint (behind the ?reprint flag). (#4402)
- Fix blank editor canvas with Gutenberg 22.4–22.7 in Chromium. (#4401)
- Fix editor preview isolation without service worker state. (#4388)
- Import Reprint SQL and verify the administrator session. (#4400)
- Keep late autosaves from changing the active site URL. (#4394)
- Pull Reprint files directly into the Playground directory. (#4399)
- Test PHP snippets against the local Playground build. (#4398)
- [Web] Cache offline assets only from the Playground origin. (#4391)
Reliability
- [PHP-WASM] Track PHP log replacement separately for each Playground. (#4392)
Various
- CORS proxy: Preserve custom ports in redirects. (#4417)
Contributors
The following contributors merged PRs in this release:
@adamziel @brandonpayton @JanJakes @rahultank-spaceo
[v3.1.57] (2026-10-05)
Blueprints
- Allow writeFiles to omit resource for inline file trees. (#4359)
- Docs: Add a complete importThemeStarterContent example. (#4355)
Documentation
- Document ESM and CommonJS build check. (#4361)
- [docs] Generate handbook manifest during documentation builds. (#4332)
- [docs] Updating WASM compiling doc. (#4316)
- [docs] Updating resource documentation with new talks. (#4356)
- [i18n] Translate 'translations' file into Gujarati. (#4367)
- [i18n] Translate phpunit-testing guide into Gujarati. (#4368)
- [i18n] Translate troubleshoot file into Gujarati. (#4369)
- [i18n] Update Tagalog code contributions guide to match English documentation. (#4354)
- docs(i18n): Translate 06-bundles documentation to Gujarati. (#4371)
PHP WebAssembly
- Replace bare .wasm imports with new URL() in web loaders. (#4347)
Website
- Acknowledge Blueprint install relay requests. (#4350)
- Define `DB_PATH` for explicit SQLite database paths. (#4374)
- Preserve core icon SVGs in minified WordPress builds. (#4345)
Contributors
The following contributors merged PRs in this release:
@akirk @fellyph @JanJakes @Kotiyajenish @mho22 @rahultank-spaceo @rakeshnagar10 @rollybueno @sonali195
[v3.1.56] (2026-09-28)
Documentation
- Add CONTRIBUTING.md linking to the Playground handbook. (#4288)
- Tagalog/main/guides. (#4352)
- [CORS Proxy] Don't relay server-control response headers. (#4364)
- [CORS Proxy] Support HEAD and relay Content-Length for non-chunked responses. (#4365)
- [CORS Proxy] Support range requests from browsers. (#4362)
- [docs] Adding MCP playground guide. (#3826)
- [i18n] Translate releases into Gujarati. (#4360)
- [i18n] Update Tagalog Contributor Day guide to match English documentation. (#4353)
Experiments
Website
- Support randomized SQLite database storage. (#4344)
Website
- Migrate remaining Cypress tests to Playwright. (#4358)
Blueprints
- Remember and mount plugins/themes from git in the Files browser. (#4300)
Various
- [CI] Restore the working tree before republishing missing packages. (#4349)
Contributors
The following contributors merged PRs in this release:
@adamziel @akirk @brandonpayton @fellyph @JanJakes @karan241296 @mho22 @rollybueno @swcidd
[v3.1.55] (2026-09-21)
Tools
PHP WebAssembly
- Align Node.js engine requirements with WordPress Core 24.x. (#4322)
Documentation
- Authenticate remote access host signaling. (#4327)
- Redirect English documentation pages to developer.wordpress.org. (#4331)
- [i18n] Translate GitHub UI contribution guide into Gujarati. (#4324)
PHP WebAssembly
- Generate Markdown references for the Playground handbook. (#4337)
Website
- Escape and sandbox the Blueprint Builder error iframe. (#4329)
- Explain Gutenberg PR preview failures by proxy error code. (#4342)
- Expose mails to MCP and WebMCP. (#4334)
- fix(website): Retarget Gutenberg PR artifact to gutenberg.zip. (#4330)
Bug Fixes
- fix(meta): changelog: Prevent Markdown/<HTML/> injection via PR titles. (#4333)
Various
- Add troubleshooting mode to Personal WordPress crash dialog. (#4343)
- Remove URL site setup and add PHP setting to my.wordpress.net. (#4340)
Contributors
The following contributors merged PRs in this release:
@ahirpravin @akirk @brandonpayton @mho22 @mirka @zaerl
[v3.1.54] (2026-09-14)
Tools
PHP WebAssembly
- [Website] Simplify the Dock with modular developer tools. (#4312)
Documentation
- [i18n] Update Tagalog intro.md to match English documentation. (#4315)
- [i18n] Update Tagalog quick start guide for the Dock UI. (#4314)
- [i18n] Update Tagalog web instance documentation for the Dock UI. (#4313)
Website
- Await php.ini writes during boot. (#4265)
- Remove abandoned metadata-only autosaves on site loading. (#4319)
Various
- Add My WordPress referrer marker help. (#4317)
- Record which channel new and returning Personal WP visits came through. (#4310)
- Track exact My WP streak lengths. (#4318)
Contributors
The following contributors merged PRs in this release:
@adamziel @akirk @fellyph @mho22 @rollybueno
[v3.1.53] (2026-09-07)
Documentation
- Personal Playground: Let a WordPress page request a site backup. (#4304)
- [Docs] Add GitHub UI documentation contribution guide. (#3724)
- [i18n] Add Bengali (bn) translation for the troubleshooting page. (#4289)
PHP WebAssembly
- Fix external PHP extension ABI exports. (#4108)
Website
- Exclude PHP next from pre-emptive offline loading. (#4294)
- Only render same-origin blob: URLs in the editor iframe's empty.html. (#4308)
Blueprints
- Proxy WebMCP tools registered inside the WordPress iframe. (#4301)
Various
- Add daily/weekly/monthly activity streaks to Personal WP usage stats. (#4305)
- Fold renamed plugin slugs together in the Personal WP stats dashboard. (#4306)
Contributors
The following contributors merged PRs in this release:
@adamziel @akirk @brandonpayton @chubes4 @ekamran @ikamal7
[v3.1.52] (2026-08-31)
Blueprints
- Run
wp db querythrough$wpdbin the wp-cli step. (#4277)
Documentation
- Docs: Replace rewrite-flushing writeFile examples. (#3806)
- [docs] Rename duplicate manifest slugs breaking developer.wordpress.org pages. (#4266)
Website
- [MCP] Update WebMCP registration API. (#3844)
Various
- CI: Slim down the Auto-label PR checkout to the minimum needed. (#4291)
- [CI] Label PRs from git diff instead of the pulls.listFiles API. (#4290)
- [CI] Reduce Actions artifact storage from Playwright and deploy uploads. (#4279)
- [CI] Republish packages missing after a partial NPM release. (#4270)
Contributors
The following contributors merged PRs in this release:
@akirk @bgrgicak @brandonpayton @ekamran @mho22 @obenland
[v3.1.51] (2026-08-24)
Website
- Auto-prepend PHP scripts before snippet execution. (#4262)
- Fix CI end-to-end failures after WP 7.1 / Gutenberg 23.8. (#4274)
- Improve Personal WP loading resilience. (#4275)
Blueprints
- Add Terminal to the Dock. (#3808)
Various
- [personal-wp] Backup reminder follow-ups. (#4276)
- [personal-wp] Review my WordPress UI with impeccable. (#4255)
Contributors
The following contributors merged PRs in this release:
@adamziel @akirk @fellyph
[v3.1.50] (2026-08-17)
Experiments
PHP WebAssembly
- [PHP-WASM] Add shared Base64 helpers. (#3726)
PHP WebAssembly
- Persist pooled PHP writes to saved sites. (#4260)
- [Website] Add captured mail viewer. (#4000)
- [Website] Forward captured sendmail messages. (#4103)
Contributors
The following contributors merged PRs in this release:
@ashfame @bgrgicak
[v3.1.49] (2026-08-10)
Documentation
- [docs] Correct "Open AI" branding to "OpenAI". (#4245)
Website
- Add lightweight saved-site export API. (#4219)
- Configure saved-site export API deployment. (#4220)
- End-to-end Test for api.html site export. (#4231)
- Explain the saved-site export API page. (#4233)
- Hide incomplete autosaves from recovery. (#4244)
- Prevent storage end-to-end retries from canceling CI. (#4249)
Bug Fixes
- Fix doc screenshots skill Markdown. (#4239)
Contributors
The following contributors merged PRs in this release:
@amitraj2203 @ashfame @brandonpayton
[v3.1.48] (2026-08-03)
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:
@adamziel @ashfame @fellyph
[v3.1.47] (2026-07-27)
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
[v3.1.46] (2026-07-20)
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:
@adamziel @ashfame
[v3.1.45] (2026-07-16)
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)
- Remove obsolete Site Manager UI scaffolding. (#4078)
- Remove same-site autosave recreation API. (#4069)
- Rename Site Settings and defer settings action choices. (#4071)
- Render Playground logs as escaped text. (#4031)
- Reuse GitHub import details in the export form. (#4045)
- Run edited Blueprints in fresh Playgrounds. (#4067)
- Save pending Blueprint edits before Run. (#4022)
- Separate Site Manager tool panels from its header. (#4057)
- Separate in-place and fresh-site settings actions. (#4034)
- Show Playground names in the startup progress bar. (#4029)
- Show export text in the GitHub login prompt. (#4048)
- Show the current boot stage in startup progress. (#4062)
- Stop booting interrupted browser-stored Playground saves. (#3787)
- Stop default WordPress tests from checking version classes. (#3984)
- Store setup params in OPFS site metadata. (#3958)
- Use graphite icons for dock pane actions. (#4068)
- Use the shared file explorer in the Blueprint editor. (#3990)
- Wrap YouHaveAutosaveNudge with RecentAutosaveNudge context for Dock. (#4047)
- [Blueprints] Support v2 in the browser without ?experimental-blueprints-v2-runner=yes. (#3997)
- [Dock UI] Add dock tabs and pane state primitives. (#3988)
- [PHP] Add streaming tar parser for WordPress bundles. (#3926)
- [PHP] Add zstd decoder stream for tar bundles. (#3927)
- [PHP] Preserve empty directories in tar.zst core bundles. (#3972)
- [PHP] Remove redundant static ZIP from core bundles. (#3916)
- [PHP] Replace WordPress core bundles with tar.zst. (#3919)
- [Web] Capture sendmail stdin in remote Playground instances. (#4063)
Blueprints
- Keep ZIP imports running during overlay close attempts. (#3979)
- Report Blueprint v2 analytics events. (#4006)
- [Blueprints] Publish v2 in the Blueprint schema. (#3999)
Internal
- [CI] Disable unrelated Microsoft apt feeds before runner dependency installs. (#3931)
- [CI] Schedule asset refreshes before weekly deploy. (#4065)
- [PHP] Add path containment resolver. (#3921)
Bug Fixes
- [CI] Fix NPM package publishing error. (#4079)