Self-host: split auth layout with product context beside the form #3628
ci.yml
on: pull_request
Format
52s
Lint
44s
Typecheck
2m 9s
Test
3m 50s
E2E (stdio MCP)
0s
Desktop smoke build
1m 45s
Self-host Docker image
2m 12s
Matrix: e2e
Annotations
26 errors and 15 warnings
|
E2E (cloud 6of8)
Process completed with exit code 1.
|
|
[cloud] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method:
e2e/scenarios/auth-methods-ui.test.ts#L59
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add source' })
❯ scenarios/auth-methods-ui.test.ts:59:66
❯ step src/surfaces/browser.ts:154:21
❯ scenarios/auth-methods-ui.test.ts:58:9
❯ src/surfaces/browser.ts:166:13
|
|
[cloud] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method:
e2e/scenarios/auth-methods-ui.test.ts#L59
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add source' })
❯ scenarios/auth-methods-ui.test.ts:59:66
❯ step src/surfaces/browser.ts:154:21
❯ scenarios/auth-methods-ui.test.ts:58:9
❯ src/surfaces/browser.ts:166:13
|
|
[cloud] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method:
e2e/scenarios/auth-methods-ui.test.ts#L42
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('How does this server authenticate?') to be visible
❯ scenarios/auth-methods-ui.test.ts:42:70
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/auth-methods-ui.test.ts:36:9
❯ src/surfaces/browser.ts:166:13
|
|
E2E (cloud 8of8)
Process completed with exit code 1.
|
|
[cloud] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification:
e2e/scenarios/mcp-catalog-sync-ui.test.ts#L48
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add source' })
❯ scenarios/mcp-catalog-sync-ui.test.ts:48:66
❯ step src/surfaces/browser.ts:154:21
❯ scenarios/mcp-catalog-sync-ui.test.ts:47:9
❯ src/surfaces/browser.ts:166:13
|
|
[cloud] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification:
e2e/scenarios/mcp-catalog-sync-ui.test.ts#L48
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add source' })
❯ scenarios/mcp-catalog-sync-ui.test.ts:48:66
❯ step src/surfaces/browser.ts:154:21
❯ scenarios/mcp-catalog-sync-ui.test.ts:47:9
❯ src/surfaces/browser.ts:166:13
|
|
[cloud] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification:
e2e/scenarios/mcp-catalog-sync-ui.test.ts#L43
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('How does this server authenticate?') to be visible
❯ scenarios/mcp-catalog-sync-ui.test.ts:43:70
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/mcp-catalog-sync-ui.test.ts:37:9
❯ src/surfaces/browser.ts:166:13
|
|
E2E (cloud 4of8)
Process completed with exit code 1.
|
|
E2E (cloud 7of8)
Process completed with exit code 1.
|
|
[cloud] scenarios/provider-plugins-ui.test.ts > Provider plugins · Google and Microsoft own their add flows outside OpenAPI:
e2e/scenarios/provider-plugins-ui.test.ts#L58
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: 'Add Microsoft Graph' }) to be visible
❯ scenarios/provider-plugins-ui.test.ts:58:74
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/provider-plugins-ui.test.ts:54:7
❯ src/surfaces/browser.ts:166:13
|
|
[cloud] scenarios/provider-plugins-ui.test.ts > Provider plugins · Google and Microsoft own their add flows outside OpenAPI:
e2e/scenarios/provider-plugins-ui.test.ts#L58
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: 'Add Microsoft Graph' }) to be visible
❯ scenarios/provider-plugins-ui.test.ts:58:74
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/provider-plugins-ui.test.ts:54:7
❯ src/surfaces/browser.ts:166:13
|
|
[cloud] scenarios/provider-plugins-ui.test.ts > Provider plugins · Google and Microsoft own their add flows outside OpenAPI:
e2e/scenarios/provider-plugins-ui.test.ts#L48
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: 'Add Google' }) to be visible
❯ scenarios/provider-plugins-ui.test.ts:48:65
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/provider-plugins-ui.test.ts:44:7
❯ src/surfaces/browser.ts:166:13
|
|
[cloud] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules:
e2e/scenarios/policies-ui.test.ts#L180
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alphab490049b' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched poluib490049b.*.*.records.create)', { exact: true }) to be visible
❯ scenarios/policies-ui.test.ts:180:84
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/policies-ui.test.ts:175:9
❯ src/surfaces/browser.ts:166:13
|
|
[cloud] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules:
e2e/scenarios/policies-ui.test.ts#L180
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alpha9ea26041' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched polui9ea26041.*.*.records.create)', { exact: true }) to be visible
❯ scenarios/policies-ui.test.ts:180:84
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/policies-ui.test.ts:175:9
❯ src/surfaces/browser.ts:166:13
|
|
[cloud] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules:
e2e/scenarios/policies-ui.test.ts#L180
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alphaf92414c2' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched poluif92414c2.*.*.records.create)', { exact: true }) to be visible
❯ scenarios/policies-ui.test.ts:180:84
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/policies-ui.test.ts:175:9
❯ src/surfaces/browser.ts:166:13
|
|
[selfhost] scenarios/provider-plugins-ui.test.ts > Provider plugins · Google and Microsoft own their add flows outside OpenAPI:
e2e/scenarios/provider-plugins-ui.test.ts#L58
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('heading', { name: 'Add Microsoft Graph' }) to be visible
❯ scenarios/provider-plugins-ui.test.ts:58:74
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/provider-plugins-ui.test.ts:54:7
❯ src/surfaces/browser.ts:166:13
|
|
[selfhost] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules:
e2e/scenarios/policies-ui.test.ts#L180
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alpha553ce987' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched polui553ce987.*.*.records.create)', { exact: true }) to be visible
❯ scenarios/policies-ui.test.ts:180:84
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/policies-ui.test.ts:175:9
❯ src/surfaces/browser.ts:166:13
|
|
[selfhost] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules:
e2e/scenarios/policies-ui.test.ts#L180
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alpha87792267' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched polui87792267.*.*.records.create)', { exact: true }) to be visible
❯ scenarios/policies-ui.test.ts:180:84
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/policies-ui.test.ts:175:9
❯ src/surfaces/browser.ts:166:13
|
|
[selfhost] scenarios/policies-ui.test.ts > Policies · the tool tree's per-tool menu and category menu both author working rules:
e2e/scenarios/policies-ui.test.ts#L180
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alpha8b1a8f53' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched polui8b1a8f53.*.*.records.create)', { exact: true }) to be visible
❯ scenarios/policies-ui.test.ts:180:84
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/policies-ui.test.ts:175:9
❯ src/surfaces/browser.ts:166:13
|
|
[selfhost] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification:
e2e/scenarios/mcp-catalog-sync-ui.test.ts#L48
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add source' })
❯ scenarios/mcp-catalog-sync-ui.test.ts:48:66
❯ step src/surfaces/browser.ts:154:21
❯ scenarios/mcp-catalog-sync-ui.test.ts:47:9
❯ src/surfaces/browser.ts:166:13
|
|
[selfhost] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification:
e2e/scenarios/mcp-catalog-sync-ui.test.ts#L48
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add source' })
❯ scenarios/mcp-catalog-sync-ui.test.ts:48:66
❯ step src/surfaces/browser.ts:154:21
❯ scenarios/mcp-catalog-sync-ui.test.ts:47:9
❯ src/surfaces/browser.ts:166:13
|
|
[selfhost] scenarios/mcp-catalog-sync-ui.test.ts > MCP catalog · the Tools tab follows a server-side rename after a list_changed notification:
e2e/scenarios/mcp-catalog-sync-ui.test.ts#L48
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add source' })
❯ scenarios/mcp-catalog-sync-ui.test.ts:48:66
❯ step src/surfaces/browser.ts:154:21
❯ scenarios/mcp-catalog-sync-ui.test.ts:47:9
❯ src/surfaces/browser.ts:166:13
|
|
[selfhost] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method:
e2e/scenarios/auth-methods-ui.test.ts#L59
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add source' })
❯ scenarios/auth-methods-ui.test.ts:59:66
❯ step src/surfaces/browser.ts:154:21
❯ scenarios/auth-methods-ui.test.ts:58:9
❯ src/surfaces/browser.ts:166:13
|
|
[selfhost] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method:
e2e/scenarios/auth-methods-ui.test.ts#L59
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add source' })
❯ scenarios/auth-methods-ui.test.ts:59:66
❯ step src/surfaces/browser.ts:154:21
❯ scenarios/auth-methods-ui.test.ts:58:9
❯ src/surfaces/browser.ts:166:13
|
|
[selfhost] scenarios/auth-methods-ui.test.ts > Auth methods · the add flow declares an API key alongside the detected method:
e2e/scenarios/auth-methods-ui.test.ts#L59
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('button', { name: 'Add source' })
❯ scenarios/auth-methods-ui.test.ts:59:66
❯ step src/surfaces/browser.ts:154:21
❯ scenarios/auth-methods-ui.test.ts:58:9
❯ src/surfaces/browser.ts:166:13
|
|
Lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Desktop smoke build
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Self-host Docker image
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, docker/build-push-action@v6, docker/setup-buildx-action@v3. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Format
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Test
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E (cloud 3of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E (cloud 2of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E (cloud 6of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E (cloud 5of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E (cloud 8of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E (cloud 1of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E (cloud 4of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E (cloud 7of8)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E (selfhost)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
RhysSullivan~executor~CO74F4.dockerbuild
|
60.1 KB |
sha256:16fc6241cc90abeab5af51a64972f9846ea144a10dbc4008712d6395ba843d0f
|
|
|
e2e-runs-cloud-4of8
|
20.8 MB |
sha256:b35aca7f5570d4b1cf46e2cab538ad6a08841b8f9d0e496d6a83330a714aebc3
|
|
|
e2e-runs-cloud-6of8
|
21 MB |
sha256:2ef0e5a1129b9c4d182f5bb2c6fa7fffb32142d58dd57831a5fb37842feba7f6
|
|
|
e2e-runs-cloud-7of8
|
27.3 MB |
sha256:30017c18996bbf048066fbf55f1076b7f727c5033480999ff2792b6c519a4476
|
|
|
e2e-runs-cloud-8of8
|
11.8 MB |
sha256:bd1266ea0305617a7f6c3ef7ce71dc6ec4203b0dd1405494b5e9cd16403dacdb
|
|
|
e2e-runs-selfhost
|
97.6 MB |
sha256:3c9b821e5d87648ef15c1c95b200eca6ed5b4cb983d0bfac7a6948c6bf080550
|
|