@@ -32,6 +32,7 @@ type statusView struct {
3232 Mantra string
3333 Ctx ctxUsage // used, limit, exact
3434 Alert string // the newest unread notification, projected (§4)
35+ LastAt time.Time // when this conversation last moved; verbose only (§5)
3536 Verbose bool
3637}
3738
@@ -53,15 +54,24 @@ is not: 40/60/80/120 columns × {plain, drawer open, alert, verbose, no mantra}.
5354 transcript loses a line.
5455- **Verbose** wraps both sides, truncates each FIELD rather than the line, and
5556 **a wrapped row carries no `·`**: the separator joins fields on a row, it does
56- not dangle at a break.
57+ not dangle at a break. `LastAt` joins the RIGHT group, beside the context
58+ figure — both are facts about the conversation rather than about the mode.
5759- **Shedding is replaced by wrapping.** The rank ladder exists only because
5860 everything had to fit on one row. The mantra is the last thing to go.
5961
60- **Leaving the bar: `cost` and the clock.** The spec says "only input
62+ **Leaving the default bar: `cost` and the clock.** The spec says "only input
6163window/output window by default (plus percentage)". Cost moves to the `!` panel
6264with the cache buckets it is meaningless without. This is the one subtraction a
6365reader notices on day one, so it is stated rather than discovered.
6466
67+ **But a time comes back under verbose, and it is a different time.** An earlier
68+ draft of this plan said "the clock belongs nowhere — every terminal already has
69+ one", and that was right about the wrong clock. `startedAt` answers "when did I
70+ open this", which nothing depends on. **`LastAt` answers "is this conversation
71+ stale?"** — and nothing else on the screen answers it, because a pager sitting
72+ on a finished turn looks identical whether that turn ended nine seconds or nine
73+ hours ago. See §5.
74+
6575## 2. One owner for "what is open"
6676
6777Keyboard behaviour and visible identity are **different axes** — `help`,
@@ -198,7 +208,23 @@ alternative sink; nvim-style levels with timeouts.
198208## 5. Verbose (`^V`), and the paste it must not eat
199209
200210`^O` (verbose tool output) is a different axis and stays. `^V` toggles **the
201- bar's verbosity**: state names, `system.model`, and the hint row.
211+ bar's verbosity**: state names, `system.model`, the hint row, and the time of
212+ the **last interaction**.
213+
214+ **`LastAt` is a full datetime, `01/02/06 15:04:05`** — `08/28/26 12:47:31`, not
215+ a bare wall clock and not a relative "3m ago". A date because the question it
216+ answers is "is this stale", which a time alone cannot answer once a pager has
217+ been open across midnight; and absolute rather than relative because a relative
218+ string is only true at the instant it is painted, which would drag this field
219+ into the liveness problem below for no gain.
220+
221+ **It is the newest message's timestamp in either direction** — the turn's `At`,
222+ or the newest node's — not the session's start and not the last thing the USER
223+ typed: what a reader wants to know is when the conversation last moved, and an
224+ agent working alone for an hour is a conversation that is moving.
225+
226+ **No ticker.** Unlike the alert (§4), this changes only when something arrives,
227+ and everything that makes it change already repaints the bar.
202228
203229- **`ui.status_verbose` in `config.toml` seeds it**; `^V` overrides for the
204230 session. Both paths tested — the spec asks for a configurable default and it
@@ -245,6 +271,8 @@ Each step ships alone; none changes what the pager can do.
245271 a typo; `?` switches to help mode from everywhere except the command box.
2462725. **Notifications are transient in the bar** (§4): first left slot,
247273 `ui.notice_ttl` default 10s, displaced by the next one.
274+ 6. **Verbose shows the last interaction** (§5) as `01/02/06 15:04:05`. It
275+ replaces the session-start clock, which the default bar drops.
248276
249277*(Nothing is open. The two questions this plan carried — search's identity and
250278how help stays reachable — were answered by Gluck on 2026-08-28 and are folded
0 commit comments