# Journey: Isis LoRA operations rehearsal

The Admin Cockpit exposes eight Isis routes, but they are not one durable
Civitai→RunPod→training→release pipeline. Seven pages load read projections from
Isis BFF endpoints; the workflow editor loads an approved class and node palette
through its own loader. Most visible decisions and controls then update
component-local state or call pure domain helpers. This journey is an operator
rehearsal across independent projections.

| Route                    | Read surface                             | Current write boundary                 |
| ------------------------ | ---------------------------------------- | -------------------------------------- |
| `/isis/civitai-intake`   | Queue and search candidates              | Local decisions/import requests        |
| `/isis/comfy-nodes`      | Curated node registry                    | Read-only                              |
| `/isis/workflow-editor`  | Approved class and node palette          | Local graph; Promote has no handler    |
| `/isis/runpod-endpoints` | Endpoint, queue, cost, audit projections | Local failover/rotation rehearsal      |
| `/isis/lora-training`    | Training-run projection                  | Abort/Promote have no handlers         |
| `/isis/output-gallery`   | Output/provenance projection             | Local bulk-action model                |
| `/isis/model-merging`    | Components and fixture sets              | Local merge model; Save has no handler |
| `/isis/voice-cloning`    | Clone-workflow projection                | Read-only                              |

## Personas

- **Isis operator** — has an admin session and can enter the Isis workspace.
- **Rights reviewer** — represented by rights/consent fields in the projections;
  no cross-workspace approval handoff is driven here.
- **Infrastructure operator** — rehearses RunPod queue, failover, and secret
  rotation decisions.
- **Model reviewer** — filters gallery outputs and evaluates local action
  eligibility.

## Pre-conditions

- The admin session exists and `sessionCanEnterWorkspace(session, 'isis')`
  passes.
- The seven BFF read endpoints can return their fixture/store projections.
- The workflow editor loader returns an approved workflow class and curated node
  types.
- Operator identity is present when local domain helpers require an auditable
  actor.
- No expectation is made that state selected on one Isis route appears on
  another route.

## Steps

### 1. Review Civitai intake

- [x] `/isis/civitai-intake` loads queue entries, operator id, and search
      candidates from `GET /v1/admin/isis/civitai-intake`.
- [x] The panel groups entries, reveals details, evaluates approve/reject
      decisions, and wraps search/import candidates in intake policy.
- [x] Missing operator identity disables audited controls.
- [x] The UI states that there is no unmanaged provider download.
- [ ] Approve/import changes only panel state through domain helpers; it does
      not POST a durable Civitai intake mutation.

### 2. Inspect nodes and edit a workflow

- [x] `/isis/comfy-nodes` loads a curated registry, hides deprecated nodes by
      default, and names alternatives.
- [x] `/isis/workflow-editor` loads a real approved class and node palette,
      permits local graph edits, and validates disallowed node types and
      guardrails.
- [ ] Graph changes are not saved to a BFF workflow record.
- [ ] **Promote to class** is rendered without an action handler.

### 3. Rehearse RunPod operations

- [x] `/isis/runpod-endpoints` loads endpoints, tenant windows, cost envelopes,
      queue jobs, failover entries, secret rotations, operator id, and reference
      time.
- [x] Health/cost/queue/control tabs expose worst-health sorting, budget
      verdicts, tenant fairness, and audit-ready action models.
- [x] The browser test exercises local failover and secret-rotation controls.
- [x] Missing operator identity disables audited actions.
- [ ] These controls update component-local entries; they do not reserve a GPU,
      fail over a live endpoint, or rotate a provider secret.

### 4. Read LoRA training status

- [x] `/isis/lora-training` loads current runs from
      `GET /v1/admin/isis/lora-training`.
- [x] The panel renders run state and a dataset-rights warning when required
      evidence is missing.
- [ ] There is no form that submits base model, rank, epochs, learning rate, or
      a new training job.
- [ ] Abort and Promote buttons have no handlers; no audit event or downstream
      model mutation follows them.

### 5. Review the output gallery

- [x] `/isis/output-gallery` loads records, authorization, and reference time
      from its BFF read endpoint.
- [x] Filter facets narrow records and selection gates the bulk-action controls.
- [x] Pure action builders model audited actions, undo windows, and required
      takedown reason in component state.
- [x] The browser spec proves the no-selection disabled state.
- [ ] Bulk actions do not write gallery or provenance records to a backend.

### 6. Model a merge

- [x] `/isis/model-merging` loads operator id, candidate components, and
      available fixture sets.
- [x] The panel blocks the local merge/save model until a base and at least two
      components are present, and blocks audited save without operator identity.
- [x] Provenance is computed from the selected component model.
- [ ] **Save as managed model** has no handler; no weights are merged and no
      model-registry record is created.

### 7. Inspect voice-cloning records

- [x] `/isis/voice-cloning` loads clone-workflow records from its BFF read
      endpoint.
- [x] The route is session and Isis-workspace gated and renders an honest empty
      state on loader failure.
- [ ] This surface does not submit a new clone, verify consent in the rights
      workspace, or send an abuse case to Trust & Safety.

### 8. Stop at the boundary between projections

- [x] Each route renders an explicit loader-failure notice or empty projection
      instead of inventing live data.
- [x] Unit coverage exercises the local decision functions, validation, and
      state transitions.
- [ ] No shared job id or durable state threads intake, workflow, RunPod,
      training, gallery, merge, voice, review, and model promotion together.
- [ ] No release package is submitted to `/review` and no model is promoted
      through `/models`.

## Post-conditions

- The operator can inspect all eight Isis projections and rehearse the local
  policies and controls that are implemented.
- Loader failures remain visible and access gates remain fail-closed.
- The browser and component tests establish control anatomy and pure-domain
  behavior, not external provider or training side effects.
- No trained LoRA, RunPod reservation, durable provenance bundle, merged
  weights, release package, or model promotion is claimed.

## Failure modes

- **Missing session** — the page redirects with its own return target.
- **Forbidden Isis workspace** — the page redirects before its loader renders.
- **BFF read failure** — the seven read routes show an alert and an empty
  projection.
- **Operator identity absent** — audited local controls are disabled.
- **Rights warning ignored** — the projection can explain the block but no live
  training submit exists to enforce it.
- **Local action mistaken for provider mutation** — RunPod, intake, gallery, and
  merge interactions do not call write endpoints.
- **Button presence mistaken for workflow** — training Abort/Promote, workflow
  Promote, and merge Save have no handlers.
- **Cross-page continuity assumed** — component-local state does not propagate
  across the eight routes.
- **Unit audit entry mistaken for durable audit** — domain helper output exists
  only in the rendered/local model unless a future route persists it.

## E2E coverage

- [apps/oshun/admin/e2e/isis-phase-24-surfaces.spec.ts](../../apps/oshun/admin/e2e/isis-phase-24-surfaces.spec.ts)
  is one focused browser test covering the RunPod projection and local
  failover/rotation controls, Civitai policy copy, and output-gallery selection
  gate.
- [apps/oshun/admin/src/app/isis/isis-admin-panels.test.tsx](../../apps/oshun/admin/src/app/isis/isis-admin-panels.test.tsx)
  is component/unit coverage for intake, nodes, RunPod, LoRA rights warnings,
  merging, gallery, and workflow-editor validation/local transitions.

Coverage is **shallow in the browser and broad at the component level**. It does
not browser-walk all eight pages and does not prove any provider write, training
run, cross-page state, release review, or production promotion.

## Per-view files touched by this journey

- [isis/isis-civitai-intake.md](../isis/isis-civitai-intake.md)
- [isis/isis-comfy-nodes.md](../isis/isis-comfy-nodes.md)
- [isis/isis-workflow-editor.md](../isis/isis-workflow-editor.md)
- [isis/isis-runpod-endpoints.md](../isis/isis-runpod-endpoints.md)
- [isis/isis-lora-training.md](../isis/isis-lora-training.md)
- [isis/isis-output-gallery.md](../isis/isis-output-gallery.md)
- [isis/isis-model-merging.md](../isis/isis-model-merging.md)
- [isis/isis-voice-cloning.md](../isis/isis-voice-cloning.md)

## Cross-references

- [review-cycle-admin.md](./review-cycle-admin.md) — separate governance review
  journey; no handoff is implemented here.
- [trust-safety-voice-abuse-response.md](./trust-safety-voice-abuse-response.md)
  — separate abuse-response flow.
- [../../WALKTHROUGH/operator/operator-admin-isis-provenance.md](../../WALKTHROUGH/operator/operator-admin-isis-provenance.md)
  — separate PWA provenance inspector.
- [shell/04-workspace-pattern.md](../shell/04-workspace-pattern.md) — admin
  access and loader-failure pattern.
- `apps/oshun/admin/src/app/isis` — the eight page and panel implementations.

## Open questions

- [ ] Which durable command API should own Civitai intake decisions and import
      requests?
- [ ] How will a versioned workflow graph be saved and promoted?
- [ ] Which service owns RunPod reservations, provider mutations, idempotency,
      quota, and cost ceilings?
- [ ] What command creates/cancels a LoRA run and streams progress?
- [ ] Where is an immutable provenance bundle persisted for output and merges?
- [ ] Which review package connects an approved artifact to the model registry?
- [ ] What E2E fixture can safely prove the complete pipeline without invoking
      unmanaged provider downloads?
