Diagnose video context-menu E2E flake
Follow-up for #7827 at dfd5db4e087b77215d6a81ab81342d025e28c3e4 (tree 7a0a4b0118db6a365d3cc10139ce2c8cfe6c4af7). Deferred from this PR, not fixed or certified stable.
Scope rationale
Comparing base 8ebe3b881c98f19cfc93da7c1d00d4b0618a356e to that head, the only changed Desktop path is desktop/tests/e2e/video-attachment.spec.ts (emitted-message-ID locators). Desktop production code is unchanged. Treat the residual on this unchanged product path as an inherited flake for the gate; this is a scope disposition, not proof of root cause or a controlled base reproduction.
Separate failure receipts — do not average away
- 18/20, final source tree: two relay-video menu-not-visible failures at test line 1531. No traces retained; mechanism unknown. These are separate from the traced batches below.
- 19/20, unchanged published head: off-relay forced click missed the moving video and hit the composer while data-render-pending was true; no menu opened. Blox
buzz-community-self-delete, /home/bloxer/pr7827-dfd5-forced-click-trace-01/REPORT.md, SHA-256 f6427ecf91a7fba63449bfd25a6559ad8b3a268fe1b2e156108ecca7f4f9d31b.
- 19/20, diagnostic variant adding only no-render-pending assertions before forced clicks: off-relay menu opened then disappeared before Copy link assertion. Rejected hypothesis, never committed.
/home/bloxer/pr7827-dfd5-render-pending-01/REPORT.md, SHA-256 e1171dbac6160c294db1a4a5437d336e6f7cf2c97e0402ebd4091a8c8fc165e3. Batch 15:21:09–15:22:17Z shared the workstation with migration job 19483010; load unmeasured, contention causality unproven. Not a controlled idle comparison.
Finite non-reproduction, not a fix
One instrumented replacement batch at the published head: 20/20 passed, one worker, zero retries, 20 relay and 20 off-relay cases entered. Exclusive host buzz-pr7827-menu-lifecycle, 2026-09-28 16:07:37–16:08:40Z. /home/bloxer/pr7827-dfd5-menu-lifecycle-replacement-02/report.md, SHA-256 095fa809975b1003a9d76b10261fefe786eeed09e3efd3c3907c530becccafad. No spontaneous off-relay removal; observed scrolls preceded delayed dismiss-listener attachment. Instrumentation may perturb scheduling. Does not supersede any failure receipt.
Two earlier setup receipts exercised no video cases: original 20 browser-launch failures from missing Chromium, then replacement preflight module-resolution error with 0/20 attempts. They remain separate, not product failures or passing attempts.
Next diagnostic: Legolas's lifecycle instrumentation plan
Source plan: WORK_LOGS/COMMUNITY_DELETE_PARALLEL_2026_09_28/LEGOLAS_PR7827_MENU_LIFECYCLE_TRACE_dfd5db4e.md, section Instrumentation plan (lines 55–74).
Capture actual dismiss-listener attachment AND invocation, input/scroll timing, menu add/remove, row/player/video node identities, resize/pending changes, and preceding timeline item. Retain logs for passes and failures with traces; preserve listener semantics and unchanged clicks/assertions. Differentiate dismissal with stable connected nodes from node replacement; resize then scroll alone cannot distinguish app settle, browser clamp or virtualization. A replacement node does not prove the exact React cause.
That plan's first instrumented batch did not reproduce. Before another run, choose a discriminating refinement or deterministic reproducer; no open-ended rerun-until-green. Preflight pinned browser launch, use exclusive compute or declared measured load, and predeclare finite attempts. No additional batch is authorized by filing this issue.
Closure criteria
Explain the separate observed failure modes with captured evidence or deterministic reproduction, implement the smallest justified fix with regression coverage, and verify against a declared finite run. Preserve historical failures and observer limitations. Until then, describe this test path as known-flaky in merge-gate calls to action.
Diagnose video context-menu E2E flake
Follow-up for #7827 at
dfd5db4e087b77215d6a81ab81342d025e28c3e4(tree7a0a4b0118db6a365d3cc10139ce2c8cfe6c4af7). Deferred from this PR, not fixed or certified stable.Scope rationale
Comparing base
8ebe3b881c98f19cfc93da7c1d00d4b0618a356eto that head, the only changed Desktop path isdesktop/tests/e2e/video-attachment.spec.ts(emitted-message-ID locators). Desktop production code is unchanged. Treat the residual on this unchanged product path as an inherited flake for the gate; this is a scope disposition, not proof of root cause or a controlled base reproduction.Separate failure receipts — do not average away
buzz-community-self-delete,/home/bloxer/pr7827-dfd5-forced-click-trace-01/REPORT.md, SHA-256f6427ecf91a7fba63449bfd25a6559ad8b3a268fe1b2e156108ecca7f4f9d31b./home/bloxer/pr7827-dfd5-render-pending-01/REPORT.md, SHA-256e1171dbac6160c294db1a4a5437d336e6f7cf2c97e0402ebd4091a8c8fc165e3. Batch 15:21:09–15:22:17Z shared the workstation with migration job 19483010; load unmeasured, contention causality unproven. Not a controlled idle comparison.Finite non-reproduction, not a fix
One instrumented replacement batch at the published head: 20/20 passed, one worker, zero retries, 20 relay and 20 off-relay cases entered. Exclusive host
buzz-pr7827-menu-lifecycle, 2026-09-28 16:07:37–16:08:40Z./home/bloxer/pr7827-dfd5-menu-lifecycle-replacement-02/report.md, SHA-256095fa809975b1003a9d76b10261fefe786eeed09e3efd3c3907c530becccafad. No spontaneous off-relay removal; observed scrolls preceded delayed dismiss-listener attachment. Instrumentation may perturb scheduling. Does not supersede any failure receipt.Two earlier setup receipts exercised no video cases: original 20 browser-launch failures from missing Chromium, then replacement preflight module-resolution error with 0/20 attempts. They remain separate, not product failures or passing attempts.
Next diagnostic: Legolas's lifecycle instrumentation plan
Source plan:
WORK_LOGS/COMMUNITY_DELETE_PARALLEL_2026_09_28/LEGOLAS_PR7827_MENU_LIFECYCLE_TRACE_dfd5db4e.md, section Instrumentation plan (lines 55–74).Capture actual dismiss-listener attachment AND invocation, input/scroll timing, menu add/remove, row/player/video node identities, resize/pending changes, and preceding timeline item. Retain logs for passes and failures with traces; preserve listener semantics and unchanged clicks/assertions. Differentiate dismissal with stable connected nodes from node replacement; resize then scroll alone cannot distinguish app settle, browser clamp or virtualization. A replacement node does not prove the exact React cause.
That plan's first instrumented batch did not reproduce. Before another run, choose a discriminating refinement or deterministic reproducer; no open-ended rerun-until-green. Preflight pinned browser launch, use exclusive compute or declared measured load, and predeclare finite attempts. No additional batch is authorized by filing this issue.
Closure criteria
Explain the separate observed failure modes with captured evidence or deterministic reproduction, implement the smallest justified fix with regression coverage, and verify against a declared finite run. Preserve historical failures and observer limitations. Until then, describe this test path as known-flaky in merge-gate calls to action.