Admin Cockpit · Surface walkthrough

Isis ops · LoRA training

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/lora-training · auth signed-in (admin) · source apps/oshun/admin/src/app/isis/lora-training/page.tsx

Last walked.

Purpose#

LoRA training queue admin (§24.5): surfaces operator queue, per-run dataset rights attestation, training-run config, progress timeline (sample previews per checkpoint), cost estimate, abort, and the promotion-to-managed-models rehearsal gate. Backed by @isis/lora-training-surface.

Entry points#

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

Layout regions#

Page does NOT wrap in AdminShell. Resolves runs via binding (bindTrainingRunsLoader) and renders <LoraTrainingPanel runs={runs} />:

  • LoraTrainingPanel<main> with 260px aside + detail:
    • Aside / Training queue:
      • State filter<select data-field="stateFilter"> with options all plus each TrainingRunState from TRAINING_RUN_STATES
      • Run list (<ul data-testid="run-list">) — entries with data-run-id, data-run-state; each shows display name, state, rank, cost estimate in cents
    • Detail pane — selected run (data-testid="run-detail"); fields include dataset rights attestation, training config, progress timeline, cost estimate, abort, rehearsal gate (per the file fileoverview; visible source confirms list + selector pattern)

States#

  • Anonymous → global middleware redirects
  • Binding not set → []; queue empty
  • State filter all → all runs shown
  • State filter a specific TrainingRunState → runs filtered by r.state === stateFilter
  • Empty filtered list → selected null
  • Selected run has dataset rights attestation → detail surfaces the attestation block (verify from full source)
  • Selected run is running → progress timeline / abort affordance visible
  • Selected run is completed → promotion-to-managed-models rehearsal gate visible (per the file comment)

Interactions#

  • State filter selectdata-field="stateFilter"
    • Function: sets stateFilter ('all' or TrainingRunState)
  • Run list item (<li role="button" tabIndex={0}>)
    • Function: sets selectedIdx; Enter activates
  • Detail-pane interactions for the selected run (abort, rehearsal-gate advance, attestation review) — discoverable in the full panel source

Data & contracts#

  • Reads: binding() returns readonly TrainingRun[] from @isis/lora-training-surface
  • Writes: per panel (abort, rehearsal-gate progression, promotion) — not visible in the inspected portion; verify in full source
  • Realtime: progress timelines are a natural fit for realtime but the page is server-rendered with a static binding
  • Auth/role check: only the global middleware

Cross-references#

  • Shell: shell/02-routing-layouts.md
  • Sibling Isis routes: isis-model-merging.md, isis-runpod-endpoints.md, isis-civitai-intake.md (intake → training → merging → promotion is the implicit funnel)
  • Related canonical workspace: ../workspaces/content/models.md (model registry is where promoted runs land)
  • Library: @isis/lora-training-surfaceTRAINING_RUN_STATES, TrainingRun, TrainingRunState
  • Component source: apps/oshun/admin/src/app/isis/lora-training/LoraTrainingPanel.tsx

Open questions / known gaps#

  • No session / scope check at the page level
  • bindTrainingRunsLoader module-level mutable state pattern reused across the Isis-ops routes — document the binding strategy
  • Document the rehearsal gate / promotion handoff into /models (the canonical model registry) — relationship not declared in OSHUN_ADMIN_WORKSPACE_RELATIONSHIPS because the Isis routes are outside the canonical IA