# Comment timeline

> The Comments card of a unit panel, the operator comments of the unit's active run, with the add, rewrite and delete conduct.

The **Comment timeline** shows the operator comments of a unit's active run, oldest
first, each with its timestamp and the phase it was recorded in, plus an add box at the
foot (see [Runs and comments](process-runs) for what a comment records). A comment is part
of the run record and can leave the station again in a report, so the timeline also
carries the two gestures that keep that record honest: rewriting a line where it stands,
and removing it.

It is the Comments card of the [unit panel](view-unit-panels), not a component: the panel
draws it for its own unit wherever the model's [Panels](process-panels) keep that card on.
It is never placed on a screen, and the dashboard's Add palette does not offer it. There is
nothing to configure: the unit is the whole binding, and the panel supplies it.

## What the header says {#what-the-header-says}

The header states what the timeline is reading, and on the unit panel it is the card's own
head: `Comments · <run name>` during an active run, `Comments · no active run` while the
unit is idle (the list is then empty), and `Comments (unavailable)` where the Process
service is not running. Post-run notes are added from [Histories](histories), not from
this timeline.

The list refreshes from the run file on a throttle (about every three seconds, and
immediately when the run changes). A gesture the operator has open (a rewrite in
progress, an armed removal) holds the refresh so the line is not rewritten under his
hand; a run change is not held, because the run those gestures belonged to is gone.

## Adding a comment {#adding-a-comment}

Type into the add box and press **Add**. The button is enabled only while there is an
active run, the operator is permitted, and the draft is not blank. The comment is
recorded under the signed-in operator (or the station when nobody is signed in), because
a note is evidence too. A failure lands on the timeline's own answer line.

## Rewriting a comment {#rewriting-a-comment}

**Edit** opens the line in place, on the text as recorded. **Save** (or Enter) commits;
**Cancel** (or Escape) leaves the record as it was. A blank or unchanged text leaves the
record alone; a real rewrite stamps the edit and persists it. This is the same commit the
Histories grid applies to post-run comments.

## Deleting a comment {#deleting-a-comment}

Removing takes two presses, both in the line itself: an operating panel has no second
surface to open a dialog on, and a removed comment does not come back:

1. **Delete** arms the row. Nothing leaves the run file yet; the row asks
   `Delete this comment? This cannot be undone.`
2. The confirming **Delete** beside that question removes the comment. **Cancel** keeps
   it.

Arming one line disarms any other open gesture: a line asking to be removed is not also
being rewritten.

## Permission {#permission}

All three gestures take the **Run procedures** permission, on the Process page and on the
View page alike, rechecked at the moment of the write, never only when the panel was drawn. While the operator may not write, the timeline stays
readable, the add box and the gestures are disabled, and each disabled control's tooltip
carries the reason.
