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.