History

History

Every bulk classification run is saved automatically — the uploaded file's signals, every row's code and full reasoning, and any operator corrections. History (sidebar, below Classify Bulk) is where you browse, reopen, and manage past runs.

Browsing

Like Reviewed Signals and Plant Collections, History is organized by plant: pick a plant from the left nav (or All plants, pinned at the top, for everything) to see its list of runs — creation date, technology, model, total/ok/errors, status (running, paused, or completed), and whether it ran in supervised mode.

ID and source data

Each run records the ID column chosen at start. The run page shows it next to the run details, or a No ID badge for runs without one (including every run created before this feature). IDs not unique marks a run started despite duplicate or empty IDs.

The signal tables show the ID right after # (or row N when the run has no ID), followed by the output columns ticked at start. Opening a signal shows Source data: the full uploaded row, with the ID highlighted.

Run detail

Clicking a run opens its detail page, with three tabs:

  • Signals — every classified row, exactly as it appeared during the live run. Clicking a row opens the same side panel used during classification — full reasoning, confidence breakdown, and retrieved evidence.
  • Reviewed Signals — only the rows you corrected or annotated during this run.
  • Plant Collection — only the signals saved to the plant's Weaviate collection from this run's "Save to Plant Collection" action.

From the Signals tab's side panel you can still manually correct a code or reclassify with feedback, exactly as during a live run — the same reclassify form, and the correction is saved back into this run's history immediately. A row that failed offers Retry classification instead — see Retrying a failed row.

The columns start at the width of what they hold — a run carrying extra source columns is readable without touching anything. The signals and reviewed tables are otherwise arranged like the one on Classify Bulk — drag a header to move the column, drag its right edge to resize, double-click the edge to fit the contents. See Classification Modes. Each tab scrolls sideways once a column is wider than the page, and the two tables remember their arrangement separately, because their columns differ.

Export format

Changed in 0.21.12: result columns are now prefixed iec_ and come after the source columns.

Columns Content
ID column (original name) only when the run has an ID
iec_row row number within the rows this run classified (1-based); equals the file row number unless a row limit or sampling was used — choose an ID column for reliable reconciliation in that case
source columns every column of the uploaded file, in file order
iec_code, iec_main_sys … iec_cdc the code and its eight fields
iec_confidence, iec_matched, iec_status, iec_error, iec_feedback classification outcome; iec_status is pending for rows not classified yet
iec_existing_code, iec_audit_verdict, iec_recommended_code Comparison mode only
iec_reasoning only when reasoning was requested
iec_id_warning only for runs marked IDs not unique: duplicate or empty per row

If the uploaded file already has a column with one of these names, it keeps its name and the classifier's column gets a numeric suffix (iec_code_1).

The history stores the assembled code, so the eight fields are split out of it when you export. A row whose code is missing or malformed gets eight blank cells rather than a partly-filled guess — in a spreadsheet a half-populated row is indistinguishable from a real one. Note that the data attribute can itself contain dots (mag.f, phsA.cVal.mag.f); it is kept whole, and the common data class is always the last segment.

Resuming a paused or interrupted run

A run is resumable when its status is paused (you clicked Pause on the live Classify Bulk page, or closed the tab mid-run), or when it is still running but hasn't classified every row yet — most reliably because the server restarted before it finished. Both the run list and the run's detail page show a Resume action for a resumable run: a play-icon button in the list's actions column, and a Resume classification button on the detail page.

Clicking either takes you to Classify Bulk (/bulk_classify?resume=<run_id>), which reopens already mid-run — the file, plant, technology and mode you started with, the rows already classified in place with the progress bar where you left it, and a stream that continues from the first signal that has no result yet. This is the live Classify Bulk page, so a supervised run resumes exactly as it would if you'd never left: it still pauses for feedback below the confidence threshold. There's no separate in-page continuation on the History detail page any more — Resume always hands off to Classify Bulk.

Pause is immediate: if a signal is being classified at the moment you press it, that classification is abandoned and the signal is left unclassified — it is simply re-classified when you resume. If the run was paused while a supervised or comparison feedback dialog was open, resuming re-presents that same signal's review before continuing, so nothing is accepted without your review.

A run can only be classified in one place at a time. If you try to resume a run that's already streaming in another tab, the page tells you so instead of starting a second pass over the same rows.

If a run has nothing left to classify, the resume attempt reports that and leaves the run's status untouched.

Deleting a run

The trash icon on the run list deletes a run and cascades to everything it produced: its signal history, the reviewed signals it recorded, and any entries it saved to the plant collection. This cannot be undone.