Skip to content

Commit ca1ced3

Browse files
author
gluck
committed
plans: verbose shows when the conversation last moved
1 parent 5bd990f commit ca1ced3

1 file changed

Lines changed: 31 additions & 3 deletions

File tree

‎plans/status-bar-and-modes.md‎

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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
6163
window/output window by default (plus percentage)". Cost moves to the `!` panel
6264
with the cache buckets it is meaningless without. This is the one subtraction a
6365
reader 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
6777
Keyboard 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.
246272
5. **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
250278
how help stays reachable — were answered by Gluck on 2026-08-28 and are folded

0 commit comments

Comments
 (0)