Copy and naming pass: providers, add flows, API keys, policies #3609
ci.yml
on: pull_request
Format
49s
Lint
41s
Typecheck
2m 11s
Test
3m 53s
E2E (stdio MCP)
0s
Desktop smoke build
1m 22s
Self-host Docker image
1m 17s
Matrix: e2e
Annotations
30 errors and 15 warnings
|
Self-host Docker image
buildx failed with: ERROR: failed to build: failed to solve: process "/bin/sh -c bun install --frozen-lockfile" did not complete successfully: exit code: 1
|
|
E2E (cloud 4of8)
Process completed with exit code 1.
|
|
[cloud] cloud/auth-routing-flow.test.ts > Auth routing · signed out → login → onboarding → dashboard, one browser session:
e2e/cloud/auth-routing-flow.test.ts#L61
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('Connect your MCP client') to be visible
❯ cloud/auth-routing-flow.test.ts:61:57
❯ step src/surfaces/browser.ts:154:15
❯ cloud/auth-routing-flow.test.ts:58:7
❯ src/surfaces/browser.ts:166:13
|
|
[cloud] cloud/auth-routing-flow.test.ts > Auth routing · signed out → login → onboarding → dashboard, one browser session:
e2e/cloud/auth-routing-flow.test.ts#L61
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('Connect your MCP client') to be visible
❯ cloud/auth-routing-flow.test.ts:61:57
❯ step src/surfaces/browser.ts:154:15
❯ cloud/auth-routing-flow.test.ts:58:7
❯ src/surfaces/browser.ts:166:13
|
|
[cloud] cloud/auth-routing-flow.test.ts > Auth routing · signed out → login → onboarding → dashboard, one browser session:
e2e/cloud/auth-routing-flow.test.ts#L61
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByText('Connect your MCP client') to be visible
❯ cloud/auth-routing-flow.test.ts:61:57
❯ step src/surfaces/browser.ts:154:15
❯ cloud/auth-routing-flow.test.ts:58:7
❯ src/surfaces/browser.ts:166:13
|
|
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 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#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/provider-plugins-ui.test.ts > Provider plugins · Google and Microsoft own their add flows outside OpenAPI:
e2e/scenarios/provider-plugins-ui.test.ts#L19
TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('dialog', { name: 'Connect an integration' }) to be visible
❯ scenarios/provider-plugins-ui.test.ts:19:76
❯ step src/surfaces/browser.ts:154:15
❯ scenarios/provider-plugins-ui.test.ts:16: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: 'alpha627a22ec' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched polui627a22ec.*.*.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: 'alphaa81c19d8' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched poluia81c19d8.*.*.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#L170
TimeoutError: locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for getByRole('tabpanel').locator('section').filter({ hasText: 'alpha4d0ced5f' }).locator('button[aria-expanded="false"]').filter({ hasText: 'polui4d0ced5f' })
- waiting for" http://localhost:42600/org-user-b6c7c336/integrations/polui4d0ced5f" navigation to finish...
- navigated to "http://localhost:42600/org-user-b6c7c336/integrations/polui4d0ced5f"
❯ scenarios/policies-ui.test.ts:170:49
❯ step src/surfaces/browser.ts:154:21
❯ scenarios/policies-ui.test.ts:169: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
|
|
[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: 'alphab5075147' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched poluib5075147.*.*.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: 'alphada3c91f4' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched poluida3c91f4.*.*.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: 'alpha295da01c' }).getByRole('button').filter({ hasText: 'create' }).getByLabel('Blocked (matched polui295da01c.*.*.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
|
|
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/
|
|
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/
|
|
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/
|
|
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 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/
|
|
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/
|
|
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/
|
|
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 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/
|
|
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/
|
|
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 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 (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 (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~0UW2M2.dockerbuild
|
37.2 KB |
sha256:79d834de897932c4811f9a3635794a16dd10b8f9b03d578e25875569439da592
|
|
|
e2e-runs-cloud-4of8
|
29.7 MB |
sha256:29000771695b1bb8c1b057db530e054209b8f8f8f6675066f0d9762f44ce7c05
|
|
|
e2e-runs-cloud-6of8
|
24.6 MB |
sha256:799a4b03dadc7b632e41e5b3995d1d26d967cefb02b0191ece14afb45208b2a8
|
|
|
e2e-runs-cloud-7of8
|
35.1 MB |
sha256:794c8d7820379247862bb2057a970c9c432b53d618fc83f84dcc3ece53bfb591
|
|
|
e2e-runs-cloud-8of8
|
11.6 MB |
sha256:a510aed6e20dac41ff8c5baef249d252e5ffa66101ed1526a2a80a2b1b05e0cd
|
|
|
e2e-runs-selfhost
|
95.5 MB |
sha256:e945f7ddcef59fe97a0f8bfe299d6d7e553d49e3cd5419f132777db41d01909a
|
|