V1 Web PWA · Surface walkthrough

Studio · Yemaya · UI

A per-surface walkthrough of the V1 Web PWA studio surface: layout, states, interactions, data, and cross-references.

walked
8sections2 minread

On this page

Context. surface studio · domain yemaya · route /studio/yemaya/ui · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/yemaya/ui/page.tsx

Last walked. 2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data (2xx), console/page-errors, expected content, screenshot verified; live screen-reader, touch, offline, and telemetry-delivery checks pending a manual AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body re-derived 2026-06-03 from current source (lane-console architecture)

Purpose#

Aggregator workspace that composes two sibling Yemaya lanes — Studio Web and Studio Desktop — under one shell, with a Capability Summary heading the page. The page performs no /v1 fetch; each embedded lane runs its own console (and the Studio Desktop lane is itself an aggregator).

Entry points#

  • Studio index quick-actions.
  • Breadcrumb chain on this page: Studio › Yemaya Studio Web › UI.
  • Direct URL / bookmark (signed-in + studio entitlement).

Layout regions#

page.tsx renders ShellLayout active="studio" and:

  • Breadcrumbs panel (data-yemaya-ui-breadcrumbs): Studio › Yemaya Studio Web › UI (current aria-current="page").
  • Workspace panel (StudioYemayaUiWorkspace, data-yemaya-ui-workspace):
    • <h1> "Yemaya UI Workspace".
    • Summary <p data-yemaya-ui-summary>.
    • Capability Summary (data-yemaya-ui-capability-summary, <h2>): four data-yemaya-ui-capability cards — UI Control Plane, Web and Desktop Orchestration, Collaboration and Runtime Observability, Security and Parity.
    • Studio Web Lane (data-yemaya-ui-studio-web-lane, <h2>) — embeds StudioYemayaStudioWebWorkspace.
    • Studio Desktop Lane (data-yemaya-ui-studio-desktop-lane, <h2>) — embeds StudioYemayaStudioDesktopWorkspace (itself an aggregator — see studio-yemaya-studio-desktop.md).
  • Route Map panel (data-yemaya-ui-route-map): <h2> "Route Map" with six entries.
  • Quick-action panel: four quickAction links.

States#

The aggregator renders unconditionally; each embedded lane owns its own states:

Interactions#

Capability cards (non-interactive)#

  • UI Control Plane / Web and Desktop Orchestration / Collaboration and Runtime Observability / Security and Parity (data-yemaya-ui-capability articles).

Embedded lanes#

  • Studio Web Lane / Studio Desktop Lane — see their per-view walkthroughs.

Route map#

data-yemaya-ui-route-map — six entries:

  • /studio/yemaya/ui
  • /studio/yemaya/ui/web/[workspaceId]
  • /studio/yemaya/ui/desktop/[workspaceId]
  • /studio/yemaya/ui/collaboration/[sessionId]
  • /studio/yemaya/ui/parity/[parityId]
  • /studio/yemaya/ui/governance/[policyId]

Quick actions#

  • "Open Yemaya Studio Web workspace"/studio/yemaya/studio-web.
  • "Open Yemaya Studio Desktop workspace"/studio/yemaya/studio-desktop.
  • "Open Yemaya Project Workspaces workspace"/studio/yemaya/project-workspaces.
  • "Back to Studio workspace index"/studio.

Data & contracts#

  • Reads: none at the page boundary; reads happen inside each embedded lane.
  • Writes: none at the page boundary; the embedded lanes own their POSTs.
  • Realtime: None.
  • Caching: aggregator delegates to embedded lanes.
  • Auth/role check: admin-scoped, fail-closed inside each lane; route additionally signed-in + studio via the proxy gate.

Cross-references#

  • Workspace source: apps/oshun/web/src/components/studio/StudioYemayaUiWorkspace.tsx
  • Route map source: apps/oshun/web/src/components/studio/StudioYemayaUiRouteMap.ts
  • Page source: apps/oshun/web/src/app/studio/yemaya/ui/page.tsx
  • Embedded lanes:
    • apps/oshun/web/src/components/studio/StudioYemayaStudioWebWorkspace.tsx
    • apps/oshun/web/src/components/studio/StudioYemayaStudioDesktopWorkspace.tsx
  • Studio overview: studio-overview.md
  • Feature spec: V1/features.md

Open questions / known gaps#

  • The Studio Desktop lane is itself an aggregator embedding three more lanes, so the UI page nests three levels deep; confirm the nesting depth is intentional for time-to-interactive.
  • Route-map children (web/desktop/collaboration/parity/governance) are a sitemap contract; confirm which dynamic pages exist.