Team collaboration (3/3): web β team workspace surfaces #14597
ci.yml
on: pull_request
Resolve runner profiles
11s
Matrix: playwright_critical
Matrix: playwright_visual
Matrix: ui_p0
Validate Nix flake
Preflight
3m 9s
Workspace unit tests
1m 21s
Windows tools-pack payload tests
Web workspace tests
3m 28s
E2E Vitest
2m 31s
UI P0 smoke
1m 49s
Docker image build
Runtime summary
6s
Annotations
24 errors and 3 notices
|
UI P0 (workspace-restoration)
Process completed with exit code 1.
|
|
[chromium] βΊ ui/app-restoration.test.ts:170:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab:
e2e/ui/app-restoration.test.ts#L4026
1) [chromium] βΊ ui/app-restoration.test.ts:170:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: locator.click: Test timeout of 90000ms exceeded.
Call log:
- waiting for getByTestId('entry-nav-projects')
4024 | if (!(await page.locator('.tab-panel-toolbar').isVisible().catch(() => false))) {
4025 | await ensureRailOpen(page);
> 4026 | await page.getByTestId('entry-nav-projects').click();
| ^
4027 | }
4028 | await expect(page.locator('.tab-panel-toolbar')).toBeVisible();
4029 | }
at expectProjectsView (/home/runner/_work/open-design/open-design/e2e/ui/app-restoration.test.ts:4026:50)
at /home/runner/_work/open-design/open-design/e2e/ui/app-restoration.test.ts:229:3
|
|
[chromium] βΊ ui/app-restoration.test.ts:170:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab:
e2e/ui/app-restoration.test.ts#L0
1) [chromium] βΊ ui/app-restoration.test.ts:170:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Test timeout of 90000ms exceeded.
|
|
[chromium] βΊ ui/app-restoration.test.ts:170:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab:
e2e/ui/app-restoration.test.ts#L4026
1) [chromium] βΊ ui/app-restoration.test.ts:170:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab
Error: locator.click: Test timeout of 90000ms exceeded.
Call log:
- waiting for getByTestId('entry-nav-projects')
4024 | if (!(await page.locator('.tab-panel-toolbar').isVisible().catch(() => false))) {
4025 | await ensureRailOpen(page);
> 4026 | await page.getByTestId('entry-nav-projects').click();
| ^
4027 | }
4028 | await expect(page.locator('.tab-panel-toolbar')).toBeVisible();
4029 | }
at expectProjectsView (/home/runner/_work/open-design/open-design/e2e/ui/app-restoration.test.ts:4026:50)
at /home/runner/_work/open-design/open-design/e2e/ui/app-restoration.test.ts:229:3
|
|
[chromium] βΊ ui/app-restoration.test.ts:170:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab:
e2e/ui/app-restoration.test.ts#L0
1) [chromium] βΊ ui/app-restoration.test.ts:170:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab
Test timeout of 90000ms exceeded.
|
|
Playwright visual (entry-navigation)
Process completed with exit code 1.
|
|
ui/visual-navigation.test.ts:117:1 βΊ [P2] captures the integrations MCP surface:
e2e/ui/visual-navigation.test.ts#L122
5) ui/visual-navigation.test.ts:117:1 βΊ [P2] captures the integrations MCP surface βββββββββββββββ
Error: locator.click: Test timeout of 60000ms exceeded.
Call log:
- waiting for getByTestId('entry-nav-integrations')
120 |
121 | await ensureRailOpen(page);
> 122 | await page.getByTestId('entry-nav-integrations').click();
| ^
123 | await page.getByTestId('integrations-tab-mcp').click();
124 | await expect(page.getByTestId('integrations-tab-mcp')).toHaveAttribute('aria-selected', 'true');
125 | await expect(page.getByText(/MCP/i).first()).toBeVisible();
at /home/runner/_work/open-design/open-design/e2e/ui/visual-navigation.test.ts:122:52
|
|
ui/visual-navigation.test.ts:117:1 βΊ [P2] captures the integrations MCP surface:
e2e/ui/visual-navigation.test.ts#L0
5) ui/visual-navigation.test.ts:117:1 βΊ [P2] captures the integrations MCP surface βββββββββββββββ
Test timeout of 60000ms exceeded.
|
|
ui/visual-navigation.test.ts:103:1 βΊ [P2] captures the integrations use everywhere surface:
e2e/ui/visual-navigation.test.ts#L108
4) ui/visual-navigation.test.ts:103:1 βΊ [P2] captures the integrations use everywhere surface ββββ
Error: locator.click: Test timeout of 60000ms exceeded.
Call log:
- waiting for getByTestId('entry-nav-integrations')
106 |
107 | await ensureRailOpen(page);
> 108 | await page.getByTestId('entry-nav-integrations').click();
| ^
109 | await page.getByTestId('integrations-tab-use-everywhere').click();
110 | await expect(page.getByTestId('integrations-tab-use-everywhere')).toHaveAttribute('aria-selected', 'true');
111 | await expect(page.getByText('CLI, HTTP, MCP').first()).toBeVisible();
at /home/runner/_work/open-design/open-design/e2e/ui/visual-navigation.test.ts:108:52
|
|
ui/visual-navigation.test.ts:103:1 βΊ [P2] captures the integrations use everywhere surface:
e2e/ui/visual-navigation.test.ts#L0
4) ui/visual-navigation.test.ts:103:1 βΊ [P2] captures the integrations use everywhere surface ββββ
Test timeout of 60000ms exceeded.
|
|
ui/visual-navigation.test.ts:89:1 βΊ [P2] captures the integrations page surface:
e2e/ui/visual-navigation.test.ts#L94
3) ui/visual-navigation.test.ts:89:1 βΊ [P2] captures the integrations page surface βββββββββββββββ
Error: locator.click: Test timeout of 60000ms exceeded.
Call log:
- waiting for getByTestId('entry-nav-integrations')
92 |
93 | await ensureRailOpen(page);
> 94 | await page.getByTestId('entry-nav-integrations').click();
| ^
95 | await expect(page).toHaveURL(/\/integrations$/);
96 | await expect(page.getByRole('heading', { name: 'Integrations' })).toBeVisible();
97 | await expect(page.getByTestId('integrations-tab-connectors')).toBeVisible();
at /home/runner/_work/open-design/open-design/e2e/ui/visual-navigation.test.ts:94:52
|
|
ui/visual-navigation.test.ts:89:1 βΊ [P2] captures the integrations page surface:
e2e/ui/visual-navigation.test.ts#L0
3) ui/visual-navigation.test.ts:89:1 βΊ [P2] captures the integrations page surface βββββββββββββββ
Test timeout of 60000ms exceeded.
|
|
ui/visual-navigation.test.ts:25:1 βΊ [P2] captures the projects kanban surface:
e2e/ui/visual-navigation.test.ts#L30
2) ui/visual-navigation.test.ts:25:1 βΊ [P2] captures the projects kanban surface βββββββββββββββββ
Error: locator.click: Test timeout of 60000ms exceeded.
Call log:
- waiting for getByTestId('entry-nav-projects')
28 |
29 | await ensureRailOpen(page);
> 30 | await page.getByTestId('entry-nav-projects').click();
| ^
31 | const projects = page.getByTestId('entry-view-projects');
32 | await projects.getByTestId('designs-view-kanban').click();
33 | await expect(projects.getByTestId('designs-view-kanban')).toHaveAttribute('aria-pressed', 'true');
at /home/runner/_work/open-design/open-design/e2e/ui/visual-navigation.test.ts:30:48
|
|
ui/visual-navigation.test.ts:25:1 βΊ [P2] captures the projects kanban surface:
e2e/ui/visual-navigation.test.ts#L0
2) ui/visual-navigation.test.ts:25:1 βΊ [P2] captures the projects kanban surface βββββββββββββββββ
Test timeout of 60000ms exceeded.
|
|
ui/visual-navigation.test.ts:10:1 βΊ [P2] captures the projects page surface:
e2e/ui/visual-navigation.test.ts#L15
1) ui/visual-navigation.test.ts:10:1 βΊ [P2] captures the projects page surface βββββββββββββββββββ
Error: locator.click: Test timeout of 60000ms exceeded.
Call log:
- waiting for getByTestId('entry-nav-projects')
13 |
14 | await ensureRailOpen(page);
> 15 | await page.getByTestId('entry-nav-projects').click();
| ^
16 | await expect(page).toHaveURL(/\/projects$/);
17 | const projects = page.getByTestId('entry-view-projects');
18 | await expect(projects.getByRole('heading', { name: 'Projects' })).toBeVisible();
at /home/runner/_work/open-design/open-design/e2e/ui/visual-navigation.test.ts:15:48
|
|
ui/visual-navigation.test.ts:10:1 βΊ [P2] captures the projects page surface:
e2e/ui/visual-navigation.test.ts#L0
1) ui/visual-navigation.test.ts:10:1 βΊ [P2] captures the projects page surface βββββββββββββββββββ
Test timeout of 60000ms exceeded.
|
|
UI P0 (entry-settings)
Process completed with exit code 1.
|
|
[chromium] βΊ ui/entry-configuration-flows.test.ts:229:1 βΊ [P0] saving a Composio key from Integrations unlocks the connectors gate immediately:
e2e/ui/entry-configuration-flows.test.ts#L374
2) [chromium] βΊ ui/entry-configuration-flows.test.ts:229:1 βΊ [P0] saving a Composio key from Integrations unlocks the connectors gate immediately
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: locator.click: Test timeout of 120000ms exceeded.
Call log:
- waiting for getByTestId('entry-nav-integrations')
372 | async function openIntegrationsConnectors(page: Page): Promise<Locator> {
373 | await ensureRailOpen(page);
> 374 | await page.getByTestId('entry-nav-integrations').click();
| ^
375 | await expect(page).toHaveURL(/\/integrations$/);
376 | await expect(page.getByRole('heading', { name: 'Integrations' })).toBeVisible();
377 | await page.getByTestId('integrations-tab-connectors').click();
at openIntegrationsConnectors (/home/runner/_work/open-design/open-design/e2e/ui/entry-configuration-flows.test.ts:374:52)
at /home/runner/_work/open-design/open-design/e2e/ui/entry-configuration-flows.test.ts:258:26
|
|
[chromium] βΊ ui/entry-configuration-flows.test.ts:229:1 βΊ [P0] saving a Composio key from Integrations unlocks the connectors gate immediately:
e2e/ui/entry-configuration-flows.test.ts#L0
2) [chromium] βΊ ui/entry-configuration-flows.test.ts:229:1 βΊ [P0] saving a Composio key from Integrations unlocks the connectors gate immediately
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Test timeout of 120000ms exceeded.
|
|
[chromium] βΊ ui/entry-configuration-flows.test.ts:229:1 βΊ [P0] saving a Composio key from Integrations unlocks the connectors gate immediately:
e2e/ui/entry-configuration-flows.test.ts#L374
2) [chromium] βΊ ui/entry-configuration-flows.test.ts:229:1 βΊ [P0] saving a Composio key from Integrations unlocks the connectors gate immediately
Error: locator.click: Test timeout of 120000ms exceeded.
Call log:
- waiting for getByTestId('entry-nav-integrations')
372 | async function openIntegrationsConnectors(page: Page): Promise<Locator> {
373 | await ensureRailOpen(page);
> 374 | await page.getByTestId('entry-nav-integrations').click();
| ^
375 | await expect(page).toHaveURL(/\/integrations$/);
376 | await expect(page.getByRole('heading', { name: 'Integrations' })).toBeVisible();
377 | await page.getByTestId('integrations-tab-connectors').click();
at openIntegrationsConnectors (/home/runner/_work/open-design/open-design/e2e/ui/entry-configuration-flows.test.ts:374:52)
at /home/runner/_work/open-design/open-design/e2e/ui/entry-configuration-flows.test.ts:258:26
|
|
[chromium] βΊ ui/entry-configuration-flows.test.ts:229:1 βΊ [P0] saving a Composio key from Integrations unlocks the connectors gate immediately:
e2e/ui/entry-configuration-flows.test.ts#L0
2) [chromium] βΊ ui/entry-configuration-flows.test.ts:229:1 βΊ [P0] saving a Composio key from Integrations unlocks the connectors gate immediately
Test timeout of 120000ms exceeded.
|
|
[chromium] βΊ ui/entry-chrome-flows.test.ts:217:1 βΊ [P0] @critical recent projects strip opens a project card and view all routes to the projects index:
e2e/ui/entry-chrome-flows.test.ts#L229
1) [chromium] βΊ ui/entry-chrome-flows.test.ts:217:1 βΊ [P0] @critical recent projects strip opens a project card and view all routes to the projects index
Retry #1 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: expect(locator).toHaveAttribute(expected) failed
Locator: getByTestId('entry-nav-projects')
Expected: "page"
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toHaveAttribute" with timeout 10000ms
- waiting for getByTestId('entry-nav-projects')
227 | await page.getByTestId('recent-projects-view-all').click();
228 | await expect(page).toHaveURL(/\/projects$/);
> 229 | await expect(page.getByTestId('entry-nav-projects')).toHaveAttribute('aria-current', 'page');
| ^
230 | });
231 |
232 | test('[P1] design systems page is reachable from entry nav and supports search, preview, and default selection', async ({ page }) => {
at /home/runner/_work/open-design/open-design/e2e/ui/entry-chrome-flows.test.ts:229:56
|
|
[chromium] βΊ ui/entry-chrome-flows.test.ts:217:1 βΊ [P0] @critical recent projects strip opens a project card and view all routes to the projects index:
e2e/ui/entry-chrome-flows.test.ts#L229
1) [chromium] βΊ ui/entry-chrome-flows.test.ts:217:1 βΊ [P0] @critical recent projects strip opens a project card and view all routes to the projects index
Error: expect(locator).toHaveAttribute(expected) failed
Locator: getByTestId('entry-nav-projects')
Expected: "page"
Timeout: 10000ms
Error: element(s) not found
Call log:
- Expect "toHaveAttribute" with timeout 10000ms
- waiting for getByTestId('entry-nav-projects')
227 | await page.getByTestId('recent-projects-view-all').click();
228 | await expect(page).toHaveURL(/\/projects$/);
> 229 | await expect(page.getByTestId('entry-nav-projects')).toHaveAttribute('aria-current', 'page');
| ^
230 | });
231 |
232 | test('[P1] design systems page is reachable from entry nav and supports search, preview, and default selection', async ({ page }) => {
at /home/runner/_work/open-design/open-design/e2e/ui/entry-chrome-flows.test.ts:229:56
|
|
Validate workspace
Process completed with exit code 1.
|
|
π Playwright Run Summary
1 failed
[chromium] βΊ ui/app-restoration.test.ts:170:1 βΊ [P0] switching between projects restores each project workspace to its last active file tab
25 passed (6.1m)
|
|
π Playwright Run Summary
6 failed
ui/visual-navigation.test.ts:10:1 βΊ [P2] captures the projects page surface ββββββββββββββββββββ
ui/visual-navigation.test.ts:25:1 βΊ [P2] captures the projects kanban surface ββββββββββββββββββ
ui/visual-navigation.test.ts:89:1 βΊ [P2] captures the integrations page surface ββββββββββββββββ
ui/visual-navigation.test.ts:103:1 βΊ [P2] captures the integrations use everywhere surface βββββ
ui/visual-navigation.test.ts:117:1 βΊ [P2] captures the integrations MCP surface ββββββββββββββββ
ui/visual-navigation.test.ts:131:1 βΊ [P2] captures the tasks page surface ββββββββββββββββββββββ
14 passed (6.1m)
|
|
π Playwright Run Summary
2 failed
[chromium] βΊ ui/entry-chrome-flows.test.ts:217:1 βΊ [P0] @critical recent projects strip opens a project card and view all routes to the projects index
[chromium] βΊ ui/entry-configuration-flows.test.ts:229:1 βΊ [P0] saving a Composio key from Integrations unlocks the connectors gate immediately
59 passed (7.1m)
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
ui-p0-ci-28996803421-entry-settings
Expired
|
50.7 MB |
sha256:2a340d398c786a7b42d03f3ec9f4153a824d05da0638c327e013fb51f4d7a21f
|
|
|
ui-p0-ci-28996803421-workspace-restoration
Expired
|
21.8 MB |
sha256:c67951fbaebafe53b5ba2cdb21b1cd1c9bff498e737fcb0c00d3e9e25ef8dbe1
|
|
|
visual-pr-capture-5284-28996803421-entry-navigation
Expired
|
1.36 MB |
sha256:7fae6b53b5bc02c67b7617e872816298ef37859a6d166ec3fdcf4be45ec9dccf
|
|