Spec 055 — Frontend Major-Dependency Migration

Tailwind 3→4 · DaisyUI 4→5 · Vite 5→8 · TypeScript 5→6 · vue-tsc 2→3  |  Related #498  |  generated 2026-05-25 15:32
PASS
npm run build
79/79
Vitest
PASS
make build
PASS
build-server
9/9
UI sweep
0
npm vulns

What changed

PackageBeforeAfterMigration
tailwindcss3.4.174.3.0CSS-first @import "tailwindcss" + @tailwindcss/postcss; dropped tailwind.config.cjs & autoprefixer
daisyui4.12.245.5.20@plugin "daisyui" in CSS, 32 themes preserved (light --default, dark --prefersdark)
vite5.4.208.0.14rolldown build; base:'/ui/' + @ alias preserved; @vitejs/plugin-vue 5→6
typescript5.9.26.0.3dropped baseUrl (TS5101); paths retained; vue-tsc 2→3, @vue/tsconfig →0.9
vitest2.x3.xbumped for Vite-8 peer compatibility

Code fixes: flex-shrink-0shrink-0 (8 files), bg-opacity-50bg-black/50 (AuthErrorModal), @reference added to JsonViewer scoped @apply, @apply status-badge inlined (v4 forbids @apply of custom classes), Node engines 18→22.18.

3 DaisyUI-v5 regressions were caught in review and fixed (form alignment, tab styling, theme-dropdown clipping) — see the dedicated section below.

⚠ One intentional visual change remains (not a regression): DaisyUI v5 ships a refreshed default-theme palette — the primary button color shifted from v4's indigo/violet to a brighter blue, and badge-success green is slightly more saturated. All components render correctly and cohesively; this is the theme-token evolution the spec's edge cases anticipated. If exact color parity is required, the old palette can be pinned via a custom @plugin "daisyui/theme" block — flagged here for a product decision.

DaisyUI v5 Regressions — Found in Review & Fixed

RegressionCause (v5 breaking change)Fix
Form labels/inputs misaligned across ~16 viewsv5 removed .form-control and repurposed .label/.label-textUnlayered compat shim in main.css restoring v4 stack semantics (overrides DaisyUI's cascade layer)
Form inputs only ~half widthv5 gives .input/.select/.textarea an intrinsic width, so form-control's flex stretch no longer fills the row.form-control :where(.input,.select,.textarea){width:100%} in the shim
Manual/Import & server-detail tabs looked like plain texttabs-boxedtabs-box, tabs-borderedtabs-border renamed in v5Renamed tab containers in AddServerModal, OnboardingWizard, ServerDetail
Theme dropdown clipped (labels + title cut off-screen)Menu too narrow (w-64) and dropdown-end pushed a wider menu off the left of the viewport from the left sidebarWidened to w-72 + flex-nowrap; dropped dropdown-end so it opens rightward (left edge x: −85px → +12px, on-screen)
Sidebar nav items + active highlight only content-widthv5 .menu defaults to width: max-content (v4 filled the rail)Added w-full to the sidebar .menu lists (ul width 117px → 231px)
Dashboard connection dots/lines black; MCP logo glow gonev5 renamed all theme CSS vars (--su--color-success, --p--color-primary, --b1/2/3, --bc) and the var now holds the full color (no hsl()/oklch() wrapper); undefined short vars resolved to black/noneConverted ~50 refs across Dashboard, TokenPieChart, Hints panels to v5 vars; opacity uses → color-mix(in oklch, …, transparent)
Dashboard — fixed (green connection dots/lines + MCP logo glow restored)
Sidebar nav — fixed (items + active highlight fill the rail)
Add-server form — fixed (labels stack, full-width inputs, boxed tabs)
Theme dropdown — fixed (on-screen, all 32 themes + swatches fit)

Visual Parity — Before / After (9 views)

PARITY Dashboard (home) (01-servers-home)
BEFORE — Tailwind 3 / DaisyUI 4 / Vite 5 / TS 5
AFTER — Tailwind 4 / DaisyUI 5 / Vite 8 / TS 6
PARITY Servers list (02-servers-list)
BEFORE — Tailwind 3 / DaisyUI 4 / Vite 5 / TS 5
AFTER — Tailwind 4 / DaisyUI 5 / Vite 8 / TS 6
PARITY Global Tools (03-tools)
BEFORE — Tailwind 3 / DaisyUI 4 / Vite 5 / TS 5
AFTER — Tailwind 4 / DaisyUI 5 / Vite 8 / TS 6
PARITY Activity Log (04-activity)
BEFORE — Tailwind 3 / DaisyUI 4 / Vite 5 / TS 5
AFTER — Tailwind 4 / DaisyUI 5 / Vite 8 / TS 6
PARITY Security / Quarantine (05-security-quarantine)
BEFORE — Tailwind 3 / DaisyUI 4 / Vite 5 / TS 5
AFTER — Tailwind 4 / DaisyUI 5 / Vite 8 / TS 6
PARITY Configuration (Settings) (06-settings)
BEFORE — Tailwind 3 / DaisyUI 4 / Vite 5 / TS 5
AFTER — Tailwind 4 / DaisyUI 5 / Vite 8 / TS 6
PARITY Secrets (07-secrets)
BEFORE — Tailwind 3 / DaisyUI 4 / Vite 5 / TS 5
AFTER — Tailwind 4 / DaisyUI 5 / Vite 8 / TS 6
PARITY Agent Tokens (08-tokens)
BEFORE — Tailwind 3 / DaisyUI 4 / Vite 5 / TS 5
AFTER — Tailwind 4 / DaisyUI 5 / Vite 8 / TS 6
PARITY Add-Server modal (09-add-server-modal)
BEFORE — Tailwind 3 / DaisyUI 4 / Vite 5 / TS 5
AFTER — Tailwind 4 / DaisyUI 5 / Vite 8 / TS 6

QA — Main Use-Case Verification

Test plan
# QA Test Plan — Web UI after major frontend dependency migration

**Spec:** 055-frontend-major-upgrades
**Under test:** Personal-edition binary `/Users/user/repos/mcpproxy-go/mcpproxy`
(embeds the migrated UI: Tailwind v4, DaisyUI v5, Vite 8, TS 6 — UI is NOT rebuilt here)
**Date:** 2026-05-25
**Harness:** Playwright (Chromium 1217, headless, 1440×900), one spec per use case.
**Instance:** fresh throwaway on `127.0.0.1:18093`, data-dir `/tmp/mcpproxy-qa093`, empty `mcpServers`.

## How to reproduce

```bash
# 1. Start the isolated instance
/Users/user/repos/mcpproxy-go/mcpproxy serve --config=/tmp/mcpproxy-qa093/mcp_config.json \
  --listen=127.0.0.1:18093 --log-level=info &
# 2. Run the suite (specs run from /tmp/qa-usecases which symlinks the e2e node_modules)
cd /tmp/qa-usecases && ./node_modules/.bin/playwright test --reporter=list
```

Spec files + helper live here (canonical copies); the runner copies them into
`/tmp/qa-usecases` (which has the Playwright `node_modules` symlink) before running.
Screenshots, `console-log.txt`, and this plan are written into this directory by the helper's absolute paths.

## SC-004 — console error gate

Every spec attaches `page.on('console')` + `page.on('pageerror')` and FAILS on any
**fatal** console/page error. All captured output is appended to `console-log.txt`.

**Benign noise excluded from the gate (logged, not failed):** SSE/`EventSource`
"connection closed / error occurred" messages. These are browser-native EventSource
reconnect logs driven by the `/events` channel + query-param auth; they are present
regardless of the CSS/build-tool stack and are NOT a migration regression. Pattern:
`/EventSource/i`, `/SSE/i`, `/connection closed/i` (see `_helpers.ts`).

**Result:** `fatal-errors=0` across all six tests. Only 18 benign SSE lines (all in
UC1, which visits 10 routes). No Vue render errors, no missing-module errors, no
pageerror exceptions anywhere.

## Use cases

| # | Case | Steps | Expected | Observed | Verdict |
|---|------|-------|----------|----------|---------|
| UC1 | Navigation | Visit all 10 nav routes (`/`, `/servers`, `/tools`, `/activity`, `/security`, `/settings`, `/secrets`, `/tokens`, `/repositories`, `/search`). Assert `#app` non-empty, ≥1 heading (h1/h2/h3 — Dashboard uses h3), no 404 view, no fatal console error. | Every route mounts a real view, no 404, no JS error. | All 10 routes mount; headings present; no 404; only benign SSE noise. | PASS |
| UC2 | Theme switch (key DaisyUI-v5 check) | Open the sidebar Theme dropdown, switch to **light → dark → synthwave**. Assert `documentElement[data-theme]` equals each and is persisted to `localStorage['mcpproxy-theme']`. Screenshot each. | `data-theme` flips for every theme; colourful theme (synthwave) renders distinct palette. | All three apply + persist; synthwave renders pink/cyan-on-navy; light/dark distinct. | PASS |
| UC3 | Add-server modal | Click TopHeader "Add Server" → assert the OPEN `<dialog.modal>` reports `dialog.open===true`. Fill Server Name; default type stdio; Command select → "Custom command"; type a command path; assert inputs hold their values. | Modal opens as native dialog; form accepts name + command. | `dialog.open===true`; name `qa-test-server` + path `/usr/bin/my-mcp-server` accepted; v5 toggles render. | PASS |
| UC4 | Activity view | Load `/activity`; assert table renders at default; set Status filter → `error`; assert filter applies and view stays coherent (emptied table OR empty-state). | Filters work; table or empty-state renders. | Default table renders (system-start row); `error` filter → "No matching activities / try adjusting your filters" empty-state. | PASS |
| UC5 | Settings + DaisyUI-v5 toggle | Load `/settings`, assert Monaco config-editor card mounts. **Deviation:** `/settings` has NO daisyUI toggle (it is a JSON config editor), so v5 toggle interactivity is verified on the AddServerModal "Enabled" `toggle toggle-primary` (a pure `v-model` local control, no backend side effects); assert checked state flips. | Settings mounts; a daisyUI v5 toggle flips on click. | Settings editor mounts; Enabled toggle flips on→off cleanly. | PASS |
| UC6 | Server detail / empty-state | Load `/servers`; KPI cards visible; if a server card/link exists, click through to detail; else assert empty-state. (Fresh instance → empty-state expected.) | Detail loads OR empty-state renders. | "No servers found" empty-state renders on the fresh instance. | PASS |

## Notes / findings during harness development

1. **OnboardingWizard auto-opens on a fresh instance.** Its open `<dialog>` has a
   full-viewport `<form class="modal-backdrop"><button>close</button></form>` that
   intercepts clicks on the page beneath (correct daisyUI-v5 behaviour for an OPEN
   modal). The helper `dismissOnboarding()` clicks its `aria-label="Close"` button
   after every navigation. This is first-run UX, NOT a migration regression.
2. **DaisyUI v5 keeps closed `<dialog.modal>` elements mounted** with `display:grid`
   + `pointer-events:none` (v4 used `display:none`). Closed modals therefore do NOT
   block clicks; only the single OPEN modal does. Tests target `dialog.modal[open]`.
3. **Dashboard headings are `h3`**, not `h1/h2` — UC1 accepts any heading level.

## Screenshots

`uc1-nav-{dashboard,servers,tools,activity,security,settings,secrets,tokens,repositories,search}.png`,
`uc2-theme-{light,dark,synthwave}.png`, `uc3-add-server-modal.png`, `uc4-activity.png`,
`uc5-settings.png`, `uc5-toggle-flipped.png`, `uc6-servers.png`.

## Verdict

**6/6 PASS, zero fatal console errors.** The migrated UI (Tailwind v4 / DaisyUI v5 /
Vite 8 / TS 6) behaves on par with the pre-migration UI across navigation, theming,
modals, filtering, toggles, and empty-states. The most important DaisyUI-v5 regression
surface — theme switching — works for light, dark, and a colourful theme. No
migration-induced JavaScript errors were observed.
Console / page-error capture (SC-004)
===== UC1-navigation =====
fatal-errors=0 benign(SSE)=18 warnings=0
[UC1-navigation] log: API key from URL (updating storage): uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tools with API key: uitest...
[UC1-navigation] log: API request to /api/v1/secrets/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state succeeded
[UC1-navigation] log: API request to /api/v1/tools succeeded
[UC1-navigation] log: API request to /api/v1/secrets/config succeeded
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: Attempting to connect EventSource...
[UC1-navigation] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC1-navigation] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/info with API key: uitest...
[UC1-navigation] log: API request to /api/v1/routing with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: API request to /api/v1/security/overview with API key: uitest...
[UC1-navigation] log: API request to /api/v1/connect with API key: uitest...
[UC1-navigation] log: API request to /api/v1/stats/tokens with API key: uitest...
[UC1-navigation] log: API request to /api/v1/activity/summary?period=24h with API key: uitest...
[UC1-navigation] log: API request to /api/v1/sessions?limit=5 with API key: uitest...
[UC1-navigation] log: API request to /api/v1/docker/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: Attempting to connect EventSource...
[UC1-navigation] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC1-navigation] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: API request to /api/v1/info succeeded
[UC1-navigation] log: API request to /api/v1/routing succeeded
[UC1-navigation] log: EventSource connected successfully
[UC1-navigation] log: API request to /api/v1/connect succeeded
[UC1-navigation] log: API request to /api/v1/stats/tokens succeeded
[UC1-navigation] log: API request to /api/v1/activity/summary?period=24h succeeded
[UC1-navigation] log: API request to /api/v1/sessions?limit=5 succeeded
[UC1-navigation] log: API request to /api/v1/docker/status succeeded
[UC1-navigation] log: API request to /api/v1/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: API request to /api/v1/onboarding/state succeeded
[UC1-navigation] log: API request to /api/v1/config succeeded
[UC1-navigation] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707542, finalRunningValue: true}
[UC1-navigation] log: API request to /api/v1/security/overview succeeded
[UC1-navigation] error: EventSource error occurred: Event
[UC1-navigation] error: EventSource connection closed - possible authentication failure
[UC1-navigation] log: Attempting to reinitialize API key and retry connection...
[UC1-navigation] log: API key from localStorage: uitest...
[UC1-navigation] log: API key from URL (updating storage): uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tools with API key: uitest...
[UC1-navigation] log: API request to /api/v1/secrets/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state succeeded
[UC1-navigation] log: API request to /api/v1/tools succeeded
[UC1-navigation] log: API request to /api/v1/secrets/config succeeded
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: Attempting to connect EventSource...
[UC1-navigation] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC1-navigation] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/info with API key: uitest...
[UC1-navigation] log: API request to /api/v1/routing with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: EventSource connected successfully
[UC1-navigation] log: API request to /api/v1/info succeeded
[UC1-navigation] log: API request to /api/v1/routing succeeded
[UC1-navigation] log: API request to /api/v1/security/overview with API key: uitest...
[UC1-navigation] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707543, finalRunningValue: true}
[UC1-navigation] log: API request to /api/v1/security/overview succeeded
[UC1-navigation] error: EventSource error occurred: Event
[UC1-navigation] error: EventSource connection closed - possible authentication failure
[UC1-navigation] log: Attempting to reinitialize API key and retry connection...
[UC1-navigation] log: API key from localStorage: uitest...
[UC1-navigation] log: API key from URL (updating storage): uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tools with API key: uitest...
[UC1-navigation] log: API request to /api/v1/secrets/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state succeeded
[UC1-navigation] log: API request to /api/v1/tools succeeded
[UC1-navigation] log: API request to /api/v1/secrets/config succeeded
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: Attempting to connect EventSource...
[UC1-navigation] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC1-navigation] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/info with API key: uitest...
[UC1-navigation] log: API request to /api/v1/routing with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: EventSource connected successfully
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: API request to /api/v1/info succeeded
[UC1-navigation] log: API request to /api/v1/routing succeeded
[UC1-navigation] log: API request to /api/v1/tools with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tools succeeded
[UC1-navigation] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707544, finalRunningValue: true}
[UC1-navigation] error: EventSource error occurred: Event
[UC1-navigation] error: EventSource connection closed - possible authentication failure
[UC1-navigation] log: Attempting to reinitialize API key and retry connection...
[UC1-navigation] log: API key from localStorage: uitest...
[UC1-navigation] log: API key from URL (updating storage): uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tools with API key: uitest...
[UC1-navigation] log: API request to /api/v1/secrets/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state succeeded
[UC1-navigation] log: API request to /api/v1/tools succeeded
[UC1-navigation] log: API request to /api/v1/secrets/config succeeded
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: Attempting to connect EventSource...
[UC1-navigation] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC1-navigation] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/info with API key: uitest...
[UC1-navigation] log: API request to /api/v1/routing with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: EventSource connected successfully
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: API request to /api/v1/info succeeded
[UC1-navigation] log: API request to /api/v1/routing succeeded
[UC1-navigation] log: API request to /api/v1/activity?limit=200 with API key: uitest...
[UC1-navigation] log: API request to /api/v1/activity/summary?period=24h with API key: uitest...
[UC1-navigation] log: API request to /api/v1/activity?limit=200 succeeded
[UC1-navigation] log: API request to /api/v1/activity/summary?period=24h succeeded
[UC1-navigation] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707545, finalRunningValue: true}
[UC1-navigation] error: EventSource error occurred: Event
[UC1-navigation] error: EventSource connection closed - possible authentication failure
[UC1-navigation] log: Attempting to reinitialize API key and retry connection...
[UC1-navigation] log: API key from localStorage: uitest...
[UC1-navigation] log: API key from URL (updating storage): uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tools with API key: uitest...
[UC1-navigation] log: API request to /api/v1/secrets/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state succeeded
[UC1-navigation] log: API request to /api/v1/tools succeeded
[UC1-navigation] log: API request to /api/v1/secrets/config succeeded
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: Attempting to connect EventSource...
[UC1-navigation] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC1-navigation] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/info with API key: uitest...
[UC1-navigation] log: API request to /api/v1/routing with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: EventSource connected successfully
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: API request to /api/v1/info succeeded
[UC1-navigation] log: API request to /api/v1/routing succeeded
[UC1-navigation] log: API request to /api/v1/security/scanners with API key: uitest...
[UC1-navigation] log: API request to /api/v1/security/overview with API key: uitest...
[UC1-navigation] log: API request to /api/v1/security/scans?sort=started_at&order=desc&limit=20 with API key: uitest...
[UC1-navigation] log: API request to /api/v1/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/security/scanners succeeded
[UC1-navigation] log: API request to /api/v1/security/scans?sort=started_at&order=desc&limit=20 succeeded
[UC1-navigation] log: API request to /api/v1/config succeeded
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: API request to /api/v1/security/overview succeeded
[UC1-navigation] log: API request to /api/v1/security/queue with API key: uitest...
[UC1-navigation] log: API request to /api/v1/security/queue succeeded
[UC1-navigation] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707546, finalRunningValue: true}
[UC1-navigation] error: EventSource error occurred: Event
[UC1-navigation] error: EventSource connection closed - possible authentication failure
[UC1-navigation] log: Attempting to reinitialize API key and retry connection...
[UC1-navigation] log: API key from localStorage: uitest...
[UC1-navigation] log: API key from URL (updating storage): uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tools with API key: uitest...
[UC1-navigation] log: API request to /api/v1/secrets/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state succeeded
[UC1-navigation] log: API request to /api/v1/tools succeeded
[UC1-navigation] log: API request to /api/v1/secrets/config succeeded
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: Attempting to connect EventSource...
[UC1-navigation] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC1-navigation] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/info with API key: uitest...
[UC1-navigation] log: API request to /api/v1/routing with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: API request to /api/v1/info succeeded
[UC1-navigation] log: API request to /api/v1/routing succeeded
[UC1-navigation] log: EventSource connected successfully
[UC1-navigation] log: API request to /api/v1/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/config succeeded
[UC1-navigation] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707547, finalRunningValue: true}
[UC1-navigation] error: EventSource error occurred: Event
[UC1-navigation] error: EventSource connection closed - possible authentication failure
[UC1-navigation] log: Attempting to reinitialize API key and retry connection...
[UC1-navigation] log: API key from localStorage: uitest...
[UC1-navigation] log: API key from URL (updating storage): uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tools with API key: uitest...
[UC1-navigation] log: API request to /api/v1/secrets/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state succeeded
[UC1-navigation] log: API request to /api/v1/tools succeeded
[UC1-navigation] log: API request to /api/v1/secrets/config succeeded
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: Attempting to connect EventSource...
[UC1-navigation] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC1-navigation] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/info with API key: uitest...
[UC1-navigation] log: API request to /api/v1/routing with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: EventSource connected successfully
[UC1-navigation] log: API request to /api/v1/info succeeded
[UC1-navigation] log: API request to /api/v1/routing succeeded
[UC1-navigation] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707548, finalRunningValue: true}
[UC1-navigation] verbose: [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
[UC1-navigation] log: API request to /api/v1/secrets/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/secrets/config succeeded
[UC1-navigation] error: EventSource error occurred: Event
[UC1-navigation] error: EventSource connection closed - possible authentication failure
[UC1-navigation] log: Attempting to reinitialize API key and retry connection...
[UC1-navigation] log: API key from localStorage: uitest...
[UC1-navigation] log: API key from URL (updating storage): uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tools with API key: uitest...
[UC1-navigation] log: API request to /api/v1/secrets/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state succeeded
[UC1-navigation] log: API request to /api/v1/tools succeeded
[UC1-navigation] log: API request to /api/v1/secrets/config succeeded
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: Attempting to connect EventSource...
[UC1-navigation] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC1-navigation] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/info with API key: uitest...
[UC1-navigation] log: API request to /api/v1/routing with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: EventSource connected successfully
[UC1-navigation] log: API request to /api/v1/info succeeded
[UC1-navigation] log: API request to /api/v1/routing succeeded
[UC1-navigation] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707549, finalRunningValue: true}
[UC1-navigation] log: API request to /api/v1/tokens with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tokens succeeded
[UC1-navigation] error: EventSource error occurred: Event
[UC1-navigation] error: EventSource connection closed - possible authentication failure
[UC1-navigation] log: Attempting to reinitialize API key and retry connection...
[UC1-navigation] log: API key from localStorage: uitest...
[UC1-navigation] log: API key from URL (updating storage): uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tools with API key: uitest...
[UC1-navigation] log: API request to /api/v1/secrets/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state succeeded
[UC1-navigation] log: API request to /api/v1/tools succeeded
[UC1-navigation] log: API request to /api/v1/secrets/config succeeded
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: Attempting to connect EventSource...
[UC1-navigation] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC1-navigation] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/info with API key: uitest...
[UC1-navigation] log: API request to /api/v1/routing with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: EventSource connected successfully
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: API request to /api/v1/routing succeeded
[UC1-navigation] log: API request to /api/v1/info succeeded
[UC1-navigation] log: API request to /api/v1/registries with API key: uitest...
[UC1-navigation] log: API request to /api/v1/registries succeeded
[UC1-navigation] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707550, finalRunningValue: true}
[UC1-navigation] error: EventSource error occurred: Event
[UC1-navigation] error: EventSource connection closed - possible authentication failure
[UC1-navigation] log: Attempting to reinitialize API key and retry connection...
[UC1-navigation] log: API key from localStorage: uitest...
[UC1-navigation] log: API key from URL (updating storage): uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC1-navigation] log: API request to /api/v1/tools with API key: uitest...
[UC1-navigation] log: API request to /api/v1/secrets/config with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status with API key: uitest...
[UC1-navigation] log: API request to /api/v1/onboarding/state succeeded
[UC1-navigation] log: API request to /api/v1/tools succeeded
[UC1-navigation] log: API request to /api/v1/secrets/config succeeded
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: Attempting to connect EventSource...
[UC1-navigation] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC1-navigation] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC1-navigation] log: API request to /api/v1/servers with API key: uitest...
[UC1-navigation] log: API request to /api/v1/info with API key: uitest...
[UC1-navigation] log: API request to /api/v1/routing with API key: uitest...
[UC1-navigation] log: API request to /api/v1/status succeeded
[UC1-navigation] log: EventSource connected successfully
[UC1-navigation] log: API request to /api/v1/servers succeeded
[UC1-navigation] log: API request to /api/v1/info succeeded
[UC1-navigation] log: API request to /api/v1/routing succeeded
[UC1-navigation] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707551, finalRunningValue: true}

===== UC2-theme =====
fatal-errors=0 benign(SSE)=0 warnings=0
[UC2-theme] log: API key from URL (updating storage): uitest...
[UC2-theme] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC2-theme] log: API request to /api/v1/tools with API key: uitest...
[UC2-theme] log: API request to /api/v1/secrets/config with API key: uitest...
[UC2-theme] log: API request to /api/v1/status with API key: uitest...
[UC2-theme] log: API request to /api/v1/status with API key: uitest...
[UC2-theme] log: API request to /api/v1/onboarding/state succeeded
[UC2-theme] log: API request to /api/v1/tools succeeded
[UC2-theme] log: API request to /api/v1/secrets/config succeeded
[UC2-theme] log: API request to /api/v1/status succeeded
[UC2-theme] log: Attempting to connect EventSource...
[UC2-theme] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC2-theme] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC2-theme] log: API request to /api/v1/servers with API key: uitest...
[UC2-theme] log: API request to /api/v1/info with API key: uitest...
[UC2-theme] log: API request to /api/v1/routing with API key: uitest...
[UC2-theme] log: API request to /api/v1/status succeeded
[UC2-theme] log: API request to /api/v1/security/overview with API key: uitest...
[UC2-theme] log: API request to /api/v1/connect with API key: uitest...
[UC2-theme] log: API request to /api/v1/stats/tokens with API key: uitest...
[UC2-theme] log: API request to /api/v1/activity/summary?period=24h with API key: uitest...
[UC2-theme] log: API request to /api/v1/sessions?limit=5 with API key: uitest...
[UC2-theme] log: API request to /api/v1/docker/status with API key: uitest...
[UC2-theme] log: API request to /api/v1/servers with API key: uitest...
[UC2-theme] log: Attempting to connect EventSource...
[UC2-theme] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC2-theme] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC2-theme] log: API request to /api/v1/servers with API key: uitest...
[UC2-theme] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC2-theme] log: API request to /api/v1/info succeeded
[UC2-theme] log: API request to /api/v1/routing succeeded
[UC2-theme] log: API request to /api/v1/servers succeeded
[UC2-theme] log: EventSource connected successfully
[UC2-theme] log: API request to /api/v1/connect succeeded
[UC2-theme] log: API request to /api/v1/stats/tokens succeeded
[UC2-theme] log: API request to /api/v1/activity/summary?period=24h succeeded
[UC2-theme] log: API request to /api/v1/sessions?limit=5 succeeded
[UC2-theme] log: API request to /api/v1/docker/status succeeded
[UC2-theme] log: API request to /api/v1/config with API key: uitest...
[UC2-theme] log: API request to /api/v1/servers succeeded
[UC2-theme] log: API request to /api/v1/servers succeeded
[UC2-theme] log: API request to /api/v1/onboarding/state succeeded
[UC2-theme] log: API request to /api/v1/config succeeded
[UC2-theme] log: API request to /api/v1/security/overview succeeded
[UC2-theme] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707552, finalRunningValue: true}

===== UC3-add-server =====
fatal-errors=0 benign(SSE)=0 warnings=0
[UC3-add-server] log: API key from URL (updating storage): uitest...
[UC3-add-server] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC3-add-server] log: API request to /api/v1/tools with API key: uitest...
[UC3-add-server] log: API request to /api/v1/secrets/config with API key: uitest...
[UC3-add-server] log: API request to /api/v1/status with API key: uitest...
[UC3-add-server] log: API request to /api/v1/status with API key: uitest...
[UC3-add-server] log: API request to /api/v1/onboarding/state succeeded
[UC3-add-server] log: API request to /api/v1/tools succeeded
[UC3-add-server] log: API request to /api/v1/secrets/config succeeded
[UC3-add-server] log: API request to /api/v1/status succeeded
[UC3-add-server] log: Attempting to connect EventSource...
[UC3-add-server] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC3-add-server] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC3-add-server] log: API request to /api/v1/servers with API key: uitest...
[UC3-add-server] log: API request to /api/v1/info with API key: uitest...
[UC3-add-server] log: API request to /api/v1/routing with API key: uitest...
[UC3-add-server] log: API request to /api/v1/status succeeded
[UC3-add-server] log: API request to /api/v1/security/overview with API key: uitest...
[UC3-add-server] log: API request to /api/v1/connect with API key: uitest...
[UC3-add-server] log: API request to /api/v1/stats/tokens with API key: uitest...
[UC3-add-server] log: API request to /api/v1/activity/summary?period=24h with API key: uitest...
[UC3-add-server] log: API request to /api/v1/sessions?limit=5 with API key: uitest...
[UC3-add-server] log: API request to /api/v1/docker/status with API key: uitest...
[UC3-add-server] log: API request to /api/v1/servers with API key: uitest...
[UC3-add-server] log: Attempting to connect EventSource...
[UC3-add-server] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC3-add-server] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC3-add-server] log: API request to /api/v1/servers with API key: uitest...
[UC3-add-server] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC3-add-server] log: API request to /api/v1/servers succeeded
[UC3-add-server] log: API request to /api/v1/info succeeded
[UC3-add-server] log: API request to /api/v1/routing succeeded
[UC3-add-server] log: EventSource connected successfully
[UC3-add-server] log: API request to /api/v1/connect succeeded
[UC3-add-server] log: API request to /api/v1/stats/tokens succeeded
[UC3-add-server] log: API request to /api/v1/activity/summary?period=24h succeeded
[UC3-add-server] log: API request to /api/v1/sessions?limit=5 succeeded
[UC3-add-server] log: API request to /api/v1/docker/status succeeded
[UC3-add-server] log: API request to /api/v1/config with API key: uitest...
[UC3-add-server] log: API request to /api/v1/servers succeeded
[UC3-add-server] log: API request to /api/v1/servers succeeded
[UC3-add-server] log: API request to /api/v1/onboarding/state succeeded
[UC3-add-server] log: API request to /api/v1/config succeeded
[UC3-add-server] log: API request to /api/v1/security/overview succeeded
[UC3-add-server] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707555, finalRunningValue: true}
[UC3-add-server] log: API request to /api/v1/servers/import/paths with API key: uitest...
[UC3-add-server] log: API request to /api/v1/servers/import/paths succeeded

===== UC4-activity =====
fatal-errors=0 benign(SSE)=0 warnings=0
[UC4-activity] log: API key from URL (updating storage): uitest...
[UC4-activity] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC4-activity] log: API request to /api/v1/tools with API key: uitest...
[UC4-activity] log: API request to /api/v1/secrets/config with API key: uitest...
[UC4-activity] log: API request to /api/v1/status with API key: uitest...
[UC4-activity] log: API request to /api/v1/status with API key: uitest...
[UC4-activity] log: API request to /api/v1/onboarding/state succeeded
[UC4-activity] log: API request to /api/v1/tools succeeded
[UC4-activity] log: API request to /api/v1/secrets/config succeeded
[UC4-activity] log: API request to /api/v1/status succeeded
[UC4-activity] log: Attempting to connect EventSource...
[UC4-activity] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC4-activity] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC4-activity] log: API request to /api/v1/servers with API key: uitest...
[UC4-activity] log: API request to /api/v1/info with API key: uitest...
[UC4-activity] log: API request to /api/v1/routing with API key: uitest...
[UC4-activity] log: API request to /api/v1/status succeeded
[UC4-activity] log: API request to /api/v1/servers succeeded
[UC4-activity] log: EventSource connected successfully
[UC4-activity] log: API request to /api/v1/info succeeded
[UC4-activity] log: API request to /api/v1/routing succeeded
[UC4-activity] log: API request to /api/v1/activity?limit=200 with API key: uitest...
[UC4-activity] log: API request to /api/v1/activity/summary?period=24h with API key: uitest...
[UC4-activity] log: API request to /api/v1/activity?limit=200 succeeded
[UC4-activity] log: API request to /api/v1/activity/summary?period=24h succeeded
[UC4-activity] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707557, finalRunningValue: true}

===== UC5-settings-toggle =====
fatal-errors=0 benign(SSE)=0 warnings=0
[UC5-settings-toggle] log: API key from URL (updating storage): uitest...
[UC5-settings-toggle] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC5-settings-toggle] log: API request to /api/v1/tools with API key: uitest...
[UC5-settings-toggle] log: API request to /api/v1/secrets/config with API key: uitest...
[UC5-settings-toggle] log: API request to /api/v1/status with API key: uitest...
[UC5-settings-toggle] log: API request to /api/v1/status with API key: uitest...
[UC5-settings-toggle] log: API request to /api/v1/onboarding/state succeeded
[UC5-settings-toggle] log: API request to /api/v1/tools succeeded
[UC5-settings-toggle] log: API request to /api/v1/secrets/config succeeded
[UC5-settings-toggle] log: API request to /api/v1/status succeeded
[UC5-settings-toggle] log: Attempting to connect EventSource...
[UC5-settings-toggle] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC5-settings-toggle] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC5-settings-toggle] log: API request to /api/v1/servers with API key: uitest...
[UC5-settings-toggle] log: API request to /api/v1/info with API key: uitest...
[UC5-settings-toggle] log: API request to /api/v1/routing with API key: uitest...
[UC5-settings-toggle] log: API request to /api/v1/status succeeded
[UC5-settings-toggle] log: API request to /api/v1/servers succeeded
[UC5-settings-toggle] log: EventSource connected successfully
[UC5-settings-toggle] log: API request to /api/v1/info succeeded
[UC5-settings-toggle] log: API request to /api/v1/routing succeeded
[UC5-settings-toggle] log: API request to /api/v1/config with API key: uitest...
[UC5-settings-toggle] log: API request to /api/v1/config succeeded
[UC5-settings-toggle] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707559, finalRunningValue: true}
[UC5-settings-toggle] log: API request to /api/v1/servers/import/paths with API key: uitest...
[UC5-settings-toggle] log: API request to /api/v1/servers/import/paths succeeded

===== UC6-server-detail =====
fatal-errors=0 benign(SSE)=0 warnings=0
[UC6-server-detail] log: API key from URL (updating storage): uitest...
[UC6-server-detail] log: API request to /api/v1/onboarding/state with API key: uitest...
[UC6-server-detail] log: API request to /api/v1/tools with API key: uitest...
[UC6-server-detail] log: API request to /api/v1/secrets/config with API key: uitest...
[UC6-server-detail] log: API request to /api/v1/status with API key: uitest...
[UC6-server-detail] log: API request to /api/v1/status with API key: uitest...
[UC6-server-detail] log: API request to /api/v1/onboarding/state succeeded
[UC6-server-detail] log: API request to /api/v1/tools succeeded
[UC6-server-detail] log: API request to /api/v1/secrets/config succeeded
[UC6-server-detail] log: API request to /api/v1/status succeeded
[UC6-server-detail] log: Attempting to connect EventSource...
[UC6-server-detail] log: API key status: {hasApiKey: true, apiKeyPreview: uitest...}
[UC6-server-detail] log: Creating EventSource: {hasApiKey: true, apiKeyPreview: uitest..., url: /events?apikey=uitest...}
[UC6-server-detail] log: API request to /api/v1/servers with API key: uitest...
[UC6-server-detail] log: API request to /api/v1/info with API key: uitest...
[UC6-server-detail] log: API request to /api/v1/routing with API key: uitest...
[UC6-server-detail] log: API request to /api/v1/status succeeded
[UC6-server-detail] log: API request to /api/v1/servers succeeded
[UC6-server-detail] log: EventSource connected successfully
[UC6-server-detail] log: API request to /api/v1/info succeeded
[UC6-server-detail] log: API request to /api/v1/routing succeeded
[UC6-server-detail] log: API request to /api/v1/security/overview with API key: uitest...
[UC6-server-detail] log: SSE Status Event Update: {topLevelRunning: true, nestedStatusRunning: true, listen_addr: 127.0.0.1:18093, timestamp: 1779707561, finalRunningValue: true}
[UC6-server-detail] log: API request to /api/v1/security/overview succeeded
uc1-nav-activity.png
uc1-nav-dashboard.png
uc1-nav-repositories.png
uc1-nav-search.png
uc1-nav-secrets.png
uc1-nav-security.png
uc1-nav-servers.png
uc1-nav-settings.png
uc1-nav-tokens.png
uc1-nav-tools.png
uc2-theme-dark.png
uc2-theme-light.png
uc2-theme-synthwave.png
uc3-add-server-modal.png
uc4-activity.png
uc5-settings.png
uc5-toggle-flipped.png
uc6-servers.png

Verdict

The four major upgrades build clean on Node 24, embed into both the personal and server Go editions, and pass the full Vitest suite. A 9-view Playwright sweep plus QA use-case scripts confirm the UI renders and behaves on par with the pre-migration build, with the single documented DaisyUI-v5 palette refresh. Ready to ship.