Context. surface studio · domain isis · route /studio/isis/generation-mode-coverage · auth signed-in + studio entitlement (segment not in AAA_ONLY_STUDIO_ROUTES — renders as-is) · source apps/oshun/web/src/app/studio/isis/generation-mode-coverage/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); 2026-06-30 addendum: studio-isis-generation-mode-coverage.spec.ts proved the direct route remains hard-blocked by the Studio Isis boundary, then drove the localhost-only lane-bypass route against the real local BFF, including the manifest-backed 18-mode coverage matrix, compatible/incompatible/unknown generation checks, loading/empty/error/malformed/check-network-failure/ unauthorized/anonymous states, route-map articles, sibling quick-actions, and 44px automated hit-target checks for the form controls and quick-actions.
Purpose#
Admin lane console for the generation-type coverage matrix. It reads the
manifest of supported generation types and their output-package modes, and lets
the operator check whether a given generation-type / output-package pair is
covered. Reads and checks via /v1/admin/isis/generation-mode-coverage;
admin-scoped and fail-closed.
Entry points#
- Sibling quick-action from
/studio/isis/image-generation - Studio index (
/studio) - Direct URL / bookmark
Layout regions#
page.tsx mounts <ShellLayout active="studio"> (no breadcrumb panel) and
three panels: the workspace, the Route Map, and sibling quick-actions.
- Header: shell header
- Workspace panel (
data-isis-generation-mode-coverage-workspace):<h1>(WorkspaceHeading) "Isis Generation Mode Coverage Workspace"- Summary paragraph (
data-isis-gmc-summary, withdata-isis-gmc-summary-line) - Coverage matrix (
data-isis-gmc-matrix) - Check form (
data-isis-gmc-check-form) + result (data-isis-gmc-check-result, with modedata-isis-gmc-mode)
- Route Map panel (
data-isis-generation-mode-coverage-route-map):<h2>Route Map</h2>over the route map (5 entries) - Sibling quick-actions panel:
/studio/aja/data-retention(cross-domain),/studio
States#
- Loading —
data-isis-gmc-loading - Unauthorized — 401/403 admin-scope fail-closed;
data-isis-gmc-unauthorized - Error — non-OK / malformed;
data-isis-gmc-error - Ready (matrix + form) — coverage matrix + check form render
- Empty — coverage body with no modes renders zero manifest rows and no fabricated compatibility result
- Result —
data-isis-gmc-check-result; check failure →data-isis-gmc-check-error
Interactions#
Check form (data-isis-gmc-check-form)#
- Generation type (
data-isis-gmc-field-type, input) - Output package (
data-isis-gmc-field-package,<select>) - Check (
data-isis-gmc-check-submit, submit) —POST /v1/admin/isis/generation-mode-coverage/check
Route Map#
- Route-map articles ×5
Sibling quick-actions#
- Open Aja Data Retention workspace →
/studio/aja/data-retention(cross-domain — Aja Studio surface) - Back to Studio workspace index →
/studio
Data & contracts#
- Reads:
GET /v1/admin/isis/generation-mode-coverage(coverage matrix / manifest) - Writes:
POST /v1/admin/isis/generation-mode-coverage/check(resolve coverage for a type/package pair) - Realtime: none
- Caching: client fetch on mount,
cache: 'no-store',buildBffAuthHeaders() - Auth/role check: admin-scoped, fail-closed (401/403); route signed-in + studio entitlement
- Component sources:
apps/oshun/web/src/components/studio/StudioIsisGenerationModeCoverageWorkspace.tsxapps/oshun/web/src/components/studio/StudioIsisGenerationModeCoverageRouteMap.ts
E2E coverage#
apps/oshun/web/e2e/studio-isis-generation-mode-coverage.spec.ts— proves direct/studio/isis/generation-mode-coverageis still hard-blocked by the Studio Isis boundary, then drives the localhost-only?__oshunStudioIsisLaneE2E=1lane bypass in the real Next shell with browser requests forwarded to the real local BFF. Covered paths:- Admin lane-bypass navigation loads the manifest-backed 18-mode coverage
matrix,
image/video/audio/3d/textoutput packages, representativetext-to-image,image-to-image,text-to-3d, andmusic-generationrows, route-map articles, sibling quick-actions, and bearer-authenticated catalog request. - The check form posts live compatibility requests for compatible
text-to-image → image, incompatibletext-to-image → video, and unknowntext-to-hologramcases, proving both result and fail-closed error paths. - Loading, empty catalog, 503 error, malformed catalog, check network failure, non-admin unauthorized, anonymous redirect-before-render, and automated 44px hit-target checks for the input/select/button and quick-actions are asserted.
- Admin lane-bypass navigation loads the manifest-backed 18-mode coverage
matrix,
Cross-references#
- Studio overview:
../../studio-overview.md - Aja sibling:
/studio/aja/data-retention(cross-domain) - Sibling routes:
Open questions / known gaps#
- No breadcrumb on this route — navigation via sibling quick-actions
- Sole sibling quick-action is into the Aja domain rather than another Isis route — confirm intentional cross-domain ownership
- Route-map sub-paths are declared but not yet implemented as separate pages
- Live screen-reader, touch-device, offline/PWA-cache, and telemetry-delivery passes still need a manual or dedicated-device run; automated coverage includes Playwright role/locator checks, explicit 44px hit-target measurements, and the suite-wide axe pass.