Skip to content

fix(workspace): preserve scoped projects after main sync #17060

fix(workspace): preserve scoped projects after main sync

fix(workspace): preserve scoped projects after main sync #17060

Triggered via pull request August 2, 2026 03:34
Status Failure
Total duration 14m 37s
Artifacts 8

ci.yml

on: pull_request
Resolve runner profiles
11s
Resolve runner profiles
Detect validation scopes
21s
Detect validation scopes
Static gate
16s
Static gate
Matrix: playwright_critical
Matrix: playwright_visual
Matrix: ui_p0
Preflight
3m 47s
Preflight
Workspace unit tests
1m 56s
Workspace unit tests
Windows tools-pack payload tests
2m 23s
Windows tools-pack payload tests
Web workspace tests
9m 5s
Web workspace tests
E2E Vitest
4m 41s
E2E Vitest
Validate workspace
3s
Validate workspace
Runtime summary
3s
Runtime summary
Fit to window
Zoom out
Zoom in

Annotations

8 errors, 4 warnings, and 7 notices
UI P0 (workspace-restoration)
Process completed with exit code 1.
[chromium] › ui/app-restoration.test.ts:1217:1 › [P0] @critical daemon error details persist between failed sends: e2e/ui/app-restoration.test.ts#L1249
1) [chromium] › ui/app-restoration.test.ts:1217:1 › [P0] @critical daemon error details persist between failed sends Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: locator('[data-testid^="design-file-row-"]').filter({ hasText: 'error-cross-tab.html' }) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for locator('[data-testid^="design-file-row-"]').filter({ hasText: 'error-cross-tab.html' }) 1247 | hasText: 'error-cross-tab.html', 1248 | }); > 1249 | await expect(crossFileRow).toBeVisible(); | ^ 1250 | // #5517: one click on the row opens the file — no preview card in between. 1251 | await crossFileRow.getByRole('button').first().click(); 1252 | await expect(page.getByRole('tab', { name: /error-cross-tab\.html/i })).toHaveAttribute('aria-selected', 'true'); at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:1249:30
[chromium] › ui/app-restoration.test.ts:1217:1 › [P0] @critical daemon error details persist between failed sends: e2e/ui/app-restoration.test.ts#L1251
1) [chromium] › ui/app-restoration.test.ts:1217:1 › [P0] @critical daemon error details persist between failed sends Error: locator.click: Test timeout of 90000ms exceeded. Call log: - waiting for locator('[data-testid^="design-file-row-"]').filter({ hasText: 'error-cross-tab.html' }).getByRole('button').first() 1249 | await expect(crossFileRow).toBeVisible(); 1250 | // #5517: one click on the row opens the file — no preview card in between. > 1251 | await crossFileRow.getByRole('button').first().click(); | ^ 1252 | await expect(page.getByRole('tab', { name: /error-cross-tab\.html/i })).toHaveAttribute('aria-selected', 'true'); 1253 | await expect(artifactPreviewFrame(page).getByRole('heading', { name: 'Error cross tab' })).toBeVisible(); 1254 | at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:1251:50
[chromium] › ui/app-restoration.test.ts:1217:1 › [P0] @critical daemon error details persist between failed sends: e2e/ui/app-restoration.test.ts#L0
1) [chromium] › ui/app-restoration.test.ts:1217:1 › [P0] @critical daemon error details persist between failed sends Test timeout of 90000ms exceeded.
UI P0 (project-workspace)
Process completed with exit code 1.
[chromium] › ui/app-manual-edit.test.ts:769:1 › [P0] @critical edited HTML file restores selected tab and preview after reload: e2e/ui/app-manual-edit.test.ts#L795
1) [chromium] › ui/app-manual-edit.test.ts:769:1 › [P0] @critical edited HTML file restores selected tab and preview after reload Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByTestId('manual-edit-mode-toggle') resolved to 2 elements: 1) <button title="Edit" type="button" aria-label="Edit" data-tooltip="Edit" aria-pressed="false" data-tooltip-placement="bottom" data-testid="manual-edit-mode-toggle" class="viewer-action viewer-action-icon od-tooltip">…</button> aka getByTestId('file-workspace').getByRole('button', { name: 'Edit' }) 2) <button title="Edit" type="button" aria-label="Edit" data-tooltip="Edit" aria-pressed="false" data-tooltip-placement="bottom" data-testid="manual-edit-mode-toggle" class="viewer-action viewer-action-icon od-tooltip">…</button> aka getByTestId('manual-edit-mode-toggle').nth(1) Call log: - waiting for getByTestId('manual-edit-mode-toggle') 793 | const frame = artifactPreviewFrame(page); 794 | await expect(frame.getByRole('heading', { name: 'Original Hero' })).toBeVisible(); > 795 | await page.getByTestId('manual-edit-mode-toggle').click(); | ^ 796 | await selectPreviewElementThroughBridge(page, frame, '[data-od-id="hero-title"]', 'Parameters'); 797 | const parameters = inspectorSection(page, 'Parameters'); 798 | const fontSizeInput = parameters.locator('.cc-row').filter({ hasText: 'Font size' }).locator('input'); at /home/runner/work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:795:53
[chromium] › ui/app-manual-edit.test.ts:769:1 › [P0] @critical edited HTML file restores selected tab and preview after reload: e2e/ui/app-manual-edit.test.ts#L795
1) [chromium] › ui/app-manual-edit.test.ts:769:1 › [P0] @critical edited HTML file restores selected tab and preview after reload Error: locator.click: Error: strict mode violation: getByTestId('manual-edit-mode-toggle') resolved to 2 elements: 1) <button title="Edit" type="button" aria-label="Edit" data-tooltip="Edit" aria-pressed="false" data-tooltip-placement="bottom" data-testid="manual-edit-mode-toggle" class="viewer-action viewer-action-icon od-tooltip">…</button> aka getByTestId('manual-edit-mode-toggle').first() 2) <button title="Edit" type="button" aria-label="Edit" data-tooltip="Edit" aria-pressed="false" data-tooltip-placement="bottom" data-testid="manual-edit-mode-toggle" class="viewer-action viewer-action-icon od-tooltip">…</button> aka getByTestId('file-workspace').getByRole('button', { name: 'Edit' }) Call log: - waiting for getByTestId('manual-edit-mode-toggle') 793 | const frame = artifactPreviewFrame(page); 794 | await expect(frame.getByRole('heading', { name: 'Original Hero' })).toBeVisible(); > 795 | await page.getByTestId('manual-edit-mode-toggle').click(); | ^ 796 | await selectPreviewElementThroughBridge(page, frame, '[data-od-id="hero-title"]', 'Parameters'); 797 | const parameters = inspectorSection(page, 'Parameters'); 798 | const fontSizeInput = parameters.locator('.cc-row').filter({ hasText: 'Font size' }).locator('input'); at /home/runner/work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:795:53
Validate workspace
Process completed with exit code 1.
Detect validation scopes
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
E2E Vitest
merge_group changed-file resolution failed; falling back to the full plan: Error: merge_group compare result reached GitHub's 300-file ceiling
E2E Vitest
merge_group changed-file resolution failed; falling back to the full plan: Error: Command failed: /opt/hostedtoolcache/node/24.18.0/x64/bin/node /tmp/scopes-test-OoQhRZ/gh-stub.mjs api repos/nexu-io/open-design/compare/1111111111111111111111111111111111111111...2222222222222222222222222222222222222222
Slow Test: e2e/[chromium] › ui/amr-onboarding.test.ts#L0
e2e/[chromium] › ui/amr-onboarding.test.ts took 5.4m
🎭 Playwright Run Summary
3 skipped 17 passed (2.7m)
🎭 Playwright Run Summary
18 passed (4.3m)
🎭 Playwright Run Summary
4 passed (1.6m)
🎭 Playwright Run Summary
22 passed (4.5m)
🎭 Playwright Run Summary
1 skipped 53 passed (8.1m)
🎭 Playwright Run Summary
1 failed [chromium] › ui/app-restoration.test.ts:1217:1 › [P0] @critical daemon error details persist between failed sends 28 passed (9.0m)
🎭 Playwright Run Summary
1 failed [chromium] › ui/app-manual-edit.test.ts:769:1 › [P0] @critical edited HTML file restores selected tab and preview after reload 33 passed (11.6m)

Artifacts

Produced during runtime
Name Size Digest
handoff-report-visual-pr
438 Bytes
sha256:c6a75cd739bba685a64060561b795a4beae6d59390e52002b51d9b1cdbe36632
ui-p0-ci-30730869397-entry-settings
367 KB
sha256:bdb4f134fc0a7b410190c3714308995ce3259f62ca5a1fe4625cee24dadf5959
ui-p0-ci-30730869397-project-runtime
289 KB
sha256:ec04fe94980dece16c689eafa8e2fac87ccf15d1f32395608ce7af6c30f70b97
ui-p0-ci-30730869397-project-runtime-domain
343 KB
sha256:0b8e4ba93f40a1f40f409456cb92590daa4571d43ea75d30041cb6e65fb363d5
ui-p0-ci-30730869397-project-workspace
10.2 MB
sha256:cf281b0baac18c80bb34df32e798802a25e26c2019130f13368406212f21eb8f
ui-p0-ci-30730869397-workspace-restoration
11.7 MB
sha256:abed60cde5eeba786f7826733ec27143e58f4eafff586351a2db72321fc9da1c
visual-pr-capture-6320-30730869397-entry-navigation
5.5 MB
sha256:85f033283289205b154e43d4be2fac8c3ba0f0408e61bd395338d3d848c458b3
visual-pr-capture-6320-30730869397-settings-workspace
3.17 MB
sha256:13484787110c3eaa0c7cbb72626a7da1b5d38bee5b8a0aebd654e3c64824defc