V1 Web PWA · Surface walkthrough

Aja Output Retrieval

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 aja · route /studio/aja/output-retrieval · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/aja/output-retrieval/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#

Admin lane console wired to the real @aja/result-aggregation assembly-readiness helpers via /v1/admin/aja/output-retrieval: it reports a job's stage-weighted assembly progress (from collected/used results, conflict resolution, gap-fill counts) and whether the output has reached a terminal, retrievable state.

Entry points#

  • Direct URL/studio/aja/output-retrieval (signed-in + studio entitlement)
  • Sibling quick-actions from this page — Queue Statistics, Back to Studio

Layout regions#

page.tsx mounts ShellLayout with active="studio" and renders three panels.

  • Workspace panel (data-aja-output-retrieval-workspace):
    • <h1> "Aja Output Retrieval Workspace" (via WorkspaceHeading)
    • <p data-aja-output-retrieval-summary> — "Dedicated Output Retrieval route with dense expert-mode controls, progressive disclosure, and canonical route map. The operations lane reports assembly progress and terminal retrieval readiness on the real result-aggregation engine."
    • <h2 data-aja-or-lane-heading> "Retrieval Readiness Operations Lane" wrapping data-aja-or-engine-summary + the readiness form
  • Route Map panel (data-aja-output-retrieval-route-map): <h2> "Route Map"
    • one <article> per STUDIO_AJA_OUTPUT_RETRIEVAL_ROUTE_MAP entry (5 entries)
  • Quick actions panel: .quickAction <Link>s — see Interactions

States#

  • Loadingdata-aja-or-loading "Loading aggregation engine…"
  • Unauthorized — on 401/403, data-aja-or-unauthorized ("Access restricted." + reason, default "Aja workspace scope required to inspect output retrieval.")
  • Error — non-OK / malformed / unreachable → data-aja-or-error
  • Ready (form) — catalog present: data-aja-or-engine-summary + the readiness form
  • Resultdata-aja-or-result data-aja-or-headline (status · N% assembled · retrievable / terminal (not retrievable) / in progress)
  • Validation errordata-aja-or-readiness-error "All counts must be non-negative integers."

Interactions#

Readiness form (data-aja-or-form)#

  • Statusselect data-aja-or-status (options from catalog.statuses)
  • Collectedinput data-aja-or-collected
  • Usedinput data-aja-or-used
  • Conflictsinput data-aja-or-conflicts
  • Resolvedinput data-aja-or-resolved
  • Gap framesinput data-aja-or-gaps
  • Gaps filledinput data-aja-or-filled
  • Check readinessbutton data-aja-or-submit; POST /v1/admin/aja/output-retrieval/readiness with { status, totalResultsCollected, resultsUsed, conflictsDetected, conflictsResolved, totalGapFrames, gapsFilled }{ result: Readiness }

Route Map panel (data-aja-output-retrieval-route-map)#

Non-interactive <article> blocks from STUDIO_AJA_OUTPUT_RETRIEVAL_ROUTE_MAP (5 entries): /studio/aja/output-retrieval plus …/scenes/[sceneId], …/exports/[exportId], …/revisions/[revisionId], …/governance/[policyId].

Quick actions panel#

  • Open Aja Queue Statistics workspace/studio/aja/queue-statistics
  • Back to Studio workspace index/studio

Data & contracts#

  • Reads: GET /v1/admin/aja/output-retrieval (catalog: summary, statuses, stageWeights) on mount via buildBffAuthHeaders(), cache: 'no-store'
  • Writes: POST …/readiness{ result: { status, progress, complete, retrievable } }
  • Realtime: none
  • Caching: client fetch on mount (no-store); SSR shell only
  • Auth: BFF endpoints admin-scoped + fail-closed (401/403 → unauthorized render); the route is signed-in + studio (proxy gate)

Cross-references#

  • Parent: ../../studio-overview.md
  • Component sources:
    • apps/oshun/web/src/components/studio/StudioAjaOutputRetrievalWorkspace.tsx
    • apps/oshun/web/src/components/studio/StudioAjaOutputRetrievalRouteMap.ts
  • Embedded by aggregator: apps/oshun/web/src/components/studio/StudioAjaResultAggregationWorkspace.tsx (Output Retrieval Lane)
  • Sibling from quick-actions: /studio/aja/queue-statistics

Open questions / known gaps#

  • Route-map sub-routes are descriptive only; confirm implementation status
  • Document the exact studio entitlement / proxy gate governing /studio/aja/*