V1 Web PWA · Surface walkthrough

Studio Aja · Distributed Workers

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

walked
8sections3 minread

On this page

Context. surface studio · domain aja · route /studio/aja/distributed-workers · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/aja/distributed-workers/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 five sibling Aja lane consoles into one distributed-execution surface: Distributed Processing, Batch Operations, Batch Inference, Job Lifecycle, and Queue Statistics. It owns no /v1 fetch; live data and controls come from the embedded leaves. The page adds a Capability Summary, a breadcrumb, a Route Map, and a quick-action lane.

Entry points#

  • Direct URL / bookmark/studio/aja/distributed-workers.
  • Studio nav — Domain-bridge studios section of /studio.
  • Breadcrumb parent/studio/aja/distributed-processing.
  • Quick-actions — Distributed Processing, Batch Operations, Batch Inference, Job Lifecycle, Queue Statistics.

Layout regions#

page.tsx renders inside <ShellLayout active="studio">:

  • Breadcrumb panel (data-aja-distributed-workers-breadcrumbs): <nav aria-label="Aja Distributed Workers breadcrumbs">Studio (link) / Aja Distributed Processing (link → /studio/aja/distributed-processing) / Distributed Workers (aria-current="page").
  • Workspace <StudioAjaDistributedWorkersWorkspace />:
    • <h1> "Aja Distributed Workers Workspace" + summary (data-aja-distributed-workers-summary).
    • Capability Summary (data-aja-distributed-workers-capability-summary, <h2>) — 4 cards (data-aja-distributed-workers-capability=<id>): Worker Control Plane, Diagnostics and Trace Observability, Security/Permission/Audit Controls, API Parity and Contract Assurance.
    • Distributed Processing Lane (data-aja-distributed-workers-distributed-processing-lane) → embeds <StudioAjaDistributedProcessingWorkspace />.
    • Batch Operations Lane (data-aja-distributed-workers-batch-operations-lane) → embeds <StudioAjaBatchOperationsWorkspace />.
    • Batch Inference Lane (data-aja-distributed-workers-batch-inference-lane) → embeds <StudioAjaBatchInferenceWorkspace />.
    • Job Lifecycle Lane (data-aja-distributed-workers-job-lifecycle-lane) → embeds <StudioAjaJobLifecycleWorkspace />.
    • Queue Statistics Lane (data-aja-distributed-workers-queue-statistics-lane) → embeds <StudioAjaQueueStatisticsWorkspace />.
  • Route Map panel (data-aja-distributed-workers-route-map, <h2> "Route Map"): 6 STUDIO_AJA_DISTRIBUTED_WORKERS_ROUTE_MAP entries.
  • Quick-action lane: five Link.quickAction anchors (no self-link).

States#

No own data fetch; runtime state is per embedded lane (each leaf runs its own Loading / Unauthorized / Error / Ready lifecycle).

  • Loading — per embedded lane.
  • Unauthorized — per embedded lane (admin-scope 401/403).
  • Error — per embedded lane.
  • Populated — all five lanes render.
  • Empty — N/A; cards and lanes always render.

Interactions#

  • "Studio"/studio
  • "Aja Distributed Processing"/studio/aja/distributed-processing
  • "Distributed Workers"aria-current="page"

Workspace body#

  • Capability cards (4) — non-interactive.
  • Distributed Processing Lane → embeds StudioAjaDistributedProcessingWorkspace.
  • Batch Operations Lane → embeds StudioAjaBatchOperationsWorkspace (see ./studio-aja-batch-operations.md).
  • Batch Inference Lane → embeds StudioAjaBatchInferenceWorkspace.
  • Job Lifecycle Lane → embeds StudioAjaJobLifecycleWorkspace.
  • Queue Statistics Lane → embeds StudioAjaQueueStatisticsWorkspace.

Route Map#

  • Route entries (6) — non-interactive listing.

Quick-action lane#

  • "Open Aja Distributed Processing workspace"/studio/aja/distributed-processing
  • "Open Aja Batch Operations workspace"/studio/aja/batch-operations
  • "Open Aja Batch Inference workspace"/studio/aja/batch-inference
  • "Open Aja Job Lifecycle workspace"/studio/aja/job-lifecycle
  • "Open Aja Queue Statistics workspace"/studio/aja/queue-statistics
  • "Back to Studio workspace index"/studio

Data & contracts#

  • Reads: none at page level — delegated to the embedded leaves (e.g. Batch Operations reads /v1/admin/aja/batch-operations; the other lanes fetch their own catalogs on mount).
  • Writes: none at page level; each leaf fires its own POST verbs.
  • Realtime: none.
  • Caching: client fetch on mount (cache: 'no-store') per leaf; SSR shell.
  • Auth/role check: BFF endpoints admin-scoped + fail-closed per lane; route gated signed-in + studio via proxy.

Cross-references#

Open questions / known gaps#

  • Distributed Processing, Batch Inference, Job Lifecycle, and Queue Statistics lanes are not yet in this walkthrough sweep — link once those files are created.