fix(desktop): revive Desktop Smoke E2E shard 4 after the outcome-first Projects redesign - #129
Merged
Merged
Conversation
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This was referenced Aug 10, 2026
e2e shard 4 is a dead lane: cancelled at the 30m timeout on 6/6 consecutive main runs since #95
#109
Closed
This was referenced Aug 11, 2026
Merged
Merged
devin-ai-integration
Bot
force-pushed
the
devin/1786362727-fix-109-project-plumbing-e2e
branch
from
August 11, 2026 09:29
20ba49d to
9ea5728
Compare
oscarlehuu
force-pushed
the
devin/1786362727-fix-109-project-plumbing-e2e
branch
from
August 11, 2026 11:01
9093214 to
240224b
Compare
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
oscarlehuu
force-pushed
the
devin/1786362727-fix-109-project-plumbing-e2e
branch
from
August 11, 2026 11:40
240224b to
e5b0b7a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Desktop Smoke E2E (4)has been cancelled at the 30m timeout on everymainrun since #95. Root cause confirmed by local repro, not inferred: #95 (b57d26def) deliberately movedWorkspaceTabsunder<details data-testid="project-plumbing">, closed by default (ProjectOutcomeDetail.tsx:227), and replaced the old overview panel withProjectOutcomeLanding(ProjectsView.tsx:822). ~19 upstreamproject-*tests still drive the pre-#95 contract, so each died ongetByRole("tab", …)at a 30s timeout; ×3 retries ≈ 95s/test consumed the whole job budget.Per the founder decision on #109, the upstream specs are adapted (not skipped with Crew-native replacements per the #65 precedent). Recorded as D-034, matching the orchestrator's allocation.
1. Test adaptation — the fork delta
One helper,
desktop/tests/helpers/projectPlumbing.ts:called at each project/repository-open site in
project-inbox,project-issue-comments,project-pr-review,project-commit-detail. Idempotent, no assertion rewrites. The helper carries a sync-hint comment: on upstream refreshes of these specs, keep both sides and re-add the helper calls. No changes toe2eBridge.ts, so no collision with the #125 / #110 harness work.Also in the spec layer: the two seeded events below now carry the repo's standard
"mocksig".repeat(20).slice(0, 128); the issue-comments test synchronises on the"Comment posted."toast between submissions (pre-existing product behaviour the test simply never reached before); the overview-CSS test is retargeted from the deletedprojects-overview-panel/projects-overview-statnodes toprojects-outcome-landing+project-outcome-card-*, preserving its intent (no background painted behind the cards) rather than being skipped.2. Product fix — the outcome landing lost its work-items error state (regression from #95)
ProjectsWorkItemsLoadNoticewas rendered by the pre-#95 activity feed. #95'sfilter === "all"branch passes onlyonOpen/projects/pullRequests, while the PR and Issues surfaces kept their error/retry wiring (ProjectsView.tsx:845–882). A failed work-items query therefore rendered a silently empty landing with no way to retry. The notice is restored above the landing with the same inputs.project-pr-review.spec.ts:954now passes on merit — that test was not modified.3. Product fix — one malformed relay event could kill the app's relay transport
User-facing bug, found while chasing the last red test, well beyond a CI lane. An event without a
sigreachingisVerifiedRelayEvent()threw onevent.sig.startsWith(...). The throw escapeshandleWsMessage(), whose catch callsresetConnection()— which nullswsIdand rejects in-flight history subscriptions. Every subsequent relay operation then fails atRelayTransportLeaseAuthority.capture()withRelay is not connected., with no user-visible cause and no reconnect. Captured sequence from instrumented run:That is 92 live subscriptions torn down by a single malformed event.
isVerifiedRelayEvent()now fails closed on a missing/non-stringsigor malformedtagsinstead of throwing, with unit coverage inrelayEventVerification.test.mjs. Verification semantics for well-formed events are unchanged.Related issue
Fixes #109.
Out of scope, per founder:
project-outcomes.spec.ts:108(Crew-only) still fails ongetByTestId('message-thread-panel')— untouched here, owned by #125 (root-caused there as a spec-side race wherewindow.__BUZZ_E2E_SEED_MOCK_MESSAGE__?.(…)runs before the bridge globals exist and silently no-ops).Newly-visible preexisting failures surfaced by reviving the lane are tracked in #132 (see below).
Testing
Acceptance met on this PR's CI —
Desktop Smoke E2E (4)completed instead of being cancelled:vs
mainrun 31362178966, where shard 4 was cancelled at the 30m limit with no verdict.Local,
xvfb-run -a pnpm exec playwright test --project=smokeover the four affected spec files:Reproduced the original failure first to confirm the diagnosis:
Also confirmed the clobber-guard test passes at
b57d26def^in a separate worktree, isolating the regression rather than assuming it.Gates:
pnpm --filter buzz build:e2e,pnpm --filter buzz check,pnpm --filter buzz typecheck,just test-unit(8 groups, 0 failed) all pass.Docs:
STATE.mdrecords the revived shard-4 lane;DECISIONS.mdadds D-034.Remaining red checks are preexisting
mainrun 31362178966 — shard 1 the same 8 (includingchannels.spec.ts:500, issue Agent question card never renders in the channel: channels.spec.ts:500 hard-fails on every main run since #96 #110), shard 3 the same 4 (inbox-edit.spec.ts:175/:325,inbox-reactions.spec.ts:36,messaging.spec.ts:1819).mainverdict — that verdict has not existed since feat(desktop): outcome-first Projects with in-place thread panel #95, which is the whole point of this issue. So each was re-run locally underxvfb-runin a separate worktree atorigin/main(35af74019) and on this branch: 16 of 17 fail identically on both, andoverscroll-boundary.spec.ts:34is flaky (failed once in CI, passed on retry, passes locally onmain).relay-reconnect.spec.ts:617was checked specifically because the verifier hardening touches relay behaviour — it fails identically onmain, so it is not ours. Full list and grouping in Shard-4 Desktop Smoke E2E: 17 preexisting failures newly visible after the lane was revived (15 share a missing message-thread-summary) #132; 15 of them share a missingmessage-thread-summaryand look like one shared cause.Link to Devin session: https://app.devin.ai/sessions/ce99f3d1cda240b78a31902e1b527e3f
Requested by: @oscarlehuu