Skip to content

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

fix(workspace): preserve scoped projects after main sync

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

Triggered via pull request August 1, 2026 01:03
Status Cancelled
Total duration 9m 23s
Artifacts 7

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
2m 38s
Preflight
Workspace unit tests
1m 49s
Workspace unit tests
Windows tools-pack payload tests
2m 16s
Windows tools-pack payload tests
Web workspace tests
8m 22s
Web workspace tests
E2E Vitest
4m 40s
E2E Vitest
Validate workspace
3s
Validate workspace
Runtime summary
6s
Runtime summary
Fit to window
Zoom out
Zoom in

Annotations

41 errors, 3 warnings, and 2 notices
Preflight
Process completed with exit code 1.
Preflight
Type 'null' is not assignable to type 'string | undefined'.
E2E Vitest
Process completed with exit code 1.
tests/collab/headerless-mutation.test.ts > a headerless caller can mutate a project the daemon itself owns > signed out, a client keeps write access to exactly the projects it can see: e2e/lib/vitest/http.ts#L18
Error: HTTP 400 /api/workspace/context: {"error":"WORKSPACE_CONTEXT_REQUIRED","message":"an explicit workspace context is required"} ❯ requestJson lib/vitest/http.ts:18:11 ❯ tests/collab/headerless-mutation.test.ts:327:14 ❯ runToolsDevSuite lib/vitest/suite.ts:276:5 ❯ tests/collab/headerless-mutation.test.ts:324:7
tests/collab/headerless-mutation.test.ts > a headerless caller can mutate a project the daemon itself owns > create then duplicate with no workspace headers β€” the od CLI shape: e2e/tests/collab/headerless-mutation.test.ts#L226
AssertionError: precondition: #6201 binds a headerless create to the daemon workspace: expected null to be 'ws-hdl-personal' // Object.is equality - Expected: "ws-hdl-personal" + Received: null ❯ tests/collab/headerless-mutation.test.ts:226:13 ❯ runToolsDevSuite lib/vitest/suite.ts:276:5 ❯ tests/collab/headerless-mutation.test.ts:214:7
tests/collab/created-project-binding.test.ts > a created project is bound to the workspace the daemon is signed in to > headerless creates bind to the ambient workspace; signed-out stays unbound and still works: e2e/tests/collab/created-project-binding.test.ts#L198
AssertionError: a headerless create must still bind to the workspace the daemon knows it is in: expected 'unbound' not to be 'unbound' // Object.is equality ❯ tests/collab/created-project-binding.test.ts:198:17 ❯ runToolsDevSuite lib/vitest/suite.ts:276:5 ❯ tests/collab/created-project-binding.test.ts:186:7
tests/amr/turn.test.ts > AMR chat-run end-to-end > drives /api/runs against vela ACP and the assistant message captures the fake stream: e2e/lib/vitest/http.ts#L18
Error: HTTP 409 /api/runs: {"error":{"code":"AMR_WORKSPACE_SCOPE_REQUIRED","message":"open the project from your Personal Workspace before running AMR Cloud"}} ❯ requestJson lib/vitest/http.ts:18:11 ❯ startRun lib/vitest/runs.ts:38:10 ❯ tests/amr/turn.test.ts:258:19 ❯ runToolsDevSuite lib/vitest/suite.ts:276:5 ❯ tests/amr/turn.test.ts:191:5
tests/amr/relogin-required.test.ts > AMR relogin-required run failures > uses daemon AMR runtime credentials for pre-run login status: e2e/lib/vitest/http.ts#L18
Error: HTTP 409 /api/runs: {"error":{"code":"AMR_WORKSPACE_SCOPE_REQUIRED","message":"open the project from your Personal Workspace before running AMR Cloud"}} ❯ requestJson lib/vitest/http.ts:18:11 ❯ startRun lib/vitest/runs.ts:38:10 ❯ tests/amr/relogin-required.test.ts:127:23 ❯ runToolsDevSuite lib/vitest/suite.ts:276:5 ❯ tests/amr/relogin-required.test.ts:109:9 ❯ Object.withEnv [as env] lib/vitest/suite.ts:213:12 ❯ tests/amr/relogin-required.test.ts:102:5
tests/amr/relogin-required.test.ts > AMR relogin-required run failures > uses configured AMR profile env for pre-run login status: e2e/lib/vitest/http.ts#L18
Error: HTTP 409 /api/runs: {"error":{"code":"AMR_WORKSPACE_SCOPE_REQUIRED","message":"open the project from your Personal Workspace before running AMR Cloud"}} ❯ requestJson lib/vitest/http.ts:18:11 ❯ startRun lib/vitest/runs.ts:38:10 ❯ tests/amr/relogin-required.test.ts:80:21 ❯ runToolsDevSuite lib/vitest/suite.ts:276:5 ❯ tests/amr/relogin-required.test.ts:63:7 ❯ Object.withEnv [as env] lib/vitest/suite.ts:213:12 ❯ tests/amr/relogin-required.test.ts:61:5
tests/amr/logout-state-persistence.test.ts > AMR logout state persistence > a previously working AMR session stops working after local logout and requires re-login: e2e/lib/vitest/http.ts#L18
Error: HTTP 409 /api/runs: {"error":{"code":"AMR_WORKSPACE_SCOPE_REQUIRED","message":"open the project from your Personal Workspace before running AMR Cloud"}} ❯ requestJson lib/vitest/http.ts:18:11 ❯ startRun lib/vitest/runs.ts:38:10 ❯ tests/amr/logout-state-persistence.test.ts:45:26 ❯ runToolsDevSuite lib/vitest/suite.ts:276:5 ❯ tests/amr/logout-state-persistence.test.ts:19:7 ❯ Object.withEnv [as env] lib/vitest/suite.ts:213:12 ❯ tests/amr/logout-state-persistence.test.ts:18:5
tests/amr/insufficient-balance.test.ts > AMR insufficient balance run failures > fails the run with a recharge-facing AMR error when fake vela reports insufficient balance: e2e/lib/vitest/http.ts#L18
Error: HTTP 409 /api/runs: {"error":{"code":"AMR_WORKSPACE_SCOPE_REQUIRED","message":"open the project from your Personal Workspace before running AMR Cloud"}} ❯ requestJson lib/vitest/http.ts:18:11 ❯ startRun lib/vitest/runs.ts:38:10 ❯ tests/amr/insufficient-balance.test.ts:37:19 ❯ runToolsDevSuite lib/vitest/suite.ts:276:5 ❯ tests/amr/insufficient-balance.test.ts:17:5
tests/amr/auth-error-convergence.test.ts > AMR auth error convergence > marks the run and assistant message as failed when fake vela returns an auth error during prompt: e2e/lib/vitest/http.ts#L18
Error: HTTP 409 /api/runs: {"error":{"code":"AMR_WORKSPACE_SCOPE_REQUIRED","message":"open the project from your Personal Workspace before running AMR Cloud"}} ❯ requestJson lib/vitest/http.ts:18:11 ❯ startRun lib/vitest/runs.ts:38:10 ❯ tests/amr/auth-error-convergence.test.ts:38:19 ❯ runToolsDevSuite lib/vitest/suite.ts:276:5 ❯ tests/amr/auth-error-convergence.test.ts:17:5
Playwright visual (settings-workspace)
Process completed with exit code 1.
Playwright visual (settings-workspace)
Process completed with exit code 1.
ui/visual-settings.test.ts:82:1 β€Ί [P1] captures the settings Open Design account balance surface: e2e/ui/visual-settings.test.ts#L115
1) ui/visual-settings.test.ts:82:1 β€Ί [P1] captures the settings Open Design account balance surface Error: expect(locator).toBeVisible() failed Locator: locator('.modal-settings').first().getByTestId('settings-agent-card-amr-upgrade') Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for locator('.modal-settings').first().getByTestId('settings-agent-card-amr-upgrade') 113 | await expect(amrCard).toContainText('plus'); 114 | await expect(amrCard).toContainText('$247.51'); > 115 | await expect(dialog.getByTestId('settings-agent-card-amr-upgrade')).toBeVisible(); | ^ 116 | await waitForVisualFonts(page); 117 | 118 | await captureVisual(page, 'visual-settings-open-design-account'); at /home/runner/work/open-design/open-design/e2e/ui/visual-settings.test.ts:115:71
UI P0 (project-runtime)
Canceling since a higher priority waiting request for ci-6320 exists
UI P0 (project-runtime)
The operation was canceled.
[chromium] β€Ί ui/amr-logout-requires-relogin.test.ts:51:1 β€Ί [P0] after local Sign out: e2e/lib/playwright/amr.ts#L90
1) [chromium] β€Ί ui/amr-logout-requires-relogin.test.ts:51:1 β€Ί [P0] after local Sign out, AMR runs require re-login and Settings keeps AMR selected Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: frame._expect: Target page, context or browser has been closed at ../lib/playwright/amr.ts:90 88 | export async function expectWorkspaceReady(page: Page) { 89 | await waitForLoadingToClear(page); > 90 | await expect(page).toHaveURL(/\/projects\//); | ^ 91 | await expect(page.getByTestId('chat-composer')).toBeVisible(); 92 | await expect(page.getByTestId('chat-composer-input')).toBeVisible(); 93 | } at expectWorkspaceReady (/home/runner/work/open-design/open-design/e2e/lib/playwright/amr.ts:90:22) at gotoProject (/home/runner/work/open-design/open-design/e2e/lib/playwright/amr.ts:264:3) at /home/runner/work/open-design/open-design/e2e/ui/amr-logout-requires-relogin.test.ts:145:3
[chromium] β€Ί ui/amr-logout-requires-relogin.test.ts:51:1 β€Ί [P0] after local Sign out: e2e/ui/amr-logout-requires-relogin.test.ts#L0
1) [chromium] β€Ί ui/amr-logout-requires-relogin.test.ts:51:1 β€Ί [P0] after local Sign out, AMR runs require re-login and Settings keeps AMR selected Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 120000ms exceeded.
[chromium] β€Ί ui/amr-logout-requires-relogin.test.ts:51:1 β€Ί [P0] after local Sign out: e2e/ui/amr-logout-requires-relogin.test.ts#L131
1) [chromium] β€Ί ui/amr-logout-requires-relogin.test.ts:51:1 β€Ί [P0] after local Sign out, AMR runs require re-login and Settings keeps AMR selected Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('.modal-settings').first().getByTestId('settings-agent-card-amr').getByRole('button').first() Expected: "true" Timeout: 10000ms Error: element(s) not found Call log: - Expect "toHaveAttribute" with timeout 10000ms - waiting for locator('.modal-settings').first().getByTestId('settings-agent-card-amr').getByRole('button').first() 129 | }); 130 | const reopenedSettings = await openSettingsDialog(page); > 131 | await expect(amrAgentToggle(reopenedSettings)).toHaveAttribute('aria-pressed', 'true'); | ^ 132 | await expect(reopenedSettings.getByRole('button', { name: /^Authorize$|^Sign in$/i })).toBeVisible(); 133 | await page.keyboard.press('Escape'); 134 | await expect(reopenedSettings).toHaveCount(0); at /home/runner/work/open-design/open-design/e2e/ui/amr-logout-requires-relogin.test.ts:131:50
UI P0 (project-workspace)
Canceling since a higher priority waiting request for ci-6320 exists
UI P0 (project-workspace)
The operation was canceled.
[chromium] β€Ί ui/app-design-files.test.ts:84:3 β€Ί [P0] @critical design-files-delete: Design Files panel deletes an uploaded file and clears its tab: e2e/ui/app-design-files.test.ts#L487
2) [chromium] β€Ί ui/app-design-files.test.ts:84:3 β€Ί [P0] @critical design-files-delete: Design Files panel deletes an uploaded file and clears its tab Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByRole('tab', { name: /keep-me\.png/i }) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByRole('tab', { name: /keep-me\.png/i }) 485 | buffer: pngBytes, 486 | }); > 487 | await expect(page.getByRole('tab', { name: /keep-me\.png/i })).toBeVisible(); | ^ 488 | 489 | await page.getByTestId('design-files-upload-input').setInputFiles({ 490 | name: 'trash-me.png', at runDesignFilesDeleteFlow (/home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:487:66) at /home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:96:7
[chromium] β€Ί ui/app-design-files.test.ts:84:3 β€Ί [P0] @critical design-files-delete: Design Files panel deletes an uploaded file and clears its tab: e2e/ui/app-design-files.test.ts#L487
2) [chromium] β€Ί ui/app-design-files.test.ts:84:3 β€Ί [P0] @critical design-files-delete: Design Files panel deletes an uploaded file and clears its tab Error: expect(locator).toBeVisible() failed Locator: getByRole('tab', { name: /keep-me\.png/i }) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByRole('tab', { name: /keep-me\.png/i }) 485 | buffer: pngBytes, 486 | }); > 487 | await expect(page.getByRole('tab', { name: /keep-me\.png/i })).toBeVisible(); | ^ 488 | 489 | await page.getByTestId('design-files-upload-input').setInputFiles({ 490 | name: 'trash-me.png', at runDesignFilesDeleteFlow (/home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:487:66) at /home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:96:7
[chromium] β€Ί ui/app-design-files.test.ts:84:3 β€Ί [P0] @critical design-files-upload: Design Files panel uploads an image and opens it in the workspace: e2e/ui/app-design-files.test.ts#L450
1) [chromium] β€Ί ui/app-design-files.test.ts:84:3 β€Ί [P0] @critical design-files-upload: Design Files panel uploads an image and opens it in the workspace Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByRole('tab', { name: /moodboard\.png/i }) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByRole('tab', { name: /moodboard\.png/i }) 448 | }); 449 | > 450 | await expect(page.getByRole('tab', { name: /moodboard\.png/i })).toBeVisible(); | ^ 451 | await openAllProjectFiles(page); 452 | // #5517 deleted the preview pane that used to spell out kind / size / 453 | // download for the picked file. The panel's category tab bar is what states at runDesignFilesUploadFlow (/home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:450:68) at /home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:92:7
[chromium] β€Ί ui/app-design-files.test.ts:84:3 β€Ί [P0] @critical design-files-upload: Design Files panel uploads an image and opens it in the workspace: e2e/ui/app-design-files.test.ts#L450
1) [chromium] β€Ί ui/app-design-files.test.ts:84:3 β€Ί [P0] @critical design-files-upload: Design Files panel uploads an image and opens it in the workspace Error: expect(locator).toBeVisible() failed Locator: getByRole('tab', { name: /moodboard\.png/i }) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByRole('tab', { name: /moodboard\.png/i }) 448 | }); 449 | > 450 | await expect(page.getByRole('tab', { name: /moodboard\.png/i })).toBeVisible(); | ^ 451 | await openAllProjectFiles(page); 452 | // #5517 deleted the preview pane that used to spell out kind / size / 453 | // download for the picked file. The panel's category tab bar is what states at runDesignFilesUploadFlow (/home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:450:68) at /home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:92:7
Web workspace tests
Canceling since a higher priority waiting request for ci-6320 exists
Web workspace tests
The operation was canceled.
UI P0 (workspace-restoration)
Canceling since a higher priority waiting request for ci-6320 exists
UI P0 (workspace-restoration)
The operation was canceled.
[chromium] β€Ί ui/app-restoration.test.ts:155:1 β€Ί [P0] @critical workspace restores the last manually selected file tab after reload instead of jumping back to the generated artifact: e2e/ui/app-restoration.test.ts#L3062
2) [chromium] β€Ί ui/app-restoration.test.ts:155:1 β€Ί [P0] @critical workspace restores the last manually selected file tab after reload instead of jumping back to the generated artifact Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false Call Log: - Timeout 20000ms exceeded while waiting on the predicate 3060 | ); 3061 | }, { timeout: T.medium }) > 3062 | .toBe(true); | ^ 3063 | } 3064 | 3065 | async function expectProjectFilesToIncludeSuffixes( at expectPersistedArtifactMessage (/home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:3062:6) at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:200:9
[chromium] β€Ί ui/app-restoration.test.ts:155:1 β€Ί [P0] @critical workspace restores the last manually selected file tab after reload instead of jumping back to the generated artifact: e2e/ui/app-restoration.test.ts#L3062
2) [chromium] β€Ί ui/app-restoration.test.ts:155:1 β€Ί [P0] @critical workspace restores the last manually selected file tab after reload instead of jumping back to the generated artifact Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false Call Log: - Timeout 20000ms exceeded while waiting on the predicate 3060 | ); 3061 | }, { timeout: T.medium }) > 3062 | .toBe(true); | ^ 3063 | } 3064 | 3065 | async function expectProjectFilesToIncludeSuffixes( at expectPersistedArtifactMessage (/home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:3062:6) at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:200:9
[chromium] β€Ί ui/app-restoration.test.ts:257:1 β€Ί [P0] switching between projects restores each project workspace to its last active file tab: e2e/ui/app-restoration.test.ts#L2485
1) [chromium] β€Ί ui/app-restoration.test.ts:257:1 β€Ί [P0] switching between projects restores each project workspace to its last active file tab Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: locator('[data-testid^="design-file-row-"][data-testid$="alpha-secondary.png"]').first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for locator('[data-testid^="design-file-row-"][data-testid$="alpha-secondary.png"]').first() 2483 | // the row by test id β€” image cards render no filename text to match on. 2484 | const row = rowBySuffix(page, fileName); > 2485 | await expect(row).toBeVisible(); | ^ 2486 | await row.getByRole('button').first().click(); 2487 | await expect(tab).toHaveAttribute('aria-selected', 'true'); 2488 | } at openDesignFile (/home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:2485:21) at ensureFileTabOpen (/home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:2607:3) at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:294:29
[chromium] β€Ί ui/app-restoration.test.ts:257:1 β€Ί [P0] switching between projects restores each project workspace to its last active file tab: e2e/ui/app-restoration.test.ts#L2485
1) [chromium] β€Ί ui/app-restoration.test.ts:257:1 β€Ί [P0] switching between projects restores each project workspace to its last active file tab Error: expect(locator).toBeVisible() failed Locator: locator('[data-testid^="design-file-row-"][data-testid$="alpha-secondary.png"]').first() Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for locator('[data-testid^="design-file-row-"][data-testid$="alpha-secondary.png"]').first() 2483 | // the row by test id β€” image cards render no filename text to match on. 2484 | const row = rowBySuffix(page, fileName); > 2485 | await expect(row).toBeVisible(); | ^ 2486 | await row.getByRole('button').first().click(); 2487 | await expect(tab).toHaveAttribute('aria-selected', 'true'); 2488 | } at openDesignFile (/home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:2485:21) at ensureFileTabOpen (/home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:2607:3) at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:294:29
UI P0 (entry-settings)
Canceling since a higher priority waiting request for ci-6320 exists
UI P0 (entry-settings)
The operation was canceled.
[chromium] β€Ί ui/entry-chrome-flows.test.ts:203:1 β€Ί [P0] @critical workspace selection remains isolated across two browser tabs: e2e/ui/entry-chrome-flows.test.ts#L269
2) [chromium] β€Ί ui/entry-chrome-flows.test.ts:203:1 β€Ί [P0] @critical workspace selection remains isolated across two browser tabs Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 2 Object { - "workspaceId": "ws-tab-team", - "workspaceMemberId": "wm-tab-team", + "workspaceId": "ws-tab-personal", + "workspaceMemberId": "wm-tab-personal", } 267 | expect(teamReads.length).toBeGreaterThanOrEqual(2); 268 | for (const request of teamReads) { > 269 | expect(request).toEqual({ | ^ 270 | workspaceId: TAB_TEAM_WORKSPACE.workspaceId, 271 | workspaceMemberId: TAB_TEAM_WORKSPACE.workspaceMemberId, 272 | }); at /home/runner/work/open-design/open-design/e2e/ui/entry-chrome-flows.test.ts:269:23
[chromium] β€Ί ui/amr-onboarding.test.ts:43:1 β€Ί [P0] @critical onboarding lets AMR Cloud sign in and complete setup after the login poll succeeds: e2e/ui/amr-onboarding.test.ts#L1167
1) [chromium] β€Ί ui/amr-onboarding.test.ts:43:1 β€Ί [P0] @critical onboarding lets AMR Cloud sign in and complete setup after the login poll succeeds Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByRole('heading', { name: /What will you design with your agent today/i }) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByRole('heading', { name: /What will you design with your agent today/i }) 1165 | await expect(page).not.toHaveURL(/\/onboarding$/); 1166 | await dismissPrivacyDialog(page); > 1167 | await expect(page.getByRole('heading', { name: /What will you design with your agent today/i })).toBeVisible(); | ^ 1168 | } 1169 | 1170 | async function expectFinalDesignSystemStep(page: Page) { at expectOnboardingFinished (/home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:1167:100) at /home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:70:3
[chromium] β€Ί ui/amr-onboarding.test.ts:43:1 β€Ί [P0] @critical onboarding lets AMR Cloud sign in and complete setup after the login poll succeeds: e2e/ui/amr-onboarding.test.ts#L1167
1) [chromium] β€Ί ui/amr-onboarding.test.ts:43:1 β€Ί [P0] @critical onboarding lets AMR Cloud sign in and complete setup after the login poll succeeds Error: expect(locator).toBeVisible() failed Locator: getByRole('heading', { name: /What will you design with your agent today/i }) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByRole('heading', { name: /What will you design with your agent today/i }) 1165 | await expect(page).not.toHaveURL(/\/onboarding$/); 1166 | await dismissPrivacyDialog(page); > 1167 | await expect(page.getByRole('heading', { name: /What will you design with your agent today/i })).toBeVisible(); | ^ 1168 | } 1169 | 1170 | async function expectFinalDesignSystemStep(page: Page) { at expectOnboardingFinished (/home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:1167:100) at /home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:70:3
Validate workspace
Process completed with exit code 1.
ci
Canceling since a higher priority waiting request for ci-6320 exists
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-o8IKU1/gh-stub.mjs api repos/nexu-io/open-design/compare/1111111111111111111111111111111111111111...2222222222222222222222222222222222222222
🎭 Playwright Run Summary
3 skipped 17 passed (3.2m)
🎭 Playwright Run Summary
1 failed ui/visual-settings.test.ts:82:1 β€Ί [P1] captures the settings Open Design account balance surface 17 passed (4.2m)

Artifacts

Produced during runtime
Name Size Digest
handoff-report-visual-pr
438 Bytes
sha256:6bd6a8d6a57f94783f67ec752207e2df541295ee83cc8e064c51b89118fd7107
ui-p0-ci-30677039346-entry-settings
17.7 MB
sha256:2971021cbfb80f1c0cfb5b4d254cd285953a7a198acfd1c93e09bb11825470c2
ui-p0-ci-30677039346-project-runtime
16.1 MB
sha256:eb30a82926eb69fc2e2c61090384c9688f581a38960e3e574cd532e83619cc22
ui-p0-ci-30677039346-project-workspace
8.51 MB
sha256:d78f8cf3de30df800422ee8c820eb6885840d2c8f7d28a23ef1b974cc7cb8052
ui-p0-ci-30677039346-workspace-restoration
10.5 MB
sha256:462d2e67d41a1818529821821792b41315befef1d14e682385e11ae540a5f109
visual-pr-capture-6320-30677039346-entry-navigation
4.36 MB
sha256:5a9fcc8f68cf9b988c2d653f146f91cbd3383318278ab2524bdffe9fa0d9dd0a
visual-pr-capture-6320-30677039346-settings-workspace
3.06 MB
sha256:a703ba0948c741071c1686c6f53f83e6fc1b186261fa94ac752fdd5acfec4e81