Skip to content

fix(e2e): make local CLI live-sync E2E rendezvous work on modern WebKitWebDriver#3

Merged
pbean merged 2 commits into
mainfrom
fix/e2e-local-livesync-rendezvous
Jun 16, 2026
Merged

fix(e2e): make local CLI live-sync E2E rendezvous work on modern WebKitWebDriver#3
pbean merged 2 commits into
mainfrom
fix/e2e-local-livesync-rendezvous

Conversation

@pbean

@pbean pbean commented Jun 16, 2026

Copy link
Copy Markdown
Owner

Problem

Local E2E was only partially fixed: the rendering crash was solved, but the CLI live-sync suite (P1-E2E-003) failed locally (notey add → exit-2 "Notey is not running"), leaving the suite 14/16 locally while green on CI.

Root cause (verified, not guessed)

  • The suite pins a per-run NOTEY_SOCKET_PATH and relies on it reaching the tauri-driver-launched app.
  • A modern WebKitWebDriver (webkit2gtk 2.52.4) resets the launched app's environment — strips NOTEY_SOCKET_PATH and forces XDG_RUNTIME_DIR back to the real session value — and tauri-driver 2.0.6 has no env passthrough (forwards only {binary, args}).
  • So locally the app binds the default $XDG_RUNTIME_DIR/notey.sock while the CLI looked at the /tmp per-run path → mismatch.
  • Proof: after a failing run, a stale /run/user/1000/notey.sock existed and no /tmp/notey-e2e-*.sock was ever created.
  • CI's older Ubuntu webkit2gtk-driver passes env through, which is why it only bit locally.

Fix (test-only — e2e/run.mjs)

Stop dictating the socket; discover the one the app actually bound — probe the configured path and $XDG_RUNTIME_DIR/notey.sock for liveness, then point the CLI there. A pre-flight guard cleanly skips (does not hijack) the suite if a real notey already owns the default socket.

  • CI behavior unchanged: it matches the first candidate (NOTEY_SOCKET_PATH).
  • Local: 16/16 under xvfb (was 14/16).

Also in this PR

  • Corrects the stale epic-6-retro-item-1 note in sprint-status.yaml (it cited a failing commit as "green" and mislabeled live-sync as deferred).
  • Logs DW-95 documenting the WebKitWebDriver env-reset limitation.

Verification

  • Local: xvfb-run node e2e/run.mjs16 passed, 0 failed (incl. trash-lifecycle + CLI live-sync).
  • CI: this PR's run is the confirmation that the discovery change keeps the suite green.

🤖 Generated with Claude Code

pbean and others added 2 commits June 16, 2026 12:56
The CLI live-sync suite pinned a unique per-run NOTEY_SOCKET_PATH so the
test app and CLI rendezvous on an isolated endpoint. That relies on the
env var reaching the tauri-driver-launched app. It holds on CI's older
Ubuntu webkit2gtk-driver, but a modern WebKitWebDriver (webkit2gtk 2.52.4)
resets the launched app's environment — stripping NOTEY_SOCKET_PATH and
forcing XDG_RUNTIME_DIR back to the real session value — and tauri-driver
2.0.6 has no env passthrough. So locally the app binds the default
$XDG_RUNTIME_DIR/notey.sock while the CLI looked at the per-run /tmp path:
`notey add` failed exit-2 ("not running"), leaving the suite 14/16 locally
though green on CI.

Discover the socket the app actually bound instead of dictating it: probe
both the configured path and $XDG_RUNTIME_DIR/notey.sock for liveness, then
point the CLI at whichever the app is serving. Add a pre-flight guard that
cleanly skips (not hijacks) the suite when a real notey instance already
owns the default socket. CI behavior is unchanged (it matches the first
candidate); local now runs 16/16 under xvfb. See DW-95.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Local verification of the epic-6 retro surfaced two tracking errors and one
new limitation:

- epic-6-retro-item-1 cited HEAD 5be24c7 as the "green" E2E run, but that
  commit's CI is FAILURE and predates the live-sync suite (added in 322e570).
  The green run is HEAD 3a76bac (run 27566817463), 16/16 incl. live-sync.
- The note labeled CLI live-sync "deferred (DW-91/DW-92)"; those are
  trash-suite hygiene items and the live-sync suite actually shipped.
- DW-95: modern WebKitWebDriver resets the test app's env, preventing per-run
  IPC socket isolation locally — documented alongside the test-only fix.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@pbean pbean merged commit de02148 into main Jun 16, 2026
3 checks passed
@pbean pbean deleted the fix/e2e-local-livesync-rendezvous branch June 16, 2026 20:03
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