Admin Cockpit · Surface walkthrough

Isis ops · Voice cloning

A per-surface walkthrough of the Admin Cockpit admin surface: layout, states, interactions, data, and cross-references.

drafted
8sections2 minread

On this page

Context. surface admin · domain isis · route /isis/voice-cloning · auth signed-in (admin) · source apps/oshun/admin/src/app/isis/voice-cloning/page.tsx

Last walked.

Purpose#

Voice-cloning workflow admin (§24.7): consent capture with identity verification, sample upload + read-aloud script, naturalness / prosody scoring view, watermark verification, abuse-risk scorecard, multi-party signoff, voice-profile registration, release toggle, revocation cascade. Backed by @iris/voice clone-workflow state machine.

Entry points#

  • Direct URL — /isis/voice-cloning
  • External runbooks / deep links
  • Not in canonical IA — no sidebar entry

Layout regions#

Page does NOT wrap in AdminShell. Resolves records via binding (bindVoiceCloningLoader) and renders <VoiceCloningPanel records={records} />:

  • VoiceCloningPanel<main> with 260px aside + detail:
    • Aside / Workflows:
      • State filter — select with options all plus each CloneWorkflowState from CLONE_WORKFLOW_STATES
      • Workflow list (<ul data-testid="workflow-list">) — each <li role="button" tabIndex={0}> with data-workflow-id, data-workflow-state; shows workflow id + subject id + state
    • Detail pane (data-testid="workflow-detail"):
      • "Select a workflow." prompt when nothing selected
      • When selected: heading <workflowId> — <state>; Consent block (rendered as <dl> when present); signoff records and missingRoles derived from REQUIRED_SIGNOFF_ROLES minus already-provided signoffs

States#

  • Anonymous → global middleware redirects
  • Binding unset → empty records; list empty; "Select a workflow."
  • State filter all → all workflows
  • State filter set → workflows filtered by r.state === filter
  • Selected workflow missing consent → "Consent" block omits the <dl> (verify in full source)
  • Selected workflow has all required signoffs → missingRoles empty; release toggle gate satisfied (presumed)
  • Selected workflow missing one or more REQUIRED_SIGNOFF_ROLES → those roles surface as required next steps

Interactions#

  • State filter selectdata-field="stateFilter"
  • Workflow list item (<li role="button" tabIndex={0}>)
    • Function: sets selectedIdx; Enter activates
  • Detail-pane interactions for the selected workflow — consent capture, sample upload, prosody scoring view, watermark verification, abuse-risk scorecard, signoff add, voice-profile registration, release toggle, revocation cascade (per the panel fileoverview; not all confirmed in inspected portion)

Data & contracts#

  • Reads: binding() returns readonly CloneWorkflowRecord[] from @iris/voice
  • Writes: per panel (consent capture, signoff add, release toggle, revocation cascade) — not visible in inspected portion; verify in full source
  • Realtime: None.
  • Auth/role check: only the global middleware

Cross-references#

  • Shell: shell/02-routing-layouts.md
  • Related canonical workspaces:
    • ../workspaces/safety/trust-safety.md (cloned-voice review queue)
    • ../workspaces/safety/trust-safety-voice-abuse.md (abuse detection / revocation cascade)
    • ../workspaces/content/personas.md (VoiceProfileReviewPanel overlap)
  • Library: @iris/voiceCLONE_WORKFLOW_STATES, REQUIRED_SIGNOFF_ROLES, CloneWorkflowRecord, CloneWorkflowState, SignoffRecord
  • Component source: apps/oshun/admin/src/app/isis/voice-cloning/VoiceCloningPanel.tsx

Open questions / known gaps#

  • No session / scope check at the page level
  • Triple overlap: this page + trust-safety cloned-voice review + personas VoiceProfileReviewPanel. Clarify which surface owns which lifecycle stage
  • REQUIRED_SIGNOFF_ROLES enumeration is not visible in the inspected portion; document the required signoff matrix