18-Apr-2026 — Ramblers-upload-worker → Integration-worker #114

build 614commit 40e8d62


Rename the Ramblers upload worker to a generic integration worker, cut every in-process browser session out of the website, and replace the buffered Serenity StageCrewMember step-delivery path with a Playwright-native reporter that posts each test.step as it ends. Clean up env-var wiring, settings surface, and scripts along the way.

Rename: ramblers-upload-worker → integration-worker

The worker now handles Ramblers walks upload, Flickr album scraping, arbitrary HTML fetches and full static-site migration - "upload worker" no longer describes it. Rename every piece of the worker plumbing; keep walks-upload-specific files (dispatcher, queue, session registry, audit notifier, execution model) named ramblers-upload-* because they describe one type of integration job.

Sync browser ops moved to the worker

Full site migration moved to the worker (async job + callbacks)

Real-time step streaming: fix and DRY up the delivery path

The original DomainEventPublisher StageCrewMember (48aca026) worked under WebdriverIO because WDIO fires InteractionFinished / TaskFinished synchronously as each action executes. Under @serenity-js/playwright-test those domain events are buffered by PlaywrightEventBuffer and only announced to the Stage at onTestEnd

Replace the whole per-step delivery path with a Playwright-native Reporter (bypasses Serenity's buffer):

Backend handler, session registry and audit notifier tightened so the real-time stream behaves correctly:

DRY: drop the old WDIO-era event transport entirely

With RealtimeStepReporter as the single per-step path, the old WebSocket-based transport and its wiring are dead weight:

Environment enum: move to shared model, prune, enforce

Local CLI ergonomics

Walk export UI

<asc|desc>`:

Scripts cleanup

server/package.json:

server/test-setenv.sh: dropped stale CHROME_BIN / CHROMEDRIVER_PATH exports.

server/.env: local key names renamed to INTEGRATION_WORKER_*; stale Chrome paths removed. (Local values only; remote Fly secrets re-imported under the new names separately.)

Dead code removal

Fly secrets

Staged but not deployed on the two apps available to the current token:

Staging central DB config.environments for staging, ekwg and ekwg-dev-2-staging renamed the per-env secret keys from RAMBLERS_UPLOAD_WORKER_* to INTEGRATION_WORKER_* so future deploys push the new names consistently.

Old secrets remain Deployed on both apps until the next deploy activates the new staged names.

worker: switch upload worker to Serenity/JS Playwright stack and cut the website off WebdriverIO/Puppeteer (#114)

Migrate the Ramblers upload worker off the WebdriverIO + Chrome/Chromedriver runtime onto the officially supported Serenity/JS Playwright image, harden the end-to-end upload path, and remove every WebdriverIO/Puppeteer usage from the codebase so the website image no longer ships a browser stack.

Worker image

Website image

Test runner migration (WebdriverIO → Playwright)

Bulk-action selector hardening

Live audit streaming (in progress)

Audit parser & timing clean-up

Report storage (zipped artefacts)

WebdriverIO / Puppeteer removal across the codebase

Local dev ergonomics

CI