Context. surface studio · domain isis · route /studio/isis/image-generation · auth signed-in + studio entitlement (segment not in AAA_ONLY_STUDIO_ROUTES — renders as-is) · source apps/oshun/web/src/app/studio/isis/image-generation/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 over the shared generation manifest. It reads the
generation-type manifest (input/output requirements, output-package rules,
image-specific controls such as negative prompts) and lets the operator check
whether a candidate output type is compatible with the image-generation
contract. Reads via /v1/admin/isis/generation-manifest and checks via its
/check-output verb; admin-scoped and fail-closed.
Entry points#
- Sibling quick-action from
/studio/isis/generation-mode-coverage - 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-image-generation-workspace):<h1>(WorkspaceHeading) "Isis Image Generation Workspace"- Summary paragraph (
data-isis-image-generation-summary) - Manifest (
data-image-gen-manifest) with image controls (data-image-gen-image-controls,data-image-gen-negative,data-image-gen-requires-prompt,data-image-gen-requires-input,data-image-gen-output-rule) - Compatibility check form (
data-image-gen-check-form) + result (data-image-gen-compatible)
- Route Map panel (
data-isis-image-generation-route-map):<h2>Route Map</h2>over the route map (5 entries) - Sibling quick-actions panel:
/studio/isis/generation-mode-coverage,/studio
States#
- Loading —
data-image-gen-loading - Unauthorized — 401/403 admin-scope fail-closed;
data-image-gen-unauthorized - Error — non-OK / malformed;
data-image-gen-error - Ready (manifest + form) — manifest + check form render
- Result —
data-image-gen-compatible; check failure →data-image-gen-check-error
Interactions#
Compatibility check form (data-image-gen-check-form)#
- Output type (
data-image-gen-field-output,<select>) - Check compatibility (
data-image-gen-check-submit, submit; disabled while checking) —POST /v1/admin/isis/generation-manifest/check-output
Route Map#
- Route-map articles ×5
Sibling quick-actions#
- Open Isis Generation Mode Coverage workspace →
/studio/isis/generation-mode-coverage - Back to Studio workspace index →
/studio
Data & contracts#
- Reads:
GET /v1/admin/isis/generation-manifest(generation-type manifest) - Writes:
POST /v1/admin/isis/generation-manifest/check-output(validate an output type against the contract) - 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/StudioIsisImageGenerationWorkspace.tsxapps/oshun/web/src/components/studio/StudioIsisImageGenerationRouteMap.ts
Cross-references#
- Studio overview:
../../studio-overview.md - Shares the manifest endpoint with:
studio-isis-text-to-audio.md - Sibling routes:
Open questions / known gaps#
- No breadcrumb on this route — navigation via sibling quick-actions
- Reads the shared
/v1/admin/isis/generation-manifest(same endpoint as Text-to-Audio) filtered to the image contract - Route-map sub-paths are declared but not yet implemented as separate pages