-
Notifications
You must be signed in to change notification settings - Fork 0
Validation
Validated locally against the existing OpenStation Studio installation at http://localhost:8894, using the pinned runtime at http://localhost:9400.
- TypeScript: passed.
- Unit tests: 13 passed, covering Blueprint schema validation, sandbox paths, account catalog isolation, checkpoint deletion, writer locks, missing-data recovery, failed flush handling, existing-site startup, delayed initial mounting, explicit temporary fallback, hosted instant-session behavior, package classification, and installable package export boundaries.
- PHP syntax: passed.
- Formatting and production build: passed.
- npm dependency audit: no reported vulnerabilities at packaging time.
Chromium, Firefox, and WebKit (normal persistent profile) passed:
- Register and open Recess as an OpenStation native app.
- Create a WordPress sandbox and save database changes.
- Save a checkpoint, then modify the database and write a sandbox file.
- Close through OpenStation's native close hook and reopen without losing changes.
- Reload the entire browser page and reopen the saved site.
- Reject a second browser tab attempting to write the same site.
- Restore a checkpoint into another site and export its ZIP.
Additional Chromium checks passed:
- WP-CLI reads a saved WordPress option.
- An exported site ZIP imports into a fresh sandbox with its data intact.
- An explicit backup uploads through OpenStation's authenticated desktop-files API.
- A plugin ZIP installs and runs its activation hook inside the sandbox.
- A Blueprint bundle resolves its bundled plugin ZIP.
- The theme-development recipe creates and activates a real block theme.
WebKit's private context cannot obtain an OPFS directory, including at top level. Saved-site tests therefore use a normal persistent profile, rather than treating private browsing as durable storage. Recess offers an explicit temporary fallback and labels it as unsaved. A real WebKit private-context check also passed: it starts a temporary site and executes PHP without claiming that the site is saved.
- WebKit automation validates that engine; this is not a claim of testing every Safari/iOS device.
- Runtime hosting was validated locally. No public runtime domain or production WordPress site was deployed.
- The source repository is separate from OpenStation core; the local integration consists of the plugin symlink, activation, and
RECESS_RUNTIME_URLin the Studio site's configuration. - Browser data is not a backup. Downloads and OpenStation uploads are explicit; cross-device synchronization is not implemented.
- Force-closing a browser or deactivating a plugin cannot await an asynchronous final flush. Normal window close uses the framework's cancellable close filter.
Run npm run check for source checks. Start the local Studio site and npm run runtime:serve, then run npm run test:browser. The browser tests obtain short-lived cookies through the local Studio CLI. Browser profiles, cookies, traces, exported sites, and screenshots are excluded from Git.
scripts/smoke.mjs creates a preview and a temporary browser auth-state file. scripts/import-smoke.mjs and scripts/temporary-smoke.mjs use that state for focused import and temporary-mode checks.
The saved-site regression and native package workflow were exercised in Chromium, Firefox, and WebKit with persistent profiles. The native workflow uploads a real plugin ZIP to OpenStation, invokes the registered Try in Recess opener, verifies activation, restores the automatic checkpoint, exports the package, and installs that exported ZIP into the restored site.
Additional Chromium checks cover:
- A simulated full checkpoint store prevents package activation.
- Instant startup against the actual public WordPress Playground service, saving an instant-session checkpoint, ending the session, and recovering its database changes.
- Exporting the block-theme starter and installing that ZIP through the Try a theme starting card, with sample content and the expected active theme.
- Connection preflight and hidden advanced options.
- Backup status after a confirmed OpenStation upload.
The public-service and theme-specific scenarios run once in Chromium; their duplicate Firefox/WebKit cases are intentionally skipped. The WebKit reload test explicitly waits for the native app to mount after refreshing the host page before selecting the saved site.
Package ZIPs retain their installable root. A package-only export is not a full-site backup and does not include Site Editor changes stored in the database.