V1 Web PWA · Surface walkthrough

Isis Music 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/music-generation · auth signed-in + studio entitlement (AAA-gated — music-generation is in AAA_ONLY_STUDIO_ROUTES) · source apps/oshun/web/src/app/studio/isis/music-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 for §24.8 contemplative-tone music guardrails. It lists the per-workflow-class limits on duration, tempo, intensity, and crescendo (plus disallowed-content screening for copyright/melody/voice), then pre-flights a candidate request against those guardrails and returns an admitted/blocked verdict with per-field issues.

Entry points#

  • Sibling quick-action card from /studio/isis/text-to-audio
  • Studio index (/studio)
  • Direct URL / bookmark

Layout regions#

page.tsx mounts ShellLayout active="studio" and three panels (no breadcrumb panel).

  • Workspace panel (data-isis-music-generation-workspace):
    • <h1> "Isis Music Generation Workspace" (WorkspaceHeading)
    • Summary paragraph (data-isis-music-generation-summary)
    • Per-class guardrails table (<h2>) with providers (data-music-providers) and data-music-guardrail={class} rows (data-music-guardrail-max-intensity)
    • The "Pre-flight a request" form (data-music-validate-form)
    • Verdict block (data-music-verdict) with data-music-issue={field} items, or data-music-validate-error
  • Route map panel (data-isis-music-generation-route-map): <h2> "Route Map" enumerating STUDIO_ISIS_MUSIC_GENERATION_ROUTE_MAP
  • Quick-actions panel: quickAction links to /studio/isis/text-to-audio and "Back to Studio workspace index" → /studio

States#

  • Loadingdata-music-loading "Loading music guardrails…"
  • Unauthorizeddata-music-unauthorized (admin-scope fail-closed on 401/403)
  • Errordata-music-error on non-OK / malformed response
  • Ready (form) — guardrail table + pre-flight form render
  • Resultdata-music-verdict (admitted / blocked) or data-music-validate-error

Interactions#

Pre-flight a request (data-music-validate-form)#

  • Workflow classdata-music-field-class select (options from workflowClasses)
  • Duration (s)data-music-field-duration number input
  • Tempo (BPM)data-music-field-tempo number input
  • Mime typedata-music-field-mime text input
  • Intensity curve (comma-separated)data-music-field-intensity text input
  • Promptdata-music-field-prompt text input
  • Validate requestdata-music-validate-submit submit; POSTs to /v1/admin/isis/music-generation/validate

Route map#

  • Route-map articles — non-interactive path + purpose entries

Quick-actions#

  • Open Isis Text to Audio workspace/studio/isis/text-to-audio
  • Back to Studio workspace index/studio

Data & contracts#

  • Reads: GET /v1/admin/isis/music-generation (MUSIC_ENDPOINT) on mount — guardrails + workflowClasses + providers
  • Writes: POST /v1/admin/isis/music-generation/validate (VALIDATE_ENDPOINT) — pre-flight a request
  • Realtime: None
  • Caching: client fetch on mount, cache: 'no-store', buildBffAuthHeaders()
  • Auth: admin-scoped fail-closed (401/403 → unauthorized state); AAA-gated studio route behind the signed-in + studio proxy gate
  • Component sources:
    • apps/oshun/web/src/components/studio/StudioIsisMusicGenerationWorkspace.tsx
    • apps/oshun/web/src/components/studio/StudioIsisMusicGenerationRouteMap.ts

Cross-references#

Open questions / known gaps#

  • This is a pre-flight validator only — it does not enqueue a generation job; confirm the downstream Suno/admit path
  • Disallowed-content screening (copyright/melody/voice) is server-side; the view surfaces blocked verdicts but not the full disallowed-content ruleset