feat(workspace-team): team workspaces, shared resources, workspace-scoped billing, and the #5517 redesign #17118
ci.yml
on: pull_request
Resolve runner profiles
11s
Matrix: playwright_critical
Matrix: playwright_visual
Matrix: ui_p0
Preflight
3m 45s
Workspace unit tests
1m 59s
Windows tools-pack payload tests
2m 13s
Web workspace tests
9m 5s
E2E Vitest
6m 2s
Runtime summary
5s
Annotations
11 errors, 4 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
|
|
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-17SHuX/gh-stub.mjs api repos/nexu-io/open-design/compare/1111111111111111111111111111111111111111...2222222222222222222222222222222222222222
|
|
Slow Test:
e2e/[chromium] βΊ ui/amr-onboarding.test.ts#L0
e2e/[chromium] βΊ ui/amr-onboarding.test.ts took 5.4m
|
|
π Playwright Run Summary
3 skipped
17 passed (3.2m)
|
|
π Playwright Run Summary
18 passed (4.2m)
|
|
π Playwright Run Summary
4 passed (1.8m)
|
|
π Playwright Run Summary
22 passed (5.0m)
|
|
π Playwright Run Summary
29 passed (7.6m)
|
|
π Playwright Run Summary
1 skipped
70 passed (11.0m)
|
|
π Playwright Run Summary
37 passed (12.5m)
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
handoff-report-visual-pr
|
438 Bytes |
sha256:cdc90eb445f2dc788f883b1d6a9f409108d64a5b586f06d5c834a1cd0fd615cc
|
|
|
ui-p0-ci-30776648570-entry-settings
|
389 KB |
sha256:f784d8d9c5899daedd6e06467c13ae0aebba377d0a35dc0bdf29f5865f8d4a87
|
|
|
ui-p0-ci-30776648570-project-runtime
|
287 KB |
sha256:5d068a8b61b48c61963ac1be62d4b5f8ea7516ef2945bd80de9d2ace7c26aeaa
|
|
|
ui-p0-ci-30776648570-project-runtime-domain
|
340 KB |
sha256:d1750b9b5ebcd1670f0f2dddddc0bfd0854ad183871637f2cbb4a5863ca1fc77
|
|
|
ui-p0-ci-30776648570-project-workspace
|
407 KB |
sha256:fc094d8ce093149bd4fcd56d18f7013500df6c61b26839789f781f9f5ceed2be
|
|
|
ui-p0-ci-30776648570-workspace-restoration
|
380 KB |
sha256:c0fefe4e659179ccafeb7b133306662ef4b8a8ffe1c777935b070366cdb3e2fb
|
|
|
visual-pr-capture-6142-30776648570-entry-navigation
|
5.5 MB |
sha256:f72c0d17a28987bada262419e36b55f9b28825d2ef0e71e0537460ae082468e9
|
|
|
visual-pr-capture-6142-30776648570-settings-workspace
|
3.14 MB |
sha256:28b417119765ac2c22b7712430646981267089e388d4c23f2b276fed430069e0
|
|