Skip to content

fix(self-host): support dashboard UUIDs over HTTP - #2329

Open
ocelot2123 wants to merge 1 commit into
UsefulSoftwareCo:v2from
ocelot2123:fix/http-dashboard-uuid
Open

ocelot2123 wants to merge 1 commit into
UsefulSoftwareCo:v2from
ocelot2123:fix/http-dashboard-uuid

Conversation

@ocelot2123

@ocelot2123 ocelot2123 commented Oct 20, 2026 •

Copy link
Copy Markdown

attempt to fix #2328

Problem

Opening the self-host dashboard over a LAN HTTP address leaves crypto.randomUUID undefined. Telemetry calls it before executing dashboard API requests, producing “Unable to complete this request”. Connection creation, workflow starts and agent setup also call it directly. HTTP localhost does not reproduce this because browsers treat loopback as a secure context.

Confirmed against 2.0.0-beta.25 in Chromium on a LAN HTTP origin: isSecureContext === false, randomUUID absent, getRandomValues available, server health 200, and the shipped page-ID function throws TypeError: crypto.randomUUID is not a function.

Change

  • Add a dependency-free UUID v4 helper: native randomUUID when available, otherwise 16 getRandomValues bytes with the v4 version/variant bits.
  • Use it in the four affected dashboard files, preserving ID lifecycles.
  • Extend the existing scoped-connection browser scenario to remove native UUID support on self-host, exercise real reads/create/revoke, and verify the saved ID is UUID v4.

Clipboard behavior and hosted app-domain requirements are outside this UUID fix.

Validation

  • Built the PR image and tested it over LAN HTTP, manually and with Playwright. Onboarding, dashboard navigation, scoped connections and workflow starts passed with no browser or HTTP errors.
  • bun run format and bun run check: passed.
  • bun run e2e:prepare: passed with Bun 1.4.2.
  • Before fix: the extended connection scenario fails opening the creation form; its browser trace records crypto.randomUUID is not a function.
  • After fix: all four selected E2E scenarios pass:
    • Self-host scoped-connection creation/revocation with native browser UUIDs absent.
    • Self-host workflow starts and linked-account resources.
    • Self-host administrator onboarding through agent setup.
    • Local tools and workflow controls.

Commands:

bun run e2e:self-host --workers 3 --test-name '^(Members create and revoke a scoped connection from the dashboard|workflow starts and webhook sources follow|Self-host administrator setup connects)'
bun run e2e:local --workers 1 --test-name '^local tools and workflows use the linked account without a choice'

The regression scenario simulates the missing browser capability on the suite's loopback server; it does not change global crypto in the product. Cloud scenarios were not run locally.

mcp-connections.spec.ts
grouped-resources.spec.ts
local-resources.spec.ts
self-host-onboarding.spec.ts
browser-observability.spec.ts
browser-connection-failures.spec.ts

@ocelot2123
ocelot2123 force-pushed the fix/http-dashboard-uuid branch from 4f44e5b to e767364 Compare October 20, 2026 15:54
@ocelot2123
ocelot2123 marked this pull request as ready for review October 20, 2026 16:10
@ocelot2123 ocelot2123 changed the title fix: support dashboard UUIDs over HTTP fix(self-host): support dashboard UUIDs over HTTP Oct 20, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant