What happened
The Desktop E2E test below still fails intermittently under concurrent Linux/Xvfb CI load after #4546 attempted to stabilize it:
apps/desktop/e2e/sidebar-geometry.spec.ts
resize handle drag from its vertical centre changes the column width
The observed run completed the first widening drag, began the reverse drag, and saw the handle enter data-resizing; however, the wrapper width never became smaller than widenedWidth - 40 before the 60-second test timeout.
Expected behavior: after the second grab reports data-resizing, moving the pointer 80 pixels left should deterministically narrow the sidebar and satisfy the width assertion.
This failure occurred on PR #4601, whose diff does not touch the sidebar, resize implementation, geometry spec, or related CSS. A simultaneous CI run for the stacked PR #4608, which includes #4601, passed all 107 Desktop E2E tests. The evidence therefore points to a remaining test/compositor timing race rather than a regression introduced by #4601.
How to reproduce
The failure is intermittent and was observed in the normal CI topology:
-
Start four isolated Xvfb displays.
-
Run the complete Desktop E2E suite with four Playwright workers:
MAKA_E2E_X_DISPLAY_BASE=90 npm exec -w @maka/desktop -- playwright test \
--config e2e/playwright.config.ts \
--workers=4
-
Observe the reverse-width poll in sidebar-geometry.spec.ts:157 time out even though the second data-resizing assertion passed.
For focused stress reproduction, retain the same isolated-display topology and repeat:
npm exec -w @maka/desktop -- playwright test \
--config e2e/playwright.config.ts \
e2e/sidebar-geometry.spec.ts \
--grep "resize handle drag" \
--workers=4 \
--repeat-each=20
Do not replace the width assertion with a fixed delay or simply enlarge the timeout; the existing failure already consumed the full test budget.
Environment
- Maka commit:
5bab6b71f600bf6cb6633dade953ad5b85f092a8
- OS: GitHub Actions Linux runner with four Xvfb displays
- Surface: Desktop E2E
- Test runner: Playwright, four workers
Logs, screenshots, or additional context
Failure:
Error: Test timeout of 60000ms exceeded
await expect.poll(() => wrapperWidth(wrapper)).toBeLessThan(widenedWidth - 40);
The earlier stabilization in #4546 already moved the pointer to the handle's live center and asserted data-resizing immediately after each grab. This recurrence narrows the remaining problem: the second grab is accepted, but the reverse pointer move does not reliably produce the expected live width update under concurrent Xvfb load. Capture the pointer position, handle bounds, wrapper width, and resize events around the second drag before choosing a fix.
Created with OpenAI Codex assistance.
What happened
The Desktop E2E test below still fails intermittently under concurrent Linux/Xvfb CI load after #4546 attempted to stabilize it:
apps/desktop/e2e/sidebar-geometry.spec.tsThe observed run completed the first widening drag, began the reverse drag, and saw the handle enter
data-resizing; however, the wrapper width never became smaller thanwidenedWidth - 40before the 60-second test timeout.Expected behavior: after the second grab reports
data-resizing, moving the pointer 80 pixels left should deterministically narrow the sidebar and satisfy the width assertion.This failure occurred on PR #4601, whose diff does not touch the sidebar, resize implementation, geometry spec, or related CSS. A simultaneous CI run for the stacked PR #4608, which includes #4601, passed all 107 Desktop E2E tests. The evidence therefore points to a remaining test/compositor timing race rather than a regression introduced by #4601.
How to reproduce
The failure is intermittent and was observed in the normal CI topology:
Start four isolated Xvfb displays.
Run the complete Desktop E2E suite with four Playwright workers:
Observe the reverse-width poll in
sidebar-geometry.spec.ts:157time out even though the seconddata-resizingassertion passed.For focused stress reproduction, retain the same isolated-display topology and repeat:
Do not replace the width assertion with a fixed delay or simply enlarge the timeout; the existing failure already consumed the full test budget.
Environment
5bab6b71f600bf6cb6633dade953ad5b85f092a8Logs, screenshots, or additional context
Failure:
The earlier stabilization in #4546 already moved the pointer to the handle's live center and asserted
data-resizingimmediately after each grab. This recurrence narrows the remaining problem: the second grab is accepted, but the reverse pointer move does not reliably produce the expected live width update under concurrent Xvfb load. Capture the pointer position, handle bounds, wrapper width, and resize events around the second drag before choosing a fix.Created with OpenAI Codex assistance.