Ir al contenido principal

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.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)

Various

  • [PHP] Expose more metadata about each WordPress zip bundle. (#3924)
  • [Web] Harden remote access relay signals. (#3922)
  • [Website] Add an opt-in Dock presentation to the file editor. (#4042)
  • [Website] Bound file editor inline reads. (#3980)

Contributors

The following contributors merged PRs in this release:

@adamziel @ashfame @bgrgicak @brandonpayton @fellyph @gcsecsey

[v3.1.44] (2026-07-06)

Blueprints

  • Add Blueprint execution compile facade. (#3902)
  • Add TypeScript Blueprint v2 runner skeleton. (#3906)
  • Allow WXR imports to choose default author. (#3887)
  • Allow WXR imports to preserve source URLs. (#3877)
  • Allow WXR imports to skip attachment fetching. (#3878)
  • Allow WXR imports to skip comments. (#3880)
  • Allow skipping plugin install failures. (#3853)
  • Allow skipping theme install failures. (#3854)
  • Compile Blueprint v2 declarations into an execution plan. (#3908)
  • Document valid Blueprint v2 schema examples. (#3873)
  • Fix package typecheck target. (#3859)
  • Flush rewrite rules after setting permalink structure. (#3851)
  • Lower Blueprint v2 plan items to step records. (#3910)
  • Reject unsatisfied Blueprint v2 PHP constraints. (#3898)
  • Reject unsupported Blueprint v2 execution input. (#3904)
  • Remove WXR site options from Blueprint v2 schema. (#3884)
  • Require WXR author maps in Blueprint v2 types. (#3869)
  • Resolve Blueprint v2 PHP version constraints. (#3897)
  • Resolve Blueprint v2 network runtime option. (#3889)
  • Resolve Blueprint v2 runtime constants. (#3892)
  • Resolve exact Blueprint v2 PHP versions. (#3890)
  • Resolve latest Blueprint v2 PHP label. (#3896)
  • Resolve preferred Blueprint v2 WordPress versions. (#3894)
  • Resolve recommended Blueprint v2 PHP versions. (#3895)
  • Resolve simple Blueprint v2 WordPress versions. (#3891)
  • Restrict Blueprint v2 file references. (#3860)
  • Run lowered Blueprint v2 steps. (#3911)
  • Share Git repository URL detection logic. (#3858)
  • Support bundled Blueprint v2 resources. (#3912)
  • Support bundled Blueprints in execution compile facade. (#3900)
  • Support plugin activationOptions. (#3852)
  • Test Blueprint v2 runtime defaults. (#3888)
  • Type Blueprint v2 WXR author maps. (#3863)
  • Type Blueprint v2 WXR source lists. (#3868)
  • Type Blueprint v2 plugin collision handling. (#3865)
  • Type Blueprint v2 runtime version labels. (#3864)
  • Type Blueprint v2 theme collision handling. (#3867)
  • Type Blueprint v2 theme install failures. (#3866)
  • Type Blueprint v2 version constraints. (#3870)
  • Type nested Blueprint v2 inline directories. (#3861)
  • [installTheme step] Honor ifAlreadyInstalled for directory themes. (#3855)

Experiments

Website

  • [Storage] Replace isomorphic-git submodule with local adapter. (#3841)

GitHub integration

  • [Storage] Lazy-load git API modules. (#3840)

PHP WebAssembly

  • [Blueprints] Add Blueprint v2 web declarations. (#3850)
  • [Blueprints] Keep directory theme writes inside the target folder. (#3857)
  • [CLI] Avoid port conflicts when starting PHP-WASM network proxies. (#3722)

Website

  • Disable admin view transitions in Chromium. (#3886)
  • Fixed file browser covering the navigation. (#3829)
  • Resolve isomorphic-git browser entry without dependency lists. (#3885)
  • Track blueprint resource type if the resource doesn't have a theme/plugin slug. (#3862)
  • [E2E] Stabilize legacy boot and recreation checks. (#3901)
  • [E2E] Use routed CURLFile upload fixture. (#3893)
  • [PHP] Default Playground SQLite journal mode to DELETE. (#3909)
  • [Tests] Fix legacy WP plugin activation selector. (#3825)

Blueprints

  • Delay .zip Playground imports until OPFS sync is finished. (#3847)

Internal

  • [GitHub Actions] Fix empty changelog entries since v3.1.35. (#3800)

Contributors

The following contributors merged PRs in this release:

@adamziel @akirk @ashfame @bgrgicak @chubes4 @dhruvang21 @mho22

[v3.1.43] (2026-06-29)

[v3.1.42] (2026-06-26)

[v3.1.41] (2026-06-22)

[v3.1.40] (2026-06-19)

[v3.1.39] (2026-06-15)

[v3.1.38] (2026-06-08)

[v3.1.37] (2026-06-08)

[v3.1.36] (2026-06-01)

[v3.1.35] (2026-05-25)

[v3.1.34] (2026-05-18)

PHP WebAssembly

  • [PHP.wasm] Fix sqlite_markdown extension loading. (#3650)
  • [PHP.wasm] Support web JSPI side module ABI exports. (#3647)
  • [codex] Use wp-extensions markdown editor release. (#3648)
  • [website] Add php-extension query parameter. (#3645)

Various

Personal Playground

  • Personal WP: Improve app install dialog. (#3652)

Contributors

The following contributors merged PRs in this release:

@adamziel @akirk

[v3.1.33] (2026-05-14)

PHP WebAssembly

  • [PHP.wasm] Export filesystem symbols for PHP side modules. (#3643)

Website

  • [php-snippet] Simplify PHP snippet pointer handling. (#3640)

Contributors

The following contributors merged PRs in this release:

@adamziel

[v3.1.32] (2026-05-14)

PHP WebAssembly

  • Expose SQLite auto-extension symbols to JS ABI. (#3641)

Various

  • Export SQLite auto-extension symbols in Node PHP 8.4 JSPI artifact. (#3642)

Contributors

The following contributors merged PRs in this release:

@adamziel

[v3.1.31] (2026-05-14)

PHP WebAssembly

  • Export SQLite auto-extension symbols for PHP.wasm side modules. (#3524)
  • [CLI] Load custom PHP.wasm extensions. (#3616)
  • [CLI] Support staged PHP.wasm side modules. (#3620)

Website

  • Fix PHP snippet Run button pointer activation. (#3639)
  • Fix PHP snippet run controls. (#3636)
  • Polish PHP snippet run UI. (#3638)

Various

  • Simplify personal WP app installer. (#3623)
  • [DOCS] Running PHPUnit tests using the Playground CLI. (#3487)
  • [docs] Adding reference to awesome playground page. (#3499)

Contributors

The following contributors merged PRs in this release:

@adamziel @akirk @bgrgicak @fellyph

[v3.1.30] (2026-05-11)

Bug Fixes

  • Fix PHP-WASM node rebuild Docker context. (#3608)

Various

  • Serve index fallback on my.wordpress.net. (#3611)

Contributors

The following contributors merged PRs in this release:

@akirk @chubes4

[v3.1.29] (2026-05-07)

Blueprints

  • Personal WP: Remove fake browser chrome, improve dependent tab handling. (#3601)

Tools

PHP WebAssembly

  • [Package] Exclude unused dependencies when building package.json files. (#3232)

PHP WebAssembly

  • [PHP][Node] Export more side-module symbols to support the SQLite WASM extension (#3605). (#3605)

Contributors

The following contributors merged PRs in this release:

@adamziel @akirk @mho22

[v3.1.28] (2026-05-05)

PHP WebAssembly

  • Fix saved SQLite site boot. (#3588)
  • [compile-extension] Fetch Docker assets lazily. (#3598)

Website

  • Escape TinyMCE inline CSS in WP editor init. (#3597)

Internal

  • [Repo] Cap package labels and infer type labels. (#3574)

Contributors

The following contributors merged PRs in this release:

@adamziel @ashfame @JanJakes

[v3.1.27] (2026-05-04)

[v3.1.26] (2026-05-03)

Documentation

  • [Docs] how to use @php-wasm/compile-extension from a downstream repo. (#3595)

PHP WebAssembly

  • [PHP] Support extraFiles for custom PHP extensions. (#3580)
  • [compile-extension] Emit the new PHPExtensionManifest shape, add --extra-files. (#3596)

Website

  • [php-snippet] Highlight PHP snippet reruns. (#3594)

Contributors

The following contributors merged PRs in this release:

@adamziel

[v3.1.25] (2026-05-03)

Tools

Website

  • [Networking] Set curl.cainfo alongside openssl.cafile. (#3583)

Documentation

  • [Docs] Treat documentation changelog as CommonMark. (#3586)

PHP WebAssembly

  • [PHP.wasm] Export Zend symbols for compiling PHP extensions. (#3584)
  • [PHP] Limit external extensions to JSPI. (#3587)
  • [PHP] @php-wasm/compile-extension – a workflow for building custom extensions. (#3582)

Website

  • [PHP] Don't call prefetchUpdateChecks() when WordPress is disabled. (#3589)

Contributors

The following contributors merged PRs in this release:

@adamziel

[v3.1.24] (2026-05-01)

[v3.1.23] (2026-05-01)

Public API

Blueprints

  • [Client] Restore bundled type declarations. (#3576)

Contributors

The following contributors merged PRs in this release:

@adamziel

[v3.1.22] (2026-05-01)

Blueprints

  • Support .git repository URLs. (#3541)
  • Surface more activation errors from activatePlugin. (#3549)

Tools

  • [CLI-util] Replace Xdebug console logs with CLI output. (#3460)

PHP WebAssembly

  • [PHP] Add runtime extensions array API. (#3569)
  • [PHP] Support custom PHP.wasm extensions. (#3566)

GitHub integration

  • [GitHub Actions] Fix GitHub release missing changelog. (#3502)
  • [Github actions] Modify the time slot of the refresh-sqlite-integration workflow. (#3510)

Documentation

  • Docs: Treat changelog as a markdown file. (#3531)
  • Update documentation blueprint supporting encodeURIComponent URL fragments. (#3556)
  • [Docs] Link PR preview guide to canonical GitHub plugin pattern; refresh WP alias list. (#3548)
  • [Docs] Remove GitHub proxy mentions from active documentation. (#3540)
  • [PHP.wasm] Document bundler configuration for the .dat file import in @php-wasm/web. (#2776)
  • [docs] Replacing info component by compatible handbook element. (#3496)

PHP WebAssembly

  • [Asyncify] Fix fix-asyncify command. (#3509)
  • [CLI] Stabilize phpMyAdmin CLI tests. (#3554)
  • Stabilize file lock test cleanup. (#3552)
  • [Node] Handle symlinked directories in Node FS mounts. (#3551)
  • [PHP] Hold pooled workers until streamed responses finish. (#3553)
  • [PHP] Add TSRMLS_CC fallback defines for PHP versions above 7. (#3512)
  • [PHP] Fix MEMFS symlink crash during PHP runtime rotation. (#3500)
  • [Web] Fix non-deterministic TLS bridge failures from non-minimal DER serial numbers. (#3550)

Website

  • Add legacy WordPress support on PHP 5.2. (#3490)

Website

  • Embeddable PHP code snippets via <php-snippet>. (#3528)
  • <php-snippet> setup blueprints via