The whole journal, newest-first, with the cursor and the ring's bound on it — the list half of
the list+item pair /sessions + /sessions/{id} already establishes.
A singleton, and the cardinality is right: one console has exactly ONE journal, and its ORDER
is part of the fact, so the ring belongs in one row the way a per-input array never would. The
per-entry facts are NOT copied up — they live on /history/entries/{id} and this row carries
only the summary a list renders from (2026-09-01-undo-history.md §6).
The whole journal, newest-first, with the cursor and the ring's bound on it — the list half of the list+item pair
/sessions+/sessions/{id}already establishes.A singleton, and the cardinality is right: one console has exactly ONE journal, and its ORDER is part of the fact, so the ring belongs in one row the way a per-input array never would. The per-entry facts are NOT copied up — they live on
/history/entries/{id}and this row carries only the summary a list renders from (2026-09-01-undo-history.md§6).