Skip to content

UI & MCP Client Integration

The nogoo9 web dashboard ([src/ui/](file:///home/eterna2/github/nogoo9-no-crd/src/ui/)) provides an interactive SPA for workspace management, template browsing, live log streaming, visual theme customization, and workspace access controls.


🤝 Client Authentication & Handshake Rules

Per [MCP Client Rules](file:///home/eterna2/github/nogoo9-no-crd/.agents/rules/mcp-client.md), clients strictly enforce OIDC authentication before completing the MCP handshake:


🧩 Modular Component Architecture (src/ui/components/)

The UI codebase is broken down into clean, single-responsibility subcomponents:

Component / Utility FileDescription & Key Responsibilities
[src/ui/app.tsx](file:///home/eterna2/github/nogoo9-no-crd/src/ui/app.tsx)App root component (Dashboard), top navigation bar, authentication handlers, and tool orchestration.
[src/ui/types.ts](file:///home/eterna2/github/nogoo9-no-crd/src/ui/types.ts)Shared TypeScript interfaces (Workspace, Template, Capabilities, Toast, modal props).
[src/ui/icons.tsx](file:///home/eterna2/github/nogoo9-no-crd/src/ui/icons.tsx)Centralized SVG icon dictionary (I.lock, I.plus, I.trash, I.spark, I.settings, etc.).
[src/ui/utils.ts](file:///home/eterna2/github/nogoo9-no-crd/src/ui/utils.ts)Helper utilities (decodeJwt, checkTemplateAccess, formatRelativeTime, jsonToYaml, applyThemeStyles).
[src/ui/fallback.ts](file:///home/eterna2/github/nogoo9-no-crd/src/ui/fallback.ts)HTTP fallback transport client (initHttpFallback, callServerToolFallback).
[src/ui/components/WorkspaceCard.tsx](file:///home/eterna2/github/nogoo9-no-crd/src/ui/components/WorkspaceCard.tsx)Workspace card component (stats interval polling, status indicators, outdated badges, launching).
[src/ui/components/WorkspaceConsoleView.tsx](file:///home/eterna2/github/nogoo9-no-crd/src/ui/components/WorkspaceConsoleView.tsx)Detailed workspace console (interactive shell, web preview, logs stdout, Pod YAML manifest, APIs table).
[src/ui/components/Modals.tsx](file:///home/eterna2/github/nogoo9-no-crd/src/ui/components/Modals.tsx)Grouped modal dialogs (TokenSettingsModal, SpawnWorkspaceModal, CreateTemplateModal, TemplateSpecModal, LogsViewModal, EventsViewModal, SystemInfoModal, WorkspacePreviewModal).
[src/ui/components/TweaksPanel.tsx](file:///home/eterna2/github/nogoo9-no-crd/src/ui/components/TweaksPanel.tsx)Visual customizer panel (TweaksWidgetPanel) and MeowEasterEgg.

🔒 Template Authorization & Access Indicators

The UI uses checkTemplateAccess in [src/ui/utils.ts](file:///home/eterna2/github/nogoo9-no-crd/src/ui/utils.ts) to evaluate the user's JWT claims against template restrictions:

  • Restricted templates display lock icons, role/scope badges (role:*, scope:*), grayed-out cards, and disabled "Restricted" buttons with tooltip explanations.