v0.1.2
WordPress Contributor Toolkit v0.1.2
The Windows problems reported since v0.1.0 are fixed, so the app now properly runs end to end on Windows. And the dev server starts much faster: it no longer re-downloads WordPress or rebuilds the whole thing every time.
Reporting problems and providing feedback is also easier now. The app writes a log file you can open from the Help menu, there's a feedback button in the app itself, and the repository has issue templates.
Windows
Clone → install → build → dev server → WordPress wizard → wp-admin, verified on a clean Windows VM.
- The first full build no longer dies at
grunt gutenberg:verifywithspawn EINVAL(#56).wordpress-develop's Gruntfile spawns a barenode, which hit our shim; Node ≥ 20.12.2 refuses to spawn a.cmdwithout a shell. Every descendant process now resolvesnodeto Electron's own binary. - "Run first full build" shows its output, instead of an empty terminal, and no longer flashes black console windows across the screen (#52).
- Adminer opens the database browser instead of a page of PHP session warnings (#64).
- "Install npm dependencies" stays locked until the clone finishes (#51), so an early click can't half-install into an incomplete checkout.
- Sites show their folder name, not the whole
C:\Users\…path (#99). The renderer split paths on forward slashes, so any site added by pointing at an existing directory displayed in full.
Starting the dev server
- No re-download of WordPress and no full production rebuild on every start (#77, #74). A
skipWordPressSetupoption that doesn't exist in Playground's API was being passed and silently ignored, so each start re-installed WordPress over the site's ownbuild/. - The spinner always ends, and shows elapsed time (#75). "Starting dev server…" used to be a one-way door: a server that died mid-boot left the button spinning with nothing written anywhere, and the only way out was quitting the app.
- A server that dies during boot fails immediately (#97), instead of leaving the spinner counting up to the two-minute timeout after the crash has already happened.
- The login hint shows credentials that actually work (#80). The panel said
admin/admin; sites are created with the Playground default, so the first trip towp-login.phpfailed. It now readsadmin/password.
The dev server is no longer exposed to your network
The site now binds to 127.0.0.1 only (#79). Playground's CLI called listen(port) with no address, so Node bound every interface — your WordPress, admin login and all, was reachable by anything on the same Wi-Fi. On Windows that's what raised the firewall prompt at every start; on macOS and Linux it happened silently. Upstream has no host option to pass, so the app now patches net.Server.prototype.listen in the runner subprocesses to default to loopback. An explicitly requested address still passes through untouched. Filed upstream as WordPress/wordpress-playground#4224; the workaround goes away when that lands.
When something goes wrong
- A failed
npm installno longer counts as a finished step (#96). A debug short-circuit left in the wizard marked the site initialized regardless of the exit code, so a broken install advanced to a build that could never succeed, with no way back. The step now stays open and the button stays available for a retry. - Quitting the app stops what it started (#98). Nothing swept the child processes on quit, and killing a runner never reached its grandchildren — so
grunt _watchkept rebuilding and the WASM PHP server kept its port, with Task Manager as the only remedy. Whole process trees are now killed:taskkill /Ton Windows, a process-group signal on macOS and Linux. - The app writes a log to disk, opened from Help → Open App Log (#50). A packaged build has no terminal, so a failed spawn and a spawn that never started looked identical: nothing happens. Child-process output, the command used to spawn each one and the code it exited with, renderer errors and crash stacks all land in the file now (see video)
- A feedback button inside the app (#33), for sharing feedback or reporting experiences without leaving it.
- Issue templates in the repository, including one for installation problems, so a report arrives with the platform and the step it failed at.
Environment
- Electron upgraded to 43, bundling Node 24 (#40). Current
wordpress-developdependencies need a modern Node; on the old runtime,npm installfailed withEBADENGINE. Installs also retry with relaxed engine checks as a fallback (#38, #58). - The site path is shown inline, with a copy button (#29).
- The "Open directory in" dropdown is gone (#26). Its editor detection was unreliable in the packaged, signed build: a GUI-launched app doesn't inherit the shell
PATH, so VS Code went undetected there even though it worked undernpm start(#24). Rather than keep patching around that across platforms, the feature is out for now. "Submit patch" is untouched. - The app reports its own version correctly (#81).
package.jsonhad read0.1.0since the v0.1.0 release, so the v0.1.1 artifacts — and the first line of every log they wrote — identified themselves as 0.1.0.
Signing
- Windows installers are signed via Azure Trusted Signing (#21, #27). The previous Sectigo certificate expired 2026-07-05.
- macOS signing fixed (
CSSMERR_TP_NOT_TRUSTED, #22) — the app is signed and notarized, so it opens without the right-click workaround.
Tests, CI and docs
- There is now a test suite. this release adds 113 tests across 15 files, most of them written alongside the fixes above — 11 for the loopback binding, 11 for the Windows spawn patch, 14 for the npm runner.
- They run on macOS and Windows, on both Node runtimes (#68) — the system Node and the one bundled inside Electron, since that second one is what every child process the app spawns actually runs on. That's 452 test executions per push.
- The Electron pass no longer breaks silently on Node 22 and newer (#69), where it had been reporting success without running anything.
- Setup docs refreshed (#15), and the macOS launch instructions corrected now that the app is signed and notarized (#18) — the old right-click-to-open steps no longer apply.
Downloads
- macOS (Apple Silicon):
wordpress-contributor-toolkit-0.1.2-mac-arm64.dmg - Windows (x64):
wordpress-contributor-toolkit-0.1.2-win-x64.exe - Linux (x64):
wordpress-contributor-toolkit-0.1.2-linux-x64.AppImage
Full changelog: v0.1.1...v0.1.2
