Skip to content

Development

Nick Hamze edited this page Sep 4, 2026 · 6 revisions

Development

Runtime dependencies are WordPress, sodium, and the OpenStation App Framework. Composer/npm packages are development-only.

Layout

apps/ contains native manifests. The App presentation bridge, Core orchestration, content validation/fingerprints, repository, REST client, crypto, sync policy, and search index live in separate includes/ modules. assets/fleet-app.* supplies native layout and small effect/unsaved-change handling. tests/ holds unit/static/browser and disposable stress checks.

Gates

composer install
npm ci
composer validate --strict
composer quality
composer audit --locked
npm audit --audit-level=high
./bin/build.sh
./bin/verify-reproducible-build.sh

The allowlisted runtime ZIP is dist/fleet-for-openstation.zip. Run Plugin Check against its extracted payload.

For read-only browser checks on a local hub with two connected sites:

FLEET_E2E=1 FLEET_E2E_HUB_PATH=/absolute/hub npm run test:e2e

Explicitly add FLEET_E2E_WRITES=1 and FLEET_E2E_MANAGED_PATH=/absolute/disposable-managed-site for content and credential lifecycle tests. Never use production. Cookies stay in memory and traces are off; approval tests disable screenshots.

The expanded suite includes unsaved navigation, timezone round trips, health fault injection, user isolation, and malformed dates in edge-cases.e2e.spec.js. The four reported regressions are now fixed. publishing.e2e.spec.js covers publishing review, signature binding, revision recovery, saved views, custom-type discovery, fixed-offset timezones, partial health recovery, post-review conflicts and two dirty windows. See Modern Core and publishing.

Fresh deployment

Verify the deployed version and actual CSS/JS response hashes. Repeatedly extracting a deterministic ZIP can leave OPcache serving earlier PHP because timestamps are fixed. Touch freshly deployed files or restart PHP on the disposable fixture, not unrelated sites. Do not weaken deterministic packaging.

Audit/test a pinned OpenStation commit. Do not edit OpenStation or make/merge upstream PRs in Fleet work. See Framework integration and Load testing.

Clone this wiki locally