Skip to content

fix(web): remove message center entry points #17111

fix(web): remove message center entry points

fix(web): remove message center entry points #17111

Triggered via pull request August 2, 2026 20:41
Status Failure
Total duration 14m 36s
Artifacts 8

ci.yml

on: pull_request
Resolve runner profiles
13s
Resolve runner profiles
Detect validation scopes
16s
Detect validation scopes
Static gate
16s
Static gate
Matrix: playwright_critical
Matrix: playwright_visual
Matrix: ui_p0
Preflight
3m 51s
Preflight
Workspace unit tests
1m 8s
Workspace unit tests
Windows tools-pack payload tests
Windows tools-pack payload tests
Web workspace tests
8m 55s
Web workspace tests
E2E Vitest
5m 57s
E2E Vitest
Validate workspace
3s
Validate workspace
Runtime summary
5s
Runtime summary
Fit to window
Zoom out
Zoom in

Annotations

13 errors, 3 warnings, and 7 notices
Web workspace tests
Process completed with exit code 1.
tests/components/App.project-create-race.test.tsx > App project creation routing > does not open a project bound to another workspace through a non-hint path: apps/web/tests/components/App.project-create-race.test.tsx#L1856
AssertionError: expected "vi.fn()" to be called with arguments: [ 'project-bound-a', …(1) ] Received: 1st vi.fn() call: @@ -24,8 +24,9 @@ "seatLimit": 5, "usedSeats": 1, }, "workspaceId": "ws-b", "workspaceMemberId": "member-ws-b", + "workspaceName": "ws-b", "workspaceType": "team", }, ] Number of calls: 1 Ignored nodes: comments, script, style <html data-od-app-mounted="1" data-theme="light" style="--accent: #353535; --accent-strong: color-mix(in srgb, #353535 82%, var(--text-strong)); --accent-soft: color-mix(in srgb, #353535 12%, var(--bg-subtle)); --accent-tint: color-mix(in srgb, #353535 6%, var(--bg-panel)); --accent-hover: color-mix(in srgb, #353535 86%, var(--text-strong));" > <head /> <body> <div> <div data-reduced-motion="user" data-testid="motion-config" > <div class="workspace-shell workspace-shell--web" data-client-type="web" > <span data-testid="workspace-tabs-active-project-workspace" > unresolved </span> <div class="workspace-shell__body" > <main> <div data-testid="entry-home-surface" /> <div data-testid="amr-login-status" > null </div> <button type="button" > Create project </button> <button type="button" > Create prompted project </button> <button type="button" > Create plugin share project </button> <button type="button" > Create project with working dir </button> <button type="button" > Create project with context dirs </button> <button type="button" > Host import folder </button> <button type="button" > Refresh agents </button> <button type="button" > Open settings from home </button> <button type="button" > Open missing project </button> <button type="button" > Open catalog project </button> <button type="button" > Open updated catalog project </button> <button type="button" > Open own unbound project </button> <button type="button" > Open workspace A project </button> <button type="button" > Open stale own workspace A project </button> <div data-testid="entry-agent-list" /> <div data-testid="entry-project-project-bound-a" > <span> Workspace A local </span> <button type="button" > Open Workspace A local </button> <button type="button" > Delete Workspace A local </button> </div> </main> </div> </div> <div aria-live="assertive" class="od-toast tone-error placement-bottom" role="alert" > <div
tests/components/App.project-create-race.test.tsx > App project creation routing > uses a title hint only after loading the workspace-bound local row: apps/web/tests/components/App.project-create-race.test.tsx#L1683
AssertionError: expected "vi.fn()" to be called with arguments: [ 'project-shared', …(1) ] Received: 1st vi.fn() call: @@ -24,8 +24,9 @@ "seatLimit": 5, "usedSeats": 1, }, "workspaceId": "ws-1", "workspaceMemberId": "wm-1", + "workspaceName": "ws-1", "workspaceType": "team", }, ] Number of calls: 1 ❯ tests/components/App.project-create-race.test.tsx:1683:30
tests/components/App.project-create-race.test.tsx > App project creation routing > switches to the picked working dir before uploading staged Home attachments: apps/web/tests/components/App.project-create-race.test.tsx#L1552
AssertionError: expected "vi.fn()" to be called with arguments: [ 'project-new', …(3) ] Received: 1st vi.fn() call: @@ -26,8 +26,9 @@ "seatLimit": 5, "usedSeats": 1, }, "workspaceId": "ws-create", "workspaceMemberId": "wm-create", + "workspaceName": "ws-create", "workspaceType": "team", }, ] Number of calls: 1 ❯ tests/components/App.project-create-race.test.tsx:1552:44
tests/useWorkspaceContext.sign-in-refresh.test.tsx > useWorkspaceContext sign-in refresh > keeps showing a resolved workspace while an identity refresh re-reads: apps/web/tests/useWorkspaceContext.sign-in-refresh.test.tsx#L141
AssertionError: expected { workspaceType: 'team', …(12) } to deeply equal { workspaceType: 'team', …(11) } Ignored nodes: comments, script, style <html> <head /> <body> <div /> </body> </html> - Expected + Received @@ -22,7 +22,8 @@ "usedSeats": 2, }, "teamName": "Acme", "workspaceId": "ws-1", "workspaceMemberId": "member-1", + "workspaceName": "Acme", "workspaceType": "team", } ❯ tests/useWorkspaceContext.sign-in-refresh.test.tsx:141:56 ❯ runWithExpensiveErrorDiagnosticsDisabled ../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/dist/config.js:47:12 ❯ checkCallback ../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/dist/wait-for.js:124:77 ❯ Timeout.checkRealTimersCallback ../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/dist/wait-for.js:118:16
tests/useWorkspaceContext.sign-in-refresh.test.tsx > useWorkspaceContext sign-in refresh > stops reporting signed-out while an explicit post-sign-in re-read is in flight: apps/web/tests/useWorkspaceContext.sign-in-refresh.test.tsx#L111
AssertionError: expected { workspaceType: 'team', …(12) } to deeply equal { workspaceType: 'team', …(11) } Ignored nodes: comments, script, style <html> <head /> <body> <div /> </body> </html> - Expected + Received @@ -22,7 +22,8 @@ "usedSeats": 2, }, "teamName": "Acme", "workspaceId": "ws-1", "workspaceMemberId": "member-1", + "workspaceName": "Acme", "workspaceType": "team", } ❯ tests/useWorkspaceContext.sign-in-refresh.test.tsx:111:56 ❯ runWithExpensiveErrorDiagnosticsDisabled ../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/dist/config.js:47:12 ❯ checkCallback ../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/dist/wait-for.js:124:77 ❯ Timeout.checkRealTimersCallback ../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/dist/wait-for.js:118:16
tests/use-project-collab.context-seed.test.tsx > useProjectCollab workspace-context seeding > marks a catalog-named teammate project as shared non-owner before status names them: apps/web/tests/use-project-collab.context-seed.test.tsx#L281
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ tests/use-project-collab.context-seed.test.tsx:281:53
tests/use-project-collab.context-seed.test.tsx > useProjectCollab workspace-context seeding > treats catalog-named owners as effective owners while status omits ownerMemberId: apps/web/tests/use-project-collab.context-seed.test.tsx#L235
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ tests/use-project-collab.context-seed.test.tsx:235:53
tests/use-project-collab.context-seed.test.tsx > useProjectCollab workspace-context seeding > does not fail closed for a shared project the viewer owns: apps/web/tests/use-project-collab.context-seed.test.tsx#L193
AssertionError: expected true to be false // Object.is equality - Expected + Received - false + true ❯ tests/use-project-collab.context-seed.test.tsx:193:47
tests/use-project-collab.context-seed.test.tsx > useProjectCollab workspace-context seeding > does not fail closed for a project the hub catalog does not list: apps/web/tests/use-project-collab.context-seed.test.tsx#L156
AssertionError: expected true to be false // Object.is equality Ignored nodes: comments, script, style <html> <head /> <body> <div /> <div /> <div /> </body> </html> - Expected + Received - false + true ❯ tests/use-project-collab.context-seed.test.tsx:156:49 ❯ runWithExpensiveErrorDiagnosticsDisabled ../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/dist/config.js:47:12 ❯ checkCallback ../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/dist/wait-for.js:124:77 ❯ Timeout.checkRealTimersCallback ../../node_modules/.pnpm/@testing-library+dom@10.4.1/node_modules/@testing-library/dom/dist/wait-for.js:118:16
[chromium] › ui/app-manual-edit.test.ts:211:1 › [P0] manual edit mode preserves a runtime-rendered mobile app page: e2e/ui/app-manual-edit.test.ts#L233
2) [chromium] › ui/app-manual-edit.test.ts:211:1 › [P0] manual edit mode preserves a runtime-rendered mobile app page Error: expect(locator).toBeVisible() failed Locator: locator('[data-testid="artifact-preview-frame"]:visible, [data-testid="artifact-preview-frame-url-load"]:visible, [data-testid="artifact-preview-frame-srcdoc"]:visible, [data-testid="live-artifact-preview-frame"]:visible').contentFrame().getByTestId('mobile-page-profile') Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for locator('[data-testid="artifact-preview-frame"]:visible, [data-testid="artifact-preview-frame-url-load"]:visible, [data-testid="artifact-preview-frame-srcdoc"]:visible, [data-testid="live-artifact-preview-frame"]:visible').contentFrame().getByTestId('mobile-page-profile') 231 | 232 | await expect(page.getByTestId('manual-edit-mode-toggle')).toHaveAttribute('aria-pressed', 'true'); > 233 | await expect(preview.getByTestId('mobile-page-profile')).toBeVisible(); | ^ 234 | await expect(preview.getByRole('heading', { name: 'Profile page' })).toBeVisible(); 235 | await expect(preview.getByRole('heading', { name: 'Today page' })).toHaveCount(0); 236 | await expect(preview.getByTestId('mobile-page-today')).toHaveCount(0); at /home/runner/work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:233:60
[chromium] › ui/app-manual-edit.test.ts:145:1 › [P0] manual edit mode preserves the current page in a multi-page mobile app: e2e/ui/app-manual-edit.test.ts#L163
1) [chromium] › ui/app-manual-edit.test.ts:145:1 › [P0] manual edit mode preserves the current page in a multi-page mobile app Error: expect(locator).toBeVisible() failed Locator: locator('[data-testid="artifact-preview-frame"]:visible, [data-testid="artifact-preview-frame-url-load"]:visible, [data-testid="artifact-preview-frame-srcdoc"]:visible, [data-testid="live-artifact-preview-frame"]:visible').contentFrame().getByTestId('mobile-page-profile') Expected: visible Received: hidden Timeout: 10000ms Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for locator('[data-testid="artifact-preview-frame"]:visible, [data-testid="artifact-preview-frame-url-load"]:visible, [data-testid="artifact-preview-frame-srcdoc"]:visible, [data-testid="live-artifact-preview-frame"]:visible').contentFrame().getByTestId('mobile-page-profile') 24 × locator resolved to <main hidden="" data-page="profile" data-od-id="mobile-page-profile" data-testid="mobile-page-profile">…</main> - unexpected value "hidden" 161 | 162 | await preview.getByRole('button', { name: 'Profile' }).click(); > 163 | await expect(preview.getByTestId('mobile-page-profile')).toBeVisible(); | ^ 164 | await expect(preview.getByTestId('mobile-page-home')).toBeHidden(); 165 | 166 | await page.getByTestId('manual-edit-mode-toggle').click(); at /home/runner/work/open-design/open-design/e2e/ui/app-manual-edit.test.ts:163:60
Validate workspace
Process completed with exit code 1.
Detect validation scopes
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
E2E Vitest
merge_group changed-file resolution failed; falling back to the full plan: Error: merge_group compare result reached GitHub's 300-file ceiling
E2E Vitest
merge_group changed-file resolution failed; falling back to the full plan: Error: Command failed: /opt/hostedtoolcache/node/24.18.0/x64/bin/node /tmp/scopes-test-2zTwnv/gh-stub.mjs api repos/nexu-io/open-design/compare/1111111111111111111111111111111111111111...2222222222222222222222222222222222222222
🎭 Playwright Run Summary
3 skipped 17 passed (3.1m)
🎭 Playwright Run Summary
18 passed (4.2m)
🎭 Playwright Run Summary
1 skipped 70 passed (7.1m)
🎭 Playwright Run Summary
4 passed (1.8m)
🎭 Playwright Run Summary
22 passed (4.9m)
🎭 Playwright Run Summary
29 passed (8.0m)
🎭 Playwright Run Summary
2 flaky [chromium] › ui/app-manual-edit.test.ts:145:1 › [P0] manual edit mode preserves the current page in a multi-page mobile app [chromium] › ui/app-manual-edit.test.ts:211:1 › [P0] manual edit mode preserves a runtime-rendered mobile app page 35 passed (11.8m)

Artifacts

Produced during runtime
Name Size Digest
handoff-report-visual-pr
438 Bytes
sha256:b78278d51e863aee6f9a374f47b0ff365a274c6ac178b9eb4ef5a0513d9e765d
ui-p0-ci-30766174758-entry-settings
323 KB
sha256:4bdac6298afa59c0949489734357243891842116a289aa393d3198c0c153682c
ui-p0-ci-30766174758-project-runtime
221 KB
sha256:8b5af73bd8d6c70aaee2a115154c46836dd840970f2df3a40104d830f73da679
ui-p0-ci-30766174758-project-runtime-domain
274 KB
sha256:c40060c874cf15e93415cbb41a79ad82663591bddd09c224f3a9847732570be6
ui-p0-ci-30766174758-project-workspace
21.7 MB
sha256:6a2635ff93d86380236d8ac40f50b1753fd60c4db89e577642c120697ce4870b
ui-p0-ci-30766174758-workspace-restoration
315 KB
sha256:4f03431b0432a68a4fd9804fdc438ca8f27de205c74608323689c0c4f0d9329c
visual-pr-capture-6347-30766174758-entry-navigation
5.43 MB
sha256:5e7c78305b483bfa7e2d61ec7785964cab062e6950871dd45bcde84a59b394a3
visual-pr-capture-6347-30766174758-settings-workspace
3.09 MB
sha256:937d7f1c1223bef8c53ff26e346a9a84b1ac79b755f6a0e56f24f42ab3be33a2