feat(workspace-team): team workspaces, shared resources, workspace-scoped billing, and the #5517 redesign #16782
ci.yml
on: pull_request
Resolve runner profiles
13s
Matrix: playwright_critical
Matrix: playwright_visual
Matrix: ui_p0
Preflight
3m 37s
Workspace unit tests
1m 42s
Windows tools-pack payload tests
2m 25s
Web workspace tests
8m 31s
E2E Vitest
3m 28s
Runtime summary
4s
Annotations
45 errors, 3 warnings, and 3 notices
|
[chromium] βΊ ui/app-restoration.test.ts:1214:1 βΊ [P0] returning from a file deep-link to the project root keeps the chosen file tab active:
e2e/ui/app-restoration.test.ts#L1276
5) [chromium] βΊ ui/app-restoration.test.ts:1214:1 βΊ [P0] returning from a file deep-link to the project root keeps the chosen file tab active
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toBeVisible() failed
Locator: locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'conversation-root-file.png' }) }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'conversation-root-file.png' }) }).first()
1274 | });
1275 | const uploadedFileTab = tabBySuffix(page, 'conversation-root-file.png');
> 1276 | await expect(uploadedFileTab).toBeVisible();
| ^
1277 | const uploadedName = await uploadedFileTab.getAttribute('title');
1278 | expect(uploadedName).toBeTruthy();
1279 |
at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:1276:33
|
|
[chromium] βΊ ui/app-restoration.test.ts:1214:1 βΊ [P0] returning from a file deep-link to the project root keeps the chosen file tab active:
e2e/ui/app-restoration.test.ts#L1276
5) [chromium] βΊ ui/app-restoration.test.ts:1214:1 βΊ [P0] returning from a file deep-link to the project root keeps the chosen file tab active
Error: expect(locator).toBeVisible() failed
Locator: locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'conversation-root-file.png' }) }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'conversation-root-file.png' }) }).first()
1274 | });
1275 | const uploadedFileTab = tabBySuffix(page, 'conversation-root-file.png');
> 1276 | await expect(uploadedFileTab).toBeVisible();
| ^
1277 | const uploadedName = await uploadedFileTab.getAttribute('title');
1278 | expect(uploadedName).toBeTruthy();
1279 |
at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:1276:33
|
|
[chromium] βΊ ui/app-restoration.test.ts:1001:1 βΊ [P0] opening an uploaded file route keeps the older conversation present in history:
e2e/ui/app-restoration.test.ts#L1069
4) [chromium] βΊ ui/app-restoration.test.ts:1001:1 βΊ [P0] opening an uploaded file route keeps the older conversation present in history
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toBeVisible() failed
Locator: locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'conversation-surface-reference.png' }) }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'conversation-surface-reference.png' }) }).first()
1067 | });
1068 | const uploadedFileTab = tabBySuffix(page, 'conversation-surface-reference.png');
> 1069 | await expect(uploadedFileTab).toBeVisible();
| ^
1070 | const uploadedName = await uploadedFileTab.getAttribute('title');
1071 | expect(uploadedName).toBeTruthy();
1072 |
at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:1069:33
|
|
[chromium] βΊ ui/app-restoration.test.ts:1001:1 βΊ [P0] opening an uploaded file route keeps the older conversation present in history:
e2e/ui/app-restoration.test.ts#L1069
4) [chromium] βΊ ui/app-restoration.test.ts:1001:1 βΊ [P0] opening an uploaded file route keeps the older conversation present in history
Error: expect(locator).toBeVisible() failed
Locator: locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'conversation-surface-reference.png' }) }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'conversation-surface-reference.png' }) }).first()
1067 | });
1068 | const uploadedFileTab = tabBySuffix(page, 'conversation-surface-reference.png');
> 1069 | await expect(uploadedFileTab).toBeVisible();
| ^
1070 | const uploadedName = await uploadedFileTab.getAttribute('title');
1071 | expect(uploadedName).toBeTruthy();
1072 |
at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:1069:33
|
|
[chromium] βΊ ui/app-restoration.test.ts:833:1 βΊ [P0] returning from workspace surfaces keeps the older conversation reachable from history:
e2e/ui/app-restoration.test.ts#L900
3) [chromium] βΊ ui/app-restoration.test.ts:833:1 βΊ [P0] returning from workspace surfaces keeps the older conversation reachable from history
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toBeVisible() failed
Locator: locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'surface-restore.png' }) }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'surface-restore.png' }) }).first()
898 | ),
899 | });
> 900 | await expect(tabBySuffix(page, 'surface-restore.png')).toBeVisible();
| ^
901 |
902 | await page.getByTestId('conversation-history-trigger').click();
903 | const historyList = page.getByTestId('conversation-list');
at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:900:58
|
|
[chromium] βΊ ui/app-restoration.test.ts:833:1 βΊ [P0] returning from workspace surfaces keeps the older conversation reachable from history:
e2e/ui/app-restoration.test.ts#L900
3) [chromium] βΊ ui/app-restoration.test.ts:833:1 βΊ [P0] returning from workspace surfaces keeps the older conversation reachable from history
Error: expect(locator).toBeVisible() failed
Locator: locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'surface-restore.png' }) }).first()
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for locator('.ws-tab[role="tab"]').filter({ has: locator('.ws-tab-label').filter({ hasText: 'surface-restore.png' }) }).first()
898 | ),
899 | });
> 900 | await expect(tabBySuffix(page, 'surface-restore.png')).toBeVisible();
| ^
901 |
902 | await page.getByTestId('conversation-history-trigger').click();
903 | const historyList = page.getByTestId('conversation-list');
at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:900:58
|
|
[chromium] βΊ ui/app-restoration.test.ts:85: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#L3672
2) [chromium] βΊ ui/app-restoration.test.ts:85: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
3670 | );
3671 | }, { timeout: T.medium })
> 3672 | .toBe(true);
| ^
3673 | }
3674 |
3675 | async function expectProjectFilesToIncludeSuffixes(
at expectPersistedArtifactMessage (/home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:3672:6)
at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:130:9
|
|
[chromium] βΊ ui/app-restoration.test.ts:85: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#L175
2) [chromium] βΊ ui/app-restoration.test.ts:85:1 βΊ [P0] @critical workspace restores the last manually selected file tab after reload instead of jumping back to the generated artifact
Error: expect(locator).toBeVisible() failed
Locator: locator('.msg.assistant').filter({ hasText: 'workspace-artifact.html' }).first().getByRole('button', { name: 'workspace-artifact.html', exact: true })
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for locator('.msg.assistant').filter({ hasText: 'workspace-artifact.html' }).first().getByRole('button', { name: 'workspace-artifact.html', exact: true })
173 | exact: true,
174 | });
> 175 | await expect(artifactButton).toBeVisible();
| ^
176 | await artifactButton.click();
177 |
178 | await expect(restoredArtifactTab).toBeVisible();
at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:175:34
|
|
[chromium] βΊ ui/app-restoration.test.ts:189:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab:
e2e/ui/app-restoration.test.ts#L3052
1) [chromium] βΊ ui/app-restoration.test.ts:189: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()
3050 | // the row by test id β image cards render no filename text to match on.
3051 | const row = rowBySuffix(page, fileName);
> 3052 | await expect(row).toBeVisible();
| ^
3053 | await row.getByRole('button').first().click();
3054 | await expect(tab).toHaveAttribute('aria-selected', 'true');
3055 | }
at openDesignFile (/home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:3052:21)
at ensureFileTabOpen (/home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:3185:3)
at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:226:29
|
|
[chromium] βΊ ui/app-restoration.test.ts:189:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab:
e2e/ui/app-restoration.test.ts#L3052
1) [chromium] βΊ ui/app-restoration.test.ts:189: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()
3050 | // the row by test id β image cards render no filename text to match on.
3051 | const row = rowBySuffix(page, fileName);
> 3052 | await expect(row).toBeVisible();
| ^
3053 | await row.getByRole('button').first().click();
3054 | await expect(tab).toHaveAttribute('aria-selected', 'true');
3055 | }
at openDesignFile (/home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:3052:21)
at ensureFileTabOpen (/home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:3185:3)
at /home/runner/work/open-design/open-design/e2e/ui/app-restoration.test.ts:226:29
|
|
UI P0 (project-workspace)
Canceling since a higher priority waiting request for ci-6142 exists
|
|
[chromium] βΊ ui/app-manual-edit.test.ts:325:1 βΊ [P0] @critical preview toolbar keeps share:
e2e/ui/app-manual-edit.test.ts#L333
5) [chromium] βΊ ui/app-manual-edit.test.ts:325:1 βΊ [P0] @critical preview toolbar keeps share, download, comment, and zoom actions reachable
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toHaveCount(expected) failed
Locator: getByRole('tablist', { name: 'View mode' })
Expected: 0
Received: 1
Timeout: 10000ms
Call log:
- Expect "toHaveCount" with timeout 10000ms
- waiting for getByRole('tablist', { name: 'View mode' })
24 Γ locator resolved to 1 element
- unexpected value "1"
331 |
332 | await expect(page.getByTestId('artifact-preview-frame')).toBeVisible();
> 333 | await expect(page.getByRole('tablist', { name: 'View mode' })).toHaveCount(0);
| ^
334 |
335 | await page.getByRole('button', { name: /^Share$/ }).click();
336 | const shareMenu = page.locator('.share-menu-popover[role="menu"]');
at /home/runner/work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:333:66
|
|
[chromium] βΊ ui/app-manual-edit.test.ts:325:1 βΊ [P0] @critical preview toolbar keeps share:
e2e/ui/app-manual-edit.test.ts#L333
5) [chromium] βΊ ui/app-manual-edit.test.ts:325:1 βΊ [P0] @critical preview toolbar keeps share, download, comment, and zoom actions reachable
Error: expect(locator).toHaveCount(expected) failed
Locator: getByRole('tablist', { name: 'View mode' })
Expected: 0
Received: 1
Timeout: 10000ms
Call log:
- Expect "toHaveCount" with timeout 10000ms
- waiting for getByRole('tablist', { name: 'View mode' })
23 Γ locator resolved to 1 element
- unexpected value "1"
331 |
332 | await expect(page.getByTestId('artifact-preview-frame')).toBeVisible();
> 333 | await expect(page.getByRole('tablist', { name: 'View mode' })).toHaveCount(0);
| ^
334 |
335 | await page.getByRole('button', { name: /^Share$/ }).click();
336 | const shareMenu = page.locator('.share-menu-popover[role="menu"]');
at /home/runner/work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:333:66
|
|
[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/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/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#L909
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: /first-tab\.png/i })
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for getByRole('tab', { name: /first-tab\.png/i })
907 | buffer: pngBytes,
908 | });
> 909 | await expect(page.getByRole('tab', { name: /first-tab\.png/i })).toBeVisible();
| ^
910 |
911 | await page.getByTestId('design-files-upload-input').setInputFiles({
912 | name: 'second-tab.png',
at runDesignFilesTabPersistenceFlow (/home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:909:68)
at /home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:100:7
|
|
[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#L909
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: expect(locator).toBeVisible() failed
Locator: getByRole('tab', { name: /first-tab\.png/i })
Expected: visible
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 10000ms
- waiting for getByRole('tab', { name: /first-tab\.png/i })
907 | buffer: pngBytes,
908 | });
> 909 | await expect(page.getByRole('tab', { name: /first-tab\.png/i })).toBeVisible();
| ^
910 |
911 | await page.getByTestId('design-files-upload-input').setInputFiles({
912 | name: 'second-tab.png',
at runDesignFilesTabPersistenceFlow (/home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:909:68)
at /home/runner/work/open-design/open-design/e2e/ui/app-design-files.test.ts:100: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
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
|
|
UI P0 (entry-settings)
Canceling since a higher priority waiting request for ci-6142 exists
|
|
[chromium] βΊ ui/amr-onboarding.test.ts:299:1 βΊ [P0] @critical onboarding signed-in AMR path finishes setup with the AMR runtime:
e2e/ui/amr-onboarding.test.ts#L1123
5) [chromium] βΊ ui/amr-onboarding.test.ts:299:1 βΊ [P0] @critical onboarding signed-in AMR path finishes setup with the AMR runtime
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:314:3
|
|
[chromium] βΊ ui/amr-onboarding.test.ts:299:1 βΊ [P0] @critical onboarding signed-in AMR path finishes setup with the AMR runtime:
e2e/ui/amr-onboarding.test.ts#L1123
5) [chromium] βΊ ui/amr-onboarding.test.ts:299:1 βΊ [P0] @critical onboarding signed-in AMR path finishes setup with the AMR runtime
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:314:3
|
|
[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')
21 Γ 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
|
|
[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
|
|
[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/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/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')
16 Γ 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/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/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
|
|
UI P0 (project-runtime)
Canceling since a higher priority waiting request for ci-6142 exists
|
|
[chromium] βΊ ui/amr-run-failure-recovery.test.ts:335:1 βΊ [P0] @critical non-AMR model failures promote Open Design AMR and auto-retry after sign-in:
e2e/ui/amr-run-failure-recovery.test.ts#L446
5) [chromium] βΊ ui/amr-run-failure-recovery.test.ts:335:1 βΊ [P0] @critical non-AMR model failures promote Open Design AMR and auto-retry after sign-in
Error: expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
Call Log:
- Timeout 60000ms exceeded while waiting on the predicate
444 |
445 | await expect.poll(() => loginRequested, { timeout: T.medium }).toBe(true);
> 446 | await expect.poll(() => runRequestBodies.some((body) => body.agentId === 'amr'), { timeout: T.long }).toBe(true);
| ^
447 | await expect(page.getByText('AMR promotion retry recovered.').first()).toBeVisible({ timeout: T.long });
448 | });
449 |
at /home/runner/work/open-design/open-design/e2e/ui/amr-run-failure-recovery.test.ts:446:105
|
|
[chromium] βΊ ui/amr-run-failure-recovery.test.ts:236:1 βΊ [P0] @critical AMR model catalog invalid-key failures authorize and auto-recover:
e2e/ui/amr-run-failure-recovery.test.ts#L332
4) [chromium] βΊ ui/amr-run-failure-recovery.test.ts:236:1 βΊ [P0] @critical AMR model catalog invalid-key failures authorize and auto-recover
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toBeVisible() failed
Locator: getByText('AMR model catalog auth retry recovered.').first()
Expected: visible
Timeout: 60000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 60000ms
- waiting for getByText('AMR model catalog auth retry recovered.').first()
330 | await expect.poll(() => loginRequested, { timeout: T.medium }).toBe(true);
331 | await expect(settingsSurface(page)).toHaveCount(0);
> 332 | await expect(page.getByText('AMR model catalog auth retry recovered.').first()).toBeVisible({ timeout: T.long });
| ^
333 | });
334 |
335 | test('[P0] @critical non-AMR model failures promote Open Design AMR and auto-retry after sign-in', async ({ page }) => {
at /home/runner/work/open-design/open-design/e2e/ui/amr-run-failure-recovery.test.ts:332:83
|
|
[chromium] βΊ ui/amr-run-failure-recovery.test.ts:236:1 βΊ [P0] @critical AMR model catalog invalid-key failures authorize and auto-recover:
e2e/ui/amr-run-failure-recovery.test.ts#L332
4) [chromium] βΊ ui/amr-run-failure-recovery.test.ts:236:1 βΊ [P0] @critical AMR model catalog invalid-key failures authorize and auto-recover
Error: expect(locator).toBeVisible() failed
Locator: getByText('AMR model catalog auth retry recovered.').first()
Expected: visible
Timeout: 60000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 60000ms
- waiting for getByText('AMR model catalog auth retry recovered.').first()
330 | await expect.poll(() => loginRequested, { timeout: T.medium }).toBe(true);
331 | await expect(settingsSurface(page)).toHaveCount(0);
> 332 | await expect(page.getByText('AMR model catalog auth retry recovered.').first()).toBeVisible({ timeout: T.long });
| ^
333 | });
334 |
335 | test('[P0] @critical non-AMR model failures promote Open Design AMR and auto-retry after sign-in', async ({ page }) => {
at /home/runner/work/open-design/open-design/e2e/ui/amr-run-failure-recovery.test.ts:332:83
|
|
[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: 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
|
|
Validate workspace
Process completed with exit code 1.
|
|
ci
Canceling since a higher priority waiting request for ci-6142 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-x05D36/gh-stub.mjs api --paginate repos/nexu-io/open-design/compare/1111111111111111111111111111111111111111...2222222222222222222222222222222222222222 --jq (.files // [])[] | .filename
|
|
π Playwright Run Summary
3 skipped
17 passed (3.2m)
|
|
π Playwright Run Summary
18 passed (4.2m)
|
|
π Playwright Run Summary
7 failed
[chromium] βΊ ui/app-restoration.test.ts:85:1 βΊ [P0] @critical workspace restores the last manually selected file tab after reload instead of jumping back to the generated artifact
[chromium] βΊ ui/app-restoration.test.ts:189:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab
[chromium] βΊ ui/app-restoration.test.ts:833:1 βΊ [P0] returning from workspace surfaces keeps the older conversation reachable from history
[chromium] βΊ ui/app-restoration.test.ts:1001:1 βΊ [P0] opening an uploaded file route keeps the older conversation present in history
[chromium] βΊ ui/app-restoration.test.ts:1214:1 βΊ [P0] returning from a file deep-link to the project root keeps the chosen file tab active
[chromium] βΊ ui/app-restoration.test.ts:1389:1 βΊ [P0] reloading a project keeps the Design Files entry reachable when it was the last active workspace surface
[chromium] βΊ ui/app-restoration.test.ts:1419:1 βΊ [P0] @critical daemon error details persist between failed sends
1 flaky
[chromium] βΊ ui/app-restoration.test.ts:1620:1 βΊ [P0] sending another prompt while a run is active queues it and starts it after the first run finishes
17 passed (18.8m)
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
handoff-report-visual-pr
Expired
|
437 Bytes |
sha256:1489cd00a2391156124529a457c8bd391035dd1eb2111b6620d97154951b519e
|
|
|
ui-p0-ci-30431092208-entry-settings
Expired
|
91.7 MB |
sha256:db8d40ac52ecfd00e4adc2ec0125834bd5755914cd39273836ec8bf39fe6f768
|
|
|
ui-p0-ci-30431092208-project-runtime
Expired
|
50.5 MB |
sha256:f7aa2605438ea77f4d44eacfa177edbf8c33acdd5c148de59a84116203aa40bf
|
|
|
ui-p0-ci-30431092208-project-workspace
Expired
|
37.9 MB |
sha256:172c403d615f7634f7313fce1d019422598a169e987f6c577d07980178e2f700
|
|
|
ui-p0-ci-30431092208-workspace-restoration
Expired
|
89.3 MB |
sha256:cc63fcc6d90cab7e0489cac8f27efad3d7f18d60d6cc5e56a891a3c280266229
|
|
|
visual-pr-capture-6142-30431092208-entry-navigation
Expired
|
4.36 MB |
sha256:76a44c552100f081410520bf1b183ce89d0afa7deb12f581846b4e76e6b1c69f
|
|
|
visual-pr-capture-6142-30431092208-settings-workspace
Expired
|
3.15 MB |
sha256:93adb0ff3970c883a81a38f80d25a2226bbdd287cd40f7a44787281a2cbf3e62
|
|