MeridiansMeridians

Extraction jobs [UI]

Source path: knowledge-base/diagrams/ui/extraction-jobs.md

# Extraction jobs `[UI]`

The surface for turning a corpus into a Domain: a jobs list, a per-job detail with live progress, and a new-job setup. This is the UI over the [extraction-pipeline](../flows/extraction-pipeline.md) — the same runner that onboarding's Build step drives in the background.

```mermaid
flowchart LR
    Route["/extraction · /extraction/[id]<br/>(also /extensions, scoped by domain)"] --> Shell

    subgraph Shell["ExtractionShell — route-driven switch"]
        direction TB
        List["**JobsList**<br/>all jobs for this domain + status"]
        Detail["**JobDetail**<br/>model map · streamed output · bounded scene transport · logs"]
        Setup["**NewJobSetup**<br/>pick source → configure → start"]
        List -->|"open /extraction/[id]"| Detail
        List -->|"new"| Setup
        Setup -->|"start → background run"| Detail
    end

    Detail -.->|"onStream / onChunkStream / onChunkDone"| Runner(["extraction-runner<br/>concurrent chunks · incremental persist"])
    Runner -.->|"merge to master branch"| Domain(["canonical Domain"])
```

- **Route segment wins.** `ExtractionShell` opens the job from the `/extraction/[id]` segment (the legacy `?job=` query is a fallback); `/extensions` scopes by domain rather than a job segment.
- **Detail is live and bounded.** The runner streams per-chunk output and done-signals; the detail view reflects concurrent chunk progress and incremental persistence, so a long extraction shows movement and survives a reload. The central model map derives recurrence and provenance in one pass; Overview and World/Fate/System lenses let the operator revisit the extraction in coherent parts, and a selected entry reveals its first supporting scene. Both scene pickers share a bounded window instead of mounting the whole corpus twice.
- **Background by design.** Starting a job returns you to a running detail view — extraction runs in the background (the same path onboarding's Build step uses), so you can leave and return.

**Where it lives:** `src/features/extraction/` — `ExtractionShell.tsx` · `ExtractionJobsList.tsx` · `ExtractionJobDetail.tsx` · `ExtractionNewJobSetup.tsx`. Routes: `src/app/(instance)/{extraction,extensions}/`. The pipeline behind it: [extraction-pipeline](../flows/extraction-pipeline.md).
Open on GitHub

Raw Markdown source