Skip to content

Nix Playwright E2E suite fails after vendoring dependencies #176

Open

Description

@dezren39

Summary

After the test-e2e derivation was made offline-reproducible and Playwright was aligned with the Nix-provided browser, the Firefox suite launches but the Nix check still fails: 113 passed, 17 failed.

Reproduced locally with:

nix build ./pkgs/id#checks.x86_64-linux.test-e2e -L

Failures span autosave, the empty-home state, editor/image features, rename/delete/search, and WebSocket save tests. Examples include:

  • Expected saved content but received the autosave retry… state; some later API reads ended with socket hang up.
  • File list/search/rename assertions could not find files created by their tests.
  • /hash/{hash} redirected to a different test's alt-text-test-… file rather than the expected redirect-test-… name.

The Playwright config runs one worker against a single ephemeral server. Investigate test-state isolation, repeated-content/hash alias behavior, and server lifecycle under the Nix sandbox. This surfaced once the missing Cargo Git dependencies could be built; PR #175 does not fix these failures yet.

Related follow-up: #175

Activity

  1. dezren39 commented on Oct 24, 2026

    @dezren39
    MemberAuthor

    id train triage (2026-10-24): too-big-needs-design — Nix Playwright E2E stabilization after vendoring (113 passed / 17 failed).

  2. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

    • Agent: queue worker (repo-worker-code), Lane A shift
    • Session / ID: queue task 2020
    • Found via: queue claim · repo-health-code-pilot
    • Task: Triage Nix Playwright E2E suite fails after vendoring dependencies #176 — verify whether the Nix Playwright test-e2e suite still fails at current main (17 failures at filing: autosave, empty-home, editor/image, rename/delete/search, WebSocket save), or whether later work fixed/superseded it; route a scoped fix or close with evidence.
    • Expectation: effort s — done = triage verdict posted, follow-up enqueued or issue closed with evidence, task 2020 completed.
    • Links: issue Nix Playwright E2E suite fails after vendoring dependencies #176
  3. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done (triage verdict: CONFIRMED — still red at HEAD, narrowed since filing)

    • Agent: queue worker (repo-worker-code), Lane A shift
    • Session / ID: queue task 2020 (triage)
    • Found via: queue claim · repo-health-code-pilot
    • Task: Triage complete — the suite still does not pass at current main, but the problem has narrowed since filing; routed to a scoped follow-up (queue task 2965).
    • Evidence:
    • Expectation: follow-up task 2965 (small_fix, dedupe repo-health:v1:fix:developing-today/code:issue:176) — done = fresh per-spec inventory posted here, residual failing specs fixed (or proven infra-only with re-run evidence), test-e2e green.
    • Links: follow-up task 2965 · nightly run https://github.com/developing-today/code/actions/runs/40511024415
  4. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Oct 29, 2026
  5. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

    • Agent: queue worker (repo-worker-code), lane A shift
    • Session / ID: queue task 2965
    • Found via: queue claim
    • Task: Nix Playwright E2E suite fails after vendoring dependencies #176 residual test-e2e failures — step 1 (fresh per-spec inventory at HEAD) is running in CI; task parked on that run, resume = read its per-spec results and fix the failing specs.
    • Expectation: on resume: extract the per-spec pass/fail inventory from run 40850100317, post it here replacing the stale filing numbers, fix each failing spec (or prove infra-only with re-run evidence), PR + green test-e2e.
    • Links: fresh inventory run (workflow_dispatch on main, 2026-10-29): https://github.com/developing-today/code/actions/runs/40850100317 · prior triage: task 2020 verdict on this issue

    Progress — inventory run dispatched

    Revalidated fresh: #176 is OPEN, no hard-stop labels; the packet's evidence holds — last scheduled nightly on main 2026-10-27 (run 40511024415) failed, 2026-10-28 nightly (40702501780) was cancelled in the runner stall, and no green nightly exists since the per-spec isolation fix (#229/PR #987) merged.

    Step 1 of the packet is a fresh per-spec inventory at HEAD. That run takes ~2h in CI (recent nightlies: 1h57m–3h00m), far beyond a worker shift's CI-wait limit, so instead of waiting: I dispatched id e2e nightly on main — run 40850100317 (queued at dispatch) — and parked this task on it. The per-spec runner reports every failing file, which is exactly the inventory the resumed worker needs; infra noise (FlakeHub auth / Magic Nix Cache rate limits seen in earlier logs) must be separated from real spec failures when reading it.

  6. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    work/assignedQueue worker lifecycle state
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 29, 2026
  7. 37 remaining items

  8. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up + fresh triage state (coverage-pass triage, task 7574)

    • Agent: repo-worker-code, openchamber scheduled lane aea12c82-c5af-4e5a-9b66-f8e360f87177
    • Session / ID: queue task 7574 (row 7574, attempt 4)
    • Found via: queue claim — coverage pass 2026-11-03 re-deriving this issue's blocker at current main
    • Labels now: queue/claimed, status/in-progress, work/assigned (the stale queue/blocked/status/blocked/queue/parked had no live task behind them and are cleared). user/review kept; the attached note at 12:38Z is the review.

    The previously stated blocker is now stale. At 2026-11-03T14:42Z:

    • main is green on nix-ci: 12 consecutive success runs, 13:32Z–14:12Z, latest at HEAD e7510b90. The 12:13Z note here said main failed to compile — that was true of the 2026-11-02 tree, not of current main.
    • The last e2e nightly, run 41488645351 (2026-11-02), spent 97 minutes in nix flake check (full) and never produced a per-spec list. Its log is dominated by Magic Nix Cache HTTP error 418 — GitHub Actions Cache throttled, i.e. cache-throughput noise, not test-e2e assertions.
    • So there is still no per-spec inventory at current HEAD: the newest real one remains 2026-10-29 (118 passed / 13 failed, all [firefox]: save-path 5, realtime-collab timeout 4, image-rendering 4). The 2026-10-24 filing numbers (113/17) are 10 days old.

    Action taken (not a code change): dispatched id e2e nightly on main HEAD e7510b90 → run 41656241131, queued 14:42Z. That run is the artifact this triage needs: it runs the full nix flake check for pkgs/id including checks.x86_64-linux.test-e2e on KVM, which is the only path to a current per-spec list without a local heavy build.

    Ordering / fix path (scoped, no Drew dependency):

    1. When run 41656241131 (or the next nightly) reaches the specs: post the fresh per-spec pass/fail list here with the failing spec names.
    2. Split per cluster and file one queue/… fix branch per cluster (per-spec isolation runner Stabilize shared-state failures in Firefox E2E CI #229 means each failing spec is independently addressable): save-path/autosave+WebSocket, empty-home state, file rename/delete/search, /hash/{hash} alias.
    3. Close here with evidence only if the list comes back clean — i.e. the 13 failures were themselves stale.

    Not blocked on Drew. Pair #1558 is OPEN and genuinely Drew-side (user/escalated, host amd generation//run/secrets/openclaw); #176 has no host state to activate. Per protocol user/review is mine to evaluate, and this is the evaluation.

    Parked, not completed: the per-spec list depends on the dispatched run finishing (90-minute timeout). Resume: read run 41656241131; if complete, post the per-spec list and enqueue the cluster fixes; if still running, re-park 30 min.

  9. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    queue/claimedQueue worker lifecycle state
    and removed
    queue/claimedQueue worker lifecycle state
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 3, 2026
  10. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor
    No description provided.
  11. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    Triage verdict (task 7574, attempt 5) — blocker re-derived at current main

    Fresh state (2026-11-03T17:45Z): #176 OPEN, no hard-stop labels. PR #175 MERGED 2026-10-12 and does not fix these failures (per issue body). Main HEAD is now 8e151e89 (17:31Z).

    The attempt-4 artifact is dead. The dispatched id e2e nightly run 41656241131 (HEAD e7510b90) was cancelled — superseded by the scheduled run under the workflow's concurrency.cancel-in-progress: true. The scheduled run 41662210197 (HEAD 443e1d91) then ran 15:18→16:49Z (~91 min) and was itself cancelled at the 90-min job timeout inside Run full nix flake check. Neither produced a per-spec list, and both SHAs are now stale.

    Current blocker (explicit): no per-spec inventory exists at current HEAD, and the nightly as configured cannot produce one. nix flake check ./pkgs/id/ bundles VM image builds that eat the 90-min budget before/around the e2e specs; cancel-in-progress kills dispatches when the schedule fires; the nix ci queue is backlogged (many runs queued at 17:3xZ). Last seven nightly runs: 4 cancelled, 3 failed pre-spec (compile/cache). This is a throughput/timeout blocker, not a Drew host action — #176 reproduces from any checkout, no host state to activate (pair #1558 is the genuinely Drew-side item).

    Best inventory remains 2026-10-29 (118 passed / 13 failed, all [firefox], posted above): save-path 5 (autosave ×3 + websocket-save ×2), realtime-collab timeouts 4, image-rendering 4. Filing numbers (113/17) are 10 days stale. Coverage gap: tests/world-surface.spec.ts (7th spec file, touched 2026-11-03) postdates that inventory and has never been inventoried.

    Fix path scoped at current main (no Drew dependency):

    1. Evidence step that survives: run only the e2e attribute — nix build ./pkgs/id#checks.x86_64-linux.test-e2e -L on a KVM-capable host — instead of the full nix flake check (or raise the nightly timeout past 90 min and drop cancel-in-progress). Per-spec isolation (Stabilize shared-state failures in Firefox E2E CI #229) is already landed: flake.nix loops one Playwright invocation per spec file, each on a fresh ephemeral server.
    2. Split per cluster into one queue/… fix branch each: (a) manual-save trigger path, (b) WebSocket broadcast/subscription convergence, (c) image nodeView render/alt-text/resize. Include world-surface.spec.ts in the fresh inventory.
    3. Close here with evidence only if the fresh list comes back clean.

    Not done here: no code/branch/worktree — laptop SSH was unreachable from this sandbox session (no egress proxy env), and triage needs no code change; no follow-up packet enqueued (a vague packet without the inventory would just re-cycle — re-queue this issue alongside a green-main e2e-capable run per the 12:13Z note).

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

Metadata

Metadata

Assignees

Labels

source/creatorFiled by the new-issue-creator jobtask/triageQueue packet kind: verify, reproduce, and route this itemuser/reviewNeeds a user-look: Muse reviews first and handles what it can

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions