# Comments and annotations

> Free notes recorded with a timestamp and an author into the run file, and the markers placed at a time on the datalog chart, with the add, edit and delete gestures of each.

A run file carries two kinds of note. A **comment** is free text recorded with a timestamp
and, when the writing surface named one, an author; an **annotation** is a marker placed at
a time on the datalog chart. Both live in the run file, so a GLAB copy carries them and a
report can print them, and both draw on the chart: a comment written while the run recorded
stands at its own instant, and one written afterwards stands pinned to the end of the plot,
where the run's last sample is. Both sections stand at the foot of the record, and every
write takes Manage histories and a station that accepts writes: on a read-only station the
boxes and the row verbs grey and say "The station is read-only."

A role without that permission is drawn both sections in full and no way to add to
them: no box, no add verb, and no delete on a row.

## Comments {#comments}

A comment written on a run still recording lands on its timeline; one written on a finished
run is flagged **Post-run**. The author is whoever is signed in on the screen that wrote
it, or the station when nobody is; the Author column stays blank for a note recorded by a
surface that named nobody.

| Control | What it does |
| --- | --- |
| The box ("Free note recorded with a timestamp into the run file") and **Add note** | Records the text with the current instant; Enter adds as well. An empty box leaves the verb greyed with "Type the note first: an empty note records nothing.", and the service refuses blank text the same way ("A comment needs some text."). |
| The grid | One row per comment, oldest first: **At**, **Phase** (Run or Post-run), **Author**, **Comment**. |
| The Comment cell | Edits inline and commits when the field is left: a blank or unchanged text leaves the record alone, a real rewrite stamps the edit instant, and a rewrite the station refuses puts the stored text back. |
| The row's delete | Asks first ("Delete comment", quoting the note: "This removes the note from the run file."), because a note is evidence and leaves the run file only once you say so. |

Comments written during the run from a unit's panel, from a dashboard's Comments component
or through the `Commands.Comment` point appear here with the rest ([Runs and
comments](process-runs#the-comments-card)).

## Annotations {#annotations}

| Control | What it does |
| --- | --- |
| **Seconds** | The time of the marker, in seconds from the run's first sample; decimal fractions accepted, written with a point whatever the station's separator. Anything else is refused ("Enter the annotation time in seconds from the run start."). |
| The text box ("Annotation text shown beside the marker") and **Add annotation** | Records the marker; Enter adds as well. An empty text leaves the verb greyed with "Type the annotation text first: a marker with nothing to say marks nothing." |
| The grid | **At** (the absolute instant the seconds resolved to) and **Annotation**. |
| The row's delete | Asks first ("Delete annotation", quoting the text: "This removes the marker from the run file."). |

An annotation needs a run with at least one recorded sample, since the seconds are counted
from the first one; on a run with no rows the verb does nothing. Annotations can be added
to a run still recording as well as to a finished one, and they are what the report's
"Draw the run's chart annotations on it" option prints.
