# The run list

> The Runs list and its filters, the row anatomy, paging and refreshing, the import control, and deleting one run or a whole sweep.

The left half of the browser is headed **Runs**, with two controls in its head: **Import**
(a `.glab` file recorded elsewhere, [Importing runs](histories-import)) and **Refresh**.
Under it the filter strip, the bulk bar when runs are ticked, one page of 50 runs, most
recent start first, and the pager ("1–50 of 3214", or "No runs"). There is no other sort
order. Selecting a row opens the run on the right and marks the row.

Refresh reloads the page and re-reads the Unit and Responsible choices, so a unit
configured or a user created since the panel opened becomes filterable without leaving the
browser. The list does not refresh on its own: a run recorded while you read another one
appears at the next Refresh, filter change or page step.

## The row {#the-row}

| Element | Meaning |
| --- | --- |
| Run name | The name the run was recorded under: "Procedure · Unit" for a procedure run, "Snapshot · Datalog" or "Evaluate · Evaluation" for a single command. |
| Automation badge | The run was admitted by the unit's automation interface, not a person. |
| Imported badge | The run arrived as a `.glab` file from another installation. |
| Green dot | The run is Running. |
| OK, NOK or Indeterminate badge | The verdict. A run with none carries no verdict, or has not finished. |
| Sub-line | The lifecycle state, then **Interlock** when the unit's external stop signal ended the run, then who started it, then the start instant in the station's format. A narrow column trims the responsible's name; the whole line is in the row's tooltip. |
| Checkbox | Ticks the run for bulk deletion ("Select for deletion"). Drawn only for a role with Manage histories. Greyed for a run that has not finished ("A run that has not finished cannot be deleted.") and on a read-only station. |

## Filters {#filters}

Every filter is a column of the run index, so the strip resolves as one indexed query: no
run file is opened to decide a match, and an archive of years never loads whole. Changing a
filter returns to the first page.

| Filter | Choices | Notes |
| --- | --- | --- |
| Filter runs by name | Free text | A case-insensitive substring of the run name, applied as you type. |
| Verdict | All verdicts, OK, NOK, Indeterminate, No verdict | **No verdict** lists runs that carry none, finished or not. |
| State | All states, Running, Held, Completed, Aborted, Failed | **Running** also lists a run still writing its file (Saving), which has not stopped recording as far as you are concerned. |
| Unit | All units, then one entry per unit as "Model · Unit" | Where the run happened, in model order then unit order. An imported run belongs to no unit and lists only under All units. |
| Responsible | All responsibles, Station, Automation, Agent, then every local user by name | Who started the run. A person is matched by the identity frozen into the run, not by the name: a renamed operator keeps their runs, and a deleted one leaves the choices while their runs still name them. |
| From / To | Calendar days | The earliest and latest run start to list. Both are station-local days; the To day is included whole. |

With no match the list reads "No runs match the filters."; with nothing recorded at all,
"No runs recorded yet."

## Paging {#paging}

Previous page and Next page walk the match a page at a time; the ticked set and the open
run survive a page step. Deleting the tail of the archive moves the position back to the
last page that still exists.

## Deleting runs {#deleting-runs}

Deleting a run takes **Manage histories**. A role without that permission is drawn no
tick, no bulk bar and no **Delete**, so the gesture is absent rather than greyed.

**Delete**, the danger verb at the end of the record's strip, removes the open run and its
file after "Delete 'name'? This removes the run and its file. Documents already published
for it stay in the reports folder. A run that has not finished cannot be deleted." It is
greyed on a read-only station and for a run that is Running, Held or Saving; the service
refuses a run that still owns its source locks with the same rule. The outcome lands in the
action feed ("Deleted · name").

For a sweep, tick runs in the list: a bulk bar appears with "N selected", **Page** (tick
every deletable run on this page), **Clear** (untick every run) and **Delete** (greyed on a
read-only station and while a sweep runs). The ticked set is kept by run identity and
survives paging and refreshing, so a date-filtered sweep can be assembled page by page
before one confirmation ("Permanently delete N recorded runs and their files? Documents
already published for them stay in the reports folder. This cannot be undone.") deletes
it. Each run is deleted on its own, index row and file together, so a
run the runtime still owns is refused individually and the feed reports "Deleted X of Y
runs · Z refused: reason" instead of failing the whole sweep. Deleting a run also removes
its contribution to the unit's productivity. It releases the run's export file name too,
unless a document published for that run is still in the reports folder: the documents stay
there by design and carry that name, so it remains taken while they do, and no later run can
publish over one of them.

## What the list does not do {#what-the-list-does-not-do}

It does not sort by anything but the start instant, does not search inside a run (metadata
values, comments) and does not open two runs at once; a second browser tab is a second
browser with its own selection and filters.
