Skip to content

feat: add remote pipeline rollout and browser coverage - #2739

Open
Mbeaulne wants to merge 5 commits into
mb/remote-pipelines-creationfrom
mb/remote-pipeline-storage
Open

Mbeaulne wants to merge 5 commits into
mb/remote-pipelines-creationfrom
mb/remote-pipeline-storage

Conversation

@Mbeaulne

@Mbeaulne Mbeaulne commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator

Description

Rollout, documentation, and integrated browser coverage for the remote-pipeline stack. Base: #2751; autosave batching and run association continue downstream in #2780 and #2783.

  • Read VITE_REMOTE_PIPELINES_ENABLED after the storage, editor, list, and creation paths are wired. Local mode remains the deployment default; there is no user-facing toggle.
  • Document activation, ownership, recovery and retained local backups, Local/Remote tab behavior, summary pagination and search, outage fallback, and backend metadata/run-summary follow-ups.
  • Add the isolated remote Playwright configuration, package script, CI step, and mocked browser coverage for migration, creation, retries, read-only cloning, tab-scoped deletion, cursor pagination, and searches beyond the first page without definition requests.

Related pull requests

Review from bottom to top; each PR targets its predecessor:

  1. feat: add remote pipeline API client and serialization #2746 — API client, serialization, and summary pagination
  2. feat: preserve local pipeline identity and migration references #2747 — Local identity and migration safety
  3. feat: add remote pipeline storage and recovery #2748 — Remote storage, recovery, and summary lists
  4. feat: integrate remote autosave into the pipeline editor #2749 — Editor autosave, routes, and read-only behavior
  5. feat: add remote pipeline lists and manual upload #2750 — Local/Remote tabs, pagination, and manual upload
  6. feat: route pipeline creation and imports through storage #2751 — Remaining creation/import entry points
  7. feat: add remote pipeline rollout and browser coverage #2739 — Rollout, browser coverage, and docs
  8. perf: batch remote pipeline autosaves #2780 — Batched remote autosave and recovery
  9. feat: associate runs with remote pipelines #2783 — Stable-ID run association and source navigation

Validation

How to test

Install dependencies and Chromium (pnpm exec playwright install chromium). Keep port 3001 free for the dedicated remote-enabled test server. Browser tests use a mocked backend and do not write to a real backend.

pnpm exec vitest run
pnpm run format:check && pnpm run lint && pnpm run lint:e2e
pnpm run typecheck && pnpm run knip
CI=1 pnpm run test:e2e:remote --reporter=line
APP_URL= BUGSNAG_SOURCE_MAP_ENDPOINT= VITE_REMOTE_PIPELINES_ENABLED=true pnpm run build

The full unit suite requires network access for remote-schema tests. The commands above are verification instructions; the results actually obtained are listed in Validation.

For a manual smoke test against a compatible backend:

  1. With the flag off, confirm local creation, imports, list filtering, and both editor links still work.
  2. Enable the flag and create/edit/reopen a pipeline. It should keep one remote identity. Remote and Local tabs should retain independent filters, and searching for a pipeline beyond the first page should find it without loading definitions.
  3. Open an existing local pipeline without editing: no upload should occur. Make its first edit or explicitly save it: the URL should change in place, undo should still work, and the retained local backup should disappear from the list.
  4. Exercise manual list upload and a failed save followed by Retry. Pending first uploads should remain in Local, the selected tab should stay selected, and the confirmed upload should appear in Remote without a duplicate.
  5. Open another owner's pipeline: editing should be disabled and cloning should create an editable copy. Deleting an untouched local pipeline must not upload it; connected filesystem/Google Drive files must not migrate.

Change Size

Relative to mb/remote-pipelines-creation for this PR only. Changed lines = additions + deletions.

Category Files Added Removed Changed
Application code 1 +2 -1 3
Tests 1 +880 -0 880
Documentation / configuration 5 +66 -0 66
Total 7 +948 -1 949

Application code excludes test files. Tests include unit, component, and browser test source; test-runner configuration, CI, package scripts, compiler configuration, and documentation are counted separately.

@github-actions

github-actions Bot commented Sep 18, 2026

Copy link
Copy Markdown

🎩 Preview

A preview build has been created at: mb/remote-pipeline-storage/20f971d

private manageFile(file: PipelineFile): PipelineFile {
if (this.canMigrate(file))
file.resolveRedirect = () =>
this.remote?.resolveLocal(file.id) ?? Promise.resolve(undefined);

const newValue = JSON.stringify(updated);
localStorage.setItem(key, newValue);
window.dispatchEvent(new StorageEvent("storage", { key, newValue }));
@Mbeaulne
Mbeaulne force-pushed the mb/remote-pipeline-storage branch 2 times, most recently from 3e897d5 to a012ed4 Compare September 18, 2026 19:28
@Mbeaulne
Mbeaulne changed the base branch from master to mb/remote-pipelines-creation September 18, 2026 19:28
@Mbeaulne
Mbeaulne added this pull request to stack #2752 September 18, 2026 19:28
@Mbeaulne Mbeaulne changed the title feat: add deployment-controlled remote pipeline storage feat: add remote pipeline rollout and browser coverage Sep 18, 2026
@Mbeaulne
Mbeaulne marked this pull request as ready for review September 22, 2026 14:33
@Mbeaulne
Mbeaulne requested a review from a team as a code owner September 22, 2026 14:33
@Mbeaulne
Mbeaulne force-pushed the mb/remote-pipeline-storage branch from 23d2692 to cd361d1 Compare September 22, 2026 19:05

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant