V1 Web PWA · Surface walkthrough

Isis Video Generation

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 isis · route /studio/isis/video-generation · auth signed-in + studio entitlement (NOT AAA-gated — video-generation is not in AAA_ONLY_STUDIO_ROUTES; neither is the sibling ai-video-generation. Both render as-is on the contemplative product) · source apps/oshun/web/src/app/studio/isis/video-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 that surfaces the real @isis/job-envelope generation-type manifest for the text-to-video entry via the shared /v1/admin/isis/generation-manifest route: UI requirements (requires-prompt, image-controls) + output-package rules + an output-package compatibility checker. Generation itself runs on the external provider; this lane documents and validates the contract. It is admin-scoped and fails 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-video-generation-workspace):
    • <h1> (WorkspaceHeading) "Isis Video Generation Workspace"
    • Summary paragraph (data-isis-video-generation-summary)
    • Contract manifest (<h2> "… contract", data-video-gen-manifest) listing data-video-gen-requires-prompt, data-video-gen-image-controls, and the output-package rules (data-video-gen-output-rule=<type>)
    • Output-package compatibility checker (<h2>, data-video-gen-check-form)
  • Route Map panel (data-isis-video-generation-route-map): <h2>Route Map</h2> over STUDIO_ISIS_VIDEO_GENERATION_ROUTE_MAP (5 entries)
  • Sibling quick-actions panel: /studio/isis/image-generation, /studio

States#

  • Loadingdata-video-gen-loading
  • Unauthorized — 401/403 admin-scope fail-closed; data-video-gen-unauthorized
  • Error — non-OK or malformed manifest; data-video-gen-error
  • Ready — manifest present; contract + output rules + checker render
  • Result — after a check POST, data-video-gen-compatible=true|false; check failures surface in data-video-gen-check-error

Interactions#

Output-package compatibility checker (data-video-gen-check-form)#

  • Output package type (data-video-gen-field-output, <select> from the manifest's output-package types)
  • Check output (data-video-gen-check-submit, submit; "Checking…" while in flight) — POST /v1/admin/isis/generation-manifest/check-output

Route Map#

  • Route-map articles ×5

Sibling quick-actions#

  • Open Isis Image Generation workspace/studio/isis/image-generation
  • Back to Studio workspace index/studio

Data & contracts#

  • Reads: GET /v1/admin/isis/generation-manifest (the text-to-video generation-type entry: UI requirements + output-package rules)
  • Writes: POST /v1/admin/isis/generation-manifest/check-output (returns { compatible } for the chosen output-package type)
  • Realtime: none
  • Caching: client fetch on mount, cache: 'no-store', buildBffAuthHeaders()
  • Auth/role check: admin-scoped, fail-closed (401/403); route gated on signed-in + studio entitlement
  • Component sources:
    • apps/oshun/web/src/components/studio/StudioIsisVideoGenerationWorkspace.tsx
    • apps/oshun/web/src/components/studio/StudioIsisVideoGenerationRouteMap.ts

Cross-references#

Open questions / known gaps#

  • No breadcrumb on this route — navigation is via sibling quick-actions
  • This lane documents and validates the text-to-video contract but does not submit a generation job; the actual generation runs on the external provider — confirm where the job is enqueued