Context. surface studio · domain aja · route /studio/aja/quality-presets · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/aja/quality-presets/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#
Leaf lane console that wires the real @aja/motion-quality QA-pipeline config
builders. The operator picks an acceptance preset (default / strict / relaxed)
and a motion category, and the lane resolves the quality thresholds, enabled
checks, critical auto-reject checks, and the borderline review threshold a clip
is graded against.
Entry points#
- Direct URL / bookmark —
/studio/aja/quality-presets. - Studio nav — Domain-bridge studios section of
/studio. - Embedded — appears as the Quality Presets Lane inside
/studio/aja/svc-motion-pipeline. - Sibling quick-action — "Open Aja Per-Stage Configuration workspace"
(
/studio/aja/per-stage-configuration).
Layout regions#
page.tsx renders inside <ShellLayout active="studio">:
- Workspace
<StudioAjaQualityPresetsWorkspace />:<h1>"Aja Quality Presets Workspace" + summary (data-aja-quality-presets-summary).- Capability Summary panel
(
data-aja-quality-presets-capability-summary,<h2>) — static descriptive block. - Quality Preset Operations Lane
(
data-aja-quality-presets-operations-lane,<h2>) — the form; includesdata-aja-qp-kind-summary(catalogsummary).
- Route Map panel (
data-aja-quality-presets-route-map,<h2>"Route Map"): 5STUDIO_AJA_QUALITY_PRESETS_ROUTE_MAPentries — primary, scenes, exports, revisions, governance. - Quick-action lane: two
Link.quickActionanchors. No breadcrumb panel.
States#
The lane fetches GET /v1/admin/aja/quality-presets on mount (and preselects
the first preset + last category).
- Loading —
data-aja-qp-loading"Loading quality presets…". - Unauthorized —
data-aja-qp-unauthorized(401/403; default "Aja workspace scope required to resolve quality presets."). - Error —
data-aja-qp-error. - Ready (form) —
data-aja-qp-form. - Result —
data-aja-qp-resultwithdata-aja-qp-headline,data-aja-qp-thresholds,data-aja-qp-gates,data-aja-qp-checks, anddata-aja-qp-critical. - Validation error —
data-aja-qp-resolve-error(e.g. "Select a preset and category.").
Interactions#
Resolve form (data-aja-qp-form)#
- Preset — select
data-aja-qp-preset(catalogpresets). - Motion category — select
data-aja-qp-category(catalogcategories). - Resolve preset — submit
data-aja-qp-submit; firesPOST /v1/admin/aja/quality-presets/resolvewith{ preset, category }.
Route Map#
- Route entries (5) — non-interactive listing.
Quick-action lane#
- "Open Aja Per-Stage Configuration workspace" →
/studio/aja/per-stage-configuration - "Back to Studio workspace index" →
/studio
Data & contracts#
- Reads:
GET /v1/admin/aja/quality-presets(catalog:kind,summary,presets,categories). - Writes:
POST /v1/admin/aja/quality-presets/resolve→{ name, category, thresholds, autoReject, flagForReview, borderlineThreshold, criticalChecks, enabledBasicChecks, enabledPerceptualChecks, enabledAccuracyChecks }. - Realtime: none.
- Caching: client fetch on mount (
cache: 'no-store'); SSR shell. - Auth/role check: BFF endpoint admin-scoped + fail-closed; route gated signed-in + studio via proxy.
Cross-references#
- Parent:
../../studio-overview.md - Aggregator that embeds this lane:
./studio-aja-svc-motion-pipeline.md - Sibling (quick-action):
./studio-aja-per-stage-configuration.md - Component sources:
apps/oshun/web/src/components/studio/StudioAjaQualityPresetsWorkspace.tsxapps/oshun/web/src/components/studio/StudioAjaQualityPresetsRouteMap.ts
Open questions / known gaps#
- Route Map lists
scenes/exports/revisions/governancechild routes that are not yet implemented as pages.