Skip to content

chore(e2e): adopt the native obsidian-e2e Linux runner - #395

Merged
chhoumann merged 2 commits into
masterfrom
chore/obsidian-e2e-0.13
Oct 11, 2026
Merged

chhoumann merged 2 commits into
masterfrom
chore/obsidian-e2e-0.13

Conversation

@chhoumann

@chhoumann chhoumann commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

Use obsidian-e2e 0.13.0's native Linux runner for startup and journey restarts. This removes both local launch implementations and fixes the leftover Xvfb temp directory reproduced on the baseline.

The existing npm commands retain test ownership cleanup, the restart profile guard, startup error recording, and player capture presets. The dependency lockfile changes only the requested package entries.

Verification

  • Merged origin/master at f7400ba with a merge commit. The single conflict was the restartObsidian JSDoc. Both explanations survive. The merged function retains fix(persistence): merge data.json with changes made on other devices instead of overwriting them #388's beforeClose renderer hook and the upstream launcher and readiness wait. Resolution and run summary.
  • On merged head 1408a63b6dd62ef05e5a5f00ea18655b8d42c8f0, Node 22.23.2 and npm 10.9.8 passed npm ci && npm run build. Two sequential npm run test:e2e runs each passed all 53 tests in 11 files against Linux Obsidian 1.13.7 and a fresh isolated vault.
  • Then npm run lint, npm run format:check, npm run typecheck, npm run build, npm run test -- --maxWorkers=2 and npm run docs:build passed. Unit tests passed 1,386 tests in 86 files with zero Svelte errors or warnings. Docs built 15 pages and validated 73 legacy fragments. npm run size passed at 314,794 raw bytes and 99,368 gzip bytes at level 9.
  • Independent raw process sampling tracked 42 PIDs across four launcher groups in run 1 and 37 PIDs across four groups in run 2. Both proofs found zero surviving PIDs, group members or instance argv, no profile and no xvfb-run.* directories in TMPDIR=/data/home/tmp/podnotes-OE-ADOPT. The final stop dry-run reports pids: none. Merged-head logs and repeatable cleanup driver.
  • Claude Opus 5.5 merge audit found no blockers. Cleanup JSONs record successful assertions. The explicit Xauthority path avoids creating an Xvfb temp directory; the directory check guards against the old launcher returning.
  • The original real-app verify walk passed feed subscription, playback, episode notes, timestamp capture, URI seek and local-file playback. Screenshot and record npm commands passed. The evidence below covers that walk before the master merge.

Fixture: http://127.0.0.1.nip.io:35476/feed.xml; local audio: Fixtures/Local Fixture.wav (60 seconds). No runtime errors captured. Exact commands and limits, logs and repeatable drivers, screen recording, Settings screenshot.

Fixture playback

Compatibility

Linux start --print-env now returns upstream's exports without XDG_RUNTIME_DIR; use npm run obsidian:e2e -- <command> for CLI calls. Runtime docs reflect this and the new log location. The runner migration adds no plugin source, settings, storage, API or URI contract changes. The master merge inherits #388's persistence changes.

macOS journey restart now uses upstream's launcher and needs a macOS smoke check of J-PLAY-11 and J-EDGE-03. Failure cleanup after launch was verified by code tracing, without runtime failure injection. The observed local-file artwork defect is tracked separately in #394.

Note

Replace local Linux E2E runner shim with native obsidian-e2e 0.13 support

  • Bumps obsidian-e2e from ^0.12.1 to ^0.13.0 in package.json and deletes the local Linux compatibility layer in scripts/obsidian-e2e.mjs (custom launcher, version sources, warm-instance guard, XDG cleanup).
  • Restart flow in actions.ts now uses the upstream launchObsidianInstance plus waitForInstanceReady instead of the local relaunch helper.
  • Updates docs in AGENTS.md: use xvfb-run only when DISPLAY is unset; use npm run obsidian:e2e on Linux since the raw CLI does not work there.
  • Behavioral Change: Linux launch, version detection, and log location (now the instance directory's obsidian.log) are now owned by the upstream runner; Linux environment setup no longer exports XDG_RUNTIME_DIR.

Macroscope summarized 1408a63.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Deploying podnotes with  Cloudflare Pages  Cloudflare Pages

Latest commit: 1408a63
Status: ✅  Deploy successful!
Preview URL: https://f74365a6.podnotes.pages.dev
Branch Preview URL: https://chore-obsidian-e2e-0-13.podnotes.pages.dev

View logs

@chhoumann
chhoumann merged commit 30998ab into master Oct 11, 2026
10 checks passed
@chhoumann
chhoumann deleted the chore/obsidian-e2e-0.13 branch October 11, 2026 08:51
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