fix(collab): align unbound project mutation identity #16843
ci.yml
on: pull_request
Resolve runner profiles
14s
Matrix: playwright_critical
Matrix: playwright_visual
Matrix: ui_p0
Preflight
3m 30s
Workspace unit tests
1m 42s
Windows tools-pack payload tests
0s
Web workspace tests
8m 16s
E2E Vitest
4m 27s
Runtime summary
5s
Annotations
33 errors, 3 warnings, and 2 notices
|
UI P0 (workspace-restoration)
Canceling since a higher priority waiting request for ci-6231 exists
|
|
UI P0 (workspace-restoration)
The operation was canceled.
|
|
UI P0 (project-runtime)
Canceling since a higher priority waiting request for ci-6231 exists
|
|
UI P0 (project-runtime)
The operation was canceled.
|
|
[chromium] βΊ ui/amr-run-failure-recovery.test.ts:179:1 βΊ [P0] @critical AMR auth failures offer inline Authorize & retry sign-in and auto-recover:
e2e/lib/playwright/amr.ts#L237
3) [chromium] βΊ ui/amr-run-failure-recovery.test.ts:179:1 βΊ [P0] @critical AMR auth failures offer inline Authorize & retry sign-in and auto-recover
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toBeEnabled() failed
Locator: getByTestId('chat-send')
Expected: enabled
Received: disabled
Timeout: 10000ms
Call log:
- Expect "toBeEnabled" with timeout 10000ms
- waiting for getByTestId('chat-send')
24 Γ locator resolved to <button disabled title="Send" type="button" aria-label="Send" data-tooltip="Send" data-testid="chat-send" class="composer-send od-tooltip">β¦</button>
- unexpected value "disabled"
at ../lib/playwright/amr.ts:237
235 | await input.click();
236 | await input.fill(prompt);
> 237 | await expect(page.getByTestId('chat-send')).toBeEnabled();
| ^
238 | await input.press('Enter');
239 | }
240 |
at sendPrompt (/home/runner/work/open-design/open-design/e2e/lib/playwright/amr.ts:237:47)
at /home/runner/work/open-design/open-design/e2e/ui/amr-run-failure-recovery.test.ts:222:3
|
|
[chromium] βΊ ui/amr-run-failure-recovery.test.ts:179:1 βΊ [P0] @critical AMR auth failures offer inline Authorize & retry sign-in and auto-recover:
e2e/lib/playwright/amr.ts#L237
3) [chromium] βΊ ui/amr-run-failure-recovery.test.ts:179:1 βΊ [P0] @critical AMR auth failures offer inline Authorize & retry sign-in and auto-recover
Error: expect(locator).toBeEnabled() failed
Locator: getByTestId('chat-send')
Expected: enabled
Received: disabled
Timeout: 10000ms
Call log:
- Expect "toBeEnabled" with timeout 10000ms
- waiting for getByTestId('chat-send')
24 Γ locator resolved to <button disabled title="Send" type="button" aria-label="Send" data-tooltip="Send" data-testid="chat-send" class="composer-send od-tooltip">β¦</button>
- unexpected value "disabled"
at ../lib/playwright/amr.ts:237
235 | await input.click();
236 | await input.fill(prompt);
> 237 | await expect(page.getByTestId('chat-send')).toBeEnabled();
| ^
238 | await input.press('Enter');
239 | }
240 |
at sendPrompt (/home/runner/work/open-design/open-design/e2e/lib/playwright/amr.ts:237:47)
at /home/runner/work/open-design/open-design/e2e/ui/amr-run-failure-recovery.test.ts:222:3
|
|
[chromium] βΊ ui/amr-run-failure-recovery.test.ts:113:1 βΊ [P0] @critical AMR insufficient-balance failures surface Top up AMR and recover after manual Retry:
e2e/lib/playwright/amr.ts#L237
2) [chromium] βΊ ui/amr-run-failure-recovery.test.ts:113:1 βΊ [P0] @critical AMR insufficient-balance failures surface Top up AMR and recover after manual Retry
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toBeEnabled() failed
Locator: getByTestId('chat-send')
Expected: enabled
Received: disabled
Timeout: 10000ms
Call log:
- Expect "toBeEnabled" with timeout 10000ms
- waiting for getByTestId('chat-send')
24 Γ locator resolved to <button disabled title="Send" type="button" aria-label="Send" data-tooltip="Send" data-testid="chat-send" class="composer-send od-tooltip">β¦</button>
- unexpected value "disabled"
at ../lib/playwright/amr.ts:237
235 | await input.click();
236 | await input.fill(prompt);
> 237 | await expect(page.getByTestId('chat-send')).toBeEnabled();
| ^
238 | await input.press('Enter');
239 | }
240 |
at sendPrompt (/home/runner/work/open-design/open-design/e2e/lib/playwright/amr.ts:237:47)
at /home/runner/work/open-design/open-design/e2e/ui/amr-run-failure-recovery.test.ts:149:3
|
|
[chromium] βΊ ui/amr-run-failure-recovery.test.ts:113:1 βΊ [P0] @critical AMR insufficient-balance failures surface Top up AMR and recover after manual Retry:
e2e/lib/playwright/amr.ts#L237
2) [chromium] βΊ ui/amr-run-failure-recovery.test.ts:113:1 βΊ [P0] @critical AMR insufficient-balance failures surface Top up AMR and recover after manual Retry
Error: expect(locator).toBeEnabled() failed
Locator: getByTestId('chat-send')
Expected: enabled
Received: disabled
Timeout: 10000ms
Call log:
- Expect "toBeEnabled" with timeout 10000ms
- waiting for getByTestId('chat-send')
24 Γ locator resolved to <button disabled title="Send" type="button" aria-label="Send" data-tooltip="Send" data-testid="chat-send" class="composer-send od-tooltip">β¦</button>
- unexpected value "disabled"
at ../lib/playwright/amr.ts:237
235 | await input.click();
236 | await input.fill(prompt);
> 237 | await expect(page.getByTestId('chat-send')).toBeEnabled();
| ^
238 | await input.press('Enter');
239 | }
240 |
at sendPrompt (/home/runner/work/open-design/open-design/e2e/lib/playwright/amr.ts:237:47)
at /home/runner/work/open-design/open-design/e2e/ui/amr-run-failure-recovery.test.ts:149:3
|
|
[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: expect.toHaveURL: 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 (entry-settings)
Canceling since a higher priority waiting request for ci-6231 exists
|
|
UI P0 (entry-settings)
The operation was canceled.
|
|
[chromium] βΊ ui/entry-chrome-flows.test.ts:2222:1 βΊ [P0] @critical clearing the home working directory removes linked dirs from project creation:
e2e/ui/entry-chrome-flows.test.ts#L2252
4) [chromium] βΊ ui/entry-chrome-flows.test.ts:2222:1 βΊ [P0] @critical clearing the home working directory removes linked dirs from project creation
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toContainText(expected) failed
Locator: getByTestId('working-dir-trigger')
Expected substring: "Select working directory"
Received string: "Working directory"
Timeout: 10000ms
Call log:
- Expect "toContainText" with timeout 10000ms
- waiting for getByTestId('working-dir-trigger')
22 Γ locator resolved to <button type="button" aria-expanded="false" data-testid="working-dir-trigger" class="WorkingDirPicker_trigger__9ua3U" title="Let the agent read this local folder (not imported into Design Files)">β¦</button>
- unexpected value "Working directory"
2250 | await page.getByTestId('working-dir-trigger').click();
2251 | await page.getByTestId('working-dir-clear').click();
> 2252 | await expect(page.getByTestId('working-dir-trigger')).toContainText('Select working directory');
| ^
2253 |
2254 | await page.getByTestId('home-hero-input').fill('Create a premium dashboard without local folder context.');
2255 |
at /home/runner/work/open-design/open-design/e2e/ui/entry-chrome-flows.test.ts:2252:57
|
|
[chromium] βΊ ui/entry-chrome-flows.test.ts:2222:1 βΊ [P0] @critical clearing the home working directory removes linked dirs from project creation:
e2e/ui/entry-chrome-flows.test.ts#L2252
4) [chromium] βΊ ui/entry-chrome-flows.test.ts:2222:1 βΊ [P0] @critical clearing the home working directory removes linked dirs from project creation
Error: expect(locator).toContainText(expected) failed
Locator: getByTestId('working-dir-trigger')
Expected substring: "Select working directory"
Received string: "Working directory"
Timeout: 10000ms
Call log:
- Expect "toContainText" with timeout 10000ms
- waiting for getByTestId('working-dir-trigger')
22 Γ locator resolved to <button type="button" aria-expanded="false" data-testid="working-dir-trigger" class="WorkingDirPicker_trigger__9ua3U" title="Let the agent read this local folder (not imported into Design Files)">β¦</button>
- unexpected value "Working directory"
2250 | await page.getByTestId('working-dir-trigger').click();
2251 | await page.getByTestId('working-dir-clear').click();
> 2252 | await expect(page.getByTestId('working-dir-trigger')).toContainText('Select working directory');
| ^
2253 |
2254 | await page.getByTestId('home-hero-input').fill('Create a premium dashboard without local folder context.');
2255 |
at /home/runner/work/open-design/open-design/e2e/ui/entry-chrome-flows.test.ts:2252:57
|
|
UI P0 (project-workspace)
Canceling since a higher priority waiting request for ci-6231 exists
|
|
[chromium] βΊ ui/amr-onboarding.test.ts:137:1 βΊ [P0] onboarding Local CLI path completes setup with the selected agent model:
e2e/ui/amr-onboarding.test.ts#L1123
3) [chromium] βΊ ui/amr-onboarding.test.ts:137:1 βΊ [P0] onboarding Local CLI path completes setup with the selected agent model
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 })
1121 | await expect(page).not.toHaveURL(/\/onboarding$/);
1122 | await dismissPrivacyDialog(page);
> 1123 | await expect(page.getByRole('heading', { name: /What will you design with your agent today/i })).toBeVisible();
| ^
1124 | }
1125 |
1126 | async function expectFinalDesignSystemStep(page: Page) {
at expectOnboardingFinished (/home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:1123:100)
at /home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:159:3
|
|
UI P0 (project-workspace)
The operation was canceled.
|
|
[chromium] βΊ ui/amr-onboarding.test.ts:137:1 βΊ [P0] onboarding Local CLI path completes setup with the selected agent model:
e2e/ui/amr-onboarding.test.ts#L1123
3) [chromium] βΊ ui/amr-onboarding.test.ts:137:1 βΊ [P0] onboarding Local CLI path completes setup with the selected agent model
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 })
1121 | await expect(page).not.toHaveURL(/\/onboarding$/);
1122 | await dismissPrivacyDialog(page);
> 1123 | await expect(page.getByRole('heading', { name: /What will you design with your agent today/i })).toBeVisible();
| ^
1124 | }
1125 |
1126 | async function expectFinalDesignSystemStep(page: Page) {
at expectOnboardingFinished (/home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:1123:100)
at /home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:159:3
|
|
[chromium] βΊ ui/app-manual-edit.test.ts:61:1 βΊ [P0] manual edit inspector previews and persists page and selected element styles:
e2e/ui/app-manual-edit.test.ts#L322
4) [chromium] βΊ ui/app-manual-edit.test.ts:61:1 βΊ [P0] manual edit inspector previews and persists page and selected element styles
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toContainText(expected) failed
Locator: locator('.manual-edit-modal')
Expected substring: "TYPOGRAPHY"
Received string: "Hero titleCONTENTTextOriginal HeroParametersText colorBackgroundOpacityβ+FontinheritSpace GroteskInterTimesArialRobotoHelveticaGeorgiamonospaceβΎFont sizeβ+Weight700100200300400500600700800900βΎLine heightβ+Letter spacingβ+Radiusβ+Border colorBorder widthβ+Border styleβSolidDashedDottedDoubleNoneβΎWidthβ+Heightβ+PaddingβΎTopβ+Rightβ+Bottomβ+Leftβ+MarginβΎTopβ+Rightβ+Bottomβ+Leftβ+DirectionβHorizontalHorizontal reverseVerticalVertical reverseβΎDistributionnormalβStartCenterEndSpace betweenSpace aroundSpace evenlyβΎGapβ+AlignstartβAlign leftAlign centerAlign rightβΎLayout controls are available for flex or grid containers.CancelSave"
Timeout: 10000ms
Call log:
- Expect "toContainText" with timeout 10000ms
- waiting for locator('.manual-edit-modal')
23 Γ locator resolved to <section class="manual-edit-modal cc-panel">β¦</section>
- unexpected value "Hero titleCONTENTTextOriginal HeroParametersText colorBackgroundOpacityβ+FontinheritSpace GroteskInterTimesArialRobotoHelveticaGeorgiamonospaceβΎFont sizeβ+Weight700100200300400500600700800900βΎLine heightβ+Letter spacingβ+Radiusβ+Border colorBorder widthβ+Border styleβSolidDashedDottedDoubleNoneβΎWidthβ+Heightβ+PaddingβΎTopβ+Rightβ+Bottomβ+Leftβ+MarginβΎTopβ+Rightβ+Bottomβ+Leftβ+DirectionβHorizontalHorizontal reverseVerticalVertical reverseβΎDistributionnormalβStartCenterEndSpace betweenSpace aroundSpace evenlyβΎGapβ+AlignstartβAlign leftAlign centerAlign rightβΎLayout controls are available for flex or grid containers.CancelSave"
320 | await expect(frame.locator(`${selector}[data-od-edit-selected="true"]`)).toHaveCount(1, { timeout: 2_000 });
321 | }).toPass({ timeout: 30_000 });
> 322 | await expect(page.locator('.manual-edit-modal')).toContainText(section);
| ^
323 | }
324 |
325 | test('[P0] @critical preview toolbar keeps share, download, comment, and zoom actions reachable', async ({ page }) => {
at selectPreviewElementThroughBridge (/home/runner/work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:322:52)
at /home/runner/work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:91:3
|
|
[chromium] βΊ ui/entry-chrome-flows.test.ts:2147:1 βΊ [P0] @critical home composer routes free-form prompts through the design router by default:
e2e/ui/entry-chrome-flows.test.ts#L2150
2) [chromium] βΊ ui/entry-chrome-flows.test.ts:2147:1 βΊ [P0] @critical home composer routes free-form prompts through the design router by default
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toHaveAttribute(expected) failed
Locator: getByTestId('composer-mode-trigger')
Expected: "Choose a mode"
Received: "Mode: Design"
Timeout: 10000ms
Call log:
- Expect "toHaveAttribute" with timeout 10000ms
- waiting for getByTestId('composer-mode-trigger')
21 Γ locator resolved to <button type="button" title="Design" aria-haspopup="menu" aria-expanded="false" aria-label="Mode: Design" data-testid="composer-mode-trigger" class="composer-mode__trigger is-selected">β¦</button>
- unexpected value "Mode: Design"
2148 | await gotoEntryHome(page);
2149 |
> 2150 | await expect(page.getByTestId('composer-mode-trigger')).toHaveAttribute('aria-label', 'Choose a mode');
| ^
2151 |
2152 | const input = page.getByTestId('home-hero-input');
2153 | const prompt =
at /home/runner/work/open-design/open-design/e2e/ui/entry-chrome-flows.test.ts:2150:59
|
|
[chromium] βΊ ui/app-manual-edit.test.ts:61:1 βΊ [P0] manual edit inspector previews and persists page and selected element styles:
e2e/ui/app-manual-edit.test.ts#L322
4) [chromium] βΊ ui/app-manual-edit.test.ts:61:1 βΊ [P0] manual edit inspector previews and persists page and selected element styles
Error: expect(locator).toContainText(expected) failed
Locator: locator('.manual-edit-modal')
Expected substring: "TYPOGRAPHY"
Received string: "Hero titleCONTENTTextOriginal HeroParametersText colorBackgroundOpacityβ+FontinheritSpace GroteskInterTimesArialRobotoHelveticaGeorgiamonospaceβΎFont sizeβ+Weight700100200300400500600700800900βΎLine heightβ+Letter spacingβ+Radiusβ+Border colorBorder widthβ+Border styleβSolidDashedDottedDoubleNoneβΎWidthβ+Heightβ+PaddingβΎTopβ+Rightβ+Bottomβ+Leftβ+MarginβΎTopβ+Rightβ+Bottomβ+Leftβ+DirectionβHorizontalHorizontal reverseVerticalVertical reverseβΎDistributionnormalβStartCenterEndSpace betweenSpace aroundSpace evenlyβΎGapβ+AlignstartβAlign leftAlign centerAlign rightβΎLayout controls are available for flex or grid containers.CancelSave"
Timeout: 10000ms
Call log:
- Expect "toContainText" with timeout 10000ms
- waiting for locator('.manual-edit-modal')
23 Γ locator resolved to <section class="manual-edit-modal cc-panel">β¦</section>
- unexpected value "Hero titleCONTENTTextOriginal HeroParametersText colorBackgroundOpacityβ+FontinheritSpace GroteskInterTimesArialRobotoHelveticaGeorgiamonospaceβΎFont sizeβ+Weight700100200300400500600700800900βΎLine heightβ+Letter spacingβ+Radiusβ+Border colorBorder widthβ+Border styleβSolidDashedDottedDoubleNoneβΎWidthβ+Heightβ+PaddingβΎTopβ+Rightβ+Bottomβ+Leftβ+MarginβΎTopβ+Rightβ+Bottomβ+Leftβ+DirectionβHorizontalHorizontal reverseVerticalVertical reverseβΎDistributionnormalβStartCenterEndSpace betweenSpace aroundSpace evenlyβΎGapβ+AlignstartβAlign leftAlign centerAlign rightβΎLayout controls are available for flex or grid containers.CancelSave"
320 | await expect(frame.locator(`${selector}[data-od-edit-selected="true"]`)).toHaveCount(1, { timeout: 2_000 });
321 | }).toPass({ timeout: 30_000 });
> 322 | await expect(page.locator('.manual-edit-modal')).toContainText(section);
| ^
323 | }
324 |
325 | test('[P0] @critical preview toolbar keeps share, download, comment, and zoom actions reachable', async ({ page }) => {
at selectPreviewElementThroughBridge (/home/runner/work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:322:52)
at /home/runner/work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:91:3
|
|
[chromium] βΊ ui/entry-chrome-flows.test.ts:2147:1 βΊ [P0] @critical home composer routes free-form prompts through the design router by default:
e2e/ui/entry-chrome-flows.test.ts#L2150
2) [chromium] βΊ ui/entry-chrome-flows.test.ts:2147:1 βΊ [P0] @critical home composer routes free-form prompts through the design router by default
Error: expect(locator).toHaveAttribute(expected) failed
Locator: getByTestId('composer-mode-trigger')
Expected: "Choose a mode"
Received: "Mode: Design"
Timeout: 10000ms
Call log:
- Expect "toHaveAttribute" with timeout 10000ms
- waiting for getByTestId('composer-mode-trigger')
19 Γ locator resolved to <button type="button" title="Design" aria-haspopup="menu" aria-expanded="false" aria-label="Mode: Design" data-testid="composer-mode-trigger" class="composer-mode__trigger is-selected">β¦</button>
- unexpected value "Mode: Design"
2148 | await gotoEntryHome(page);
2149 |
> 2150 | await expect(page.getByTestId('composer-mode-trigger')).toHaveAttribute('aria-label', 'Choose a mode');
| ^
2151 |
2152 | const input = page.getByTestId('home-hero-input');
2153 | const prompt =
at /home/runner/work/open-design/open-design/e2e/ui/entry-chrome-flows.test.ts:2150:59
|
|
[chromium] βΊ ui/app-design-files.test.ts:84:3 βΊ [P0] @critical design-files-tab-persistence: Open file tabs survive refresh with the correct active tab:
e2e/ui/app-design-files.test.ts#L919
3) [chromium] βΊ ui/app-design-files.test.ts:84:3 βΊ [P0] @critical design-files-tab-persistence: Open file tabs survive refresh with the correct active tab
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toBeVisible() failed
Locator: getByRole('tab', { name: /second-tab\.png/i })
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for getByRole('tab', { name: /second-tab\.png/i })
917 | const secondTab = page.getByRole('tab', { name: /second-tab\.png/i });
918 | await expect(firstTab).toBeVisible();
> 919 | await expect(secondTab).toBeVisible();
| ^
920 |
921 | await firstTab.click();
922 | await expect(firstTab).toHaveAttribute('aria-selected', 'true');
at runDesignFilesTabPersistenceFlow (/home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:919:27)
at /home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:100:7
|
|
[chromium] βΊ ui/amr-onboarding.test.ts:38:1 βΊ [P0] @critical onboarding lets AMR Cloud sign in and complete setup after the login poll succeeds:
e2e/ui/amr-onboarding.test.ts#L1123
1) [chromium] βΊ ui/amr-onboarding.test.ts:38: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 })
1121 | await expect(page).not.toHaveURL(/\/onboarding$/);
1122 | await dismissPrivacyDialog(page);
> 1123 | await expect(page.getByRole('heading', { name: /What will you design with your agent today/i })).toBeVisible();
| ^
1124 | }
1125 |
1126 | async function expectFinalDesignSystemStep(page: Page) {
at expectOnboardingFinished (/home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:1123:100)
at /home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:65:3
|
|
[chromium] βΊ ui/app-design-files.test.ts:84:3 βΊ [P0] @critical design-files-tab-persistence: Open file tabs survive refresh with the correct active tab:
e2e/ui/app-design-files.test.ts#L0
3) [chromium] βΊ ui/app-design-files.test.ts:84:3 βΊ [P0] @critical design-files-tab-persistence: Open file tabs survive refresh with the correct active tab
Error: Command failed: pnpm tools-dev start web --namespace playwright-5269-w4 --tools-dev-root /home/runner/work/open-design/open-design/.tmp/e2e/playwright-5269-w4/scratch/tools-dev --daemon-port 35611 --web-port 41757 --json
web did not expose status in time
web log tail (/home/runner/work/open-design/open-design/.tmp/e2e/playwright-5269-w4/scratch/tools-dev/playwright-5269-w4/logs/web/latest.log):
[tools-dev] launching web at 2026-07-29T14:10:12.763Z
[tools-dev] proxying web API requests to daemon port 35611
Attention: Next.js now collects completely anonymous telemetry regarding usage.
This information is used to shape Next.js' roadmap and prioritize features.
You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
https://nextjs.org/telemetry
|
|
[chromium] βΊ ui/amr-onboarding.test.ts:38:1 βΊ [P0] @critical onboarding lets AMR Cloud sign in and complete setup after the login poll succeeds:
e2e/ui/amr-onboarding.test.ts#L1123
1) [chromium] βΊ ui/amr-onboarding.test.ts:38: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 })
1121 | await expect(page).not.toHaveURL(/\/onboarding$/);
1122 | await dismissPrivacyDialog(page);
> 1123 | await expect(page.getByRole('heading', { name: /What will you design with your agent today/i })).toBeVisible();
| ^
1124 | }
1125 |
1126 | async function expectFinalDesignSystemStep(page: Page) {
at expectOnboardingFinished (/home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:1123:100)
at /home/runner/work/open-design/open-design/e2e/ui/amr-onboarding.test.ts:65:3
|
|
[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#L495
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: /trash-me\.png/i })
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for getByRole('tab', { name: /trash-me\.png/i })
493 | });
494 |
> 495 | await expect(page.getByRole('tab', { name: /trash-me\.png/i })).toBeVisible();
| ^
496 | await openAllProjectFiles(page);
497 |
498 | const fileRow = designFileRow(page, 'trash-me.png');
at runDesignFilesDeleteFlow (/home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:495:67)
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
|
|
Validate workspace
Process completed with exit code 1.
|
|
ci
Canceling since a higher priority waiting request for ci-6231 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-IlopZC/gh-stub.mjs api --paginate repos/nexu-io/open-design/compare/1111111111111111111111111111111111111111...2222222222222222222222222222222222222222 --jq (.files // [])[] | .filename
|
|
π Playwright Run Summary
3 skipped
17 passed (3.1m)
|
|
π Playwright Run Summary
18 passed (4.2m)
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
handoff-report-visual-pr
Expired
|
437 Bytes |
sha256:f577f0d78b6d48b9f1e8c0acdc5526ed581d169a2f2ff82d73a0edcbd63f495f
|
|
|
ui-p0-ci-30458745627-entry-settings
Expired
|
25.5 MB |
sha256:9023bf59e6eba7f7b454d62a228ef2f11454edcc9e30e0048b5ecdc8696aa5f7
|
|
|
ui-p0-ci-30458745627-project-runtime
Expired
|
25.1 MB |
sha256:00fcae2374c2d0f1aaefb04889f9570aae240fb258398e080c07644d42f53367
|
|
|
ui-p0-ci-30458745627-project-workspace
Expired
|
19.3 MB |
sha256:e71d7eebcde5c1a8eadfa8b6878ab6c77d4194a7caa40d00356976d4668294ae
|
|
|
visual-pr-capture-6231-30458745627-entry-navigation
Expired
|
4.34 MB |
sha256:67fdbb2abd67445db7b95171cc7f2c11b31dced3c7c517ec2d94e765ec218603
|
|
|
visual-pr-capture-6231-30458745627-settings-workspace
Expired
|
3.13 MB |
sha256:07f5390adb1e279746988fe184e05b6f41f507c722cddc243d48d57163f7c457
|
|