feat(tui-go): transcript free-scroll + help overlay + event filter
Three TUI-polish items. - OUTPUT free-scroll: PgUp/PgDn (and ^u/^d half-page) scroll the transcript back through history; esc snaps to tail-follow. outputScroll is clamped against outputViewport(), which mirrors View/renderMain geometry, so the edges land exactly (no dead presses unwinding an overshoot). routerRows split into buildTranscriptRows (full render) + windowing so the handler measures the same content. Tests cover the clamp + the fits-in-panel no-op. - Help overlay: `?` (or the "help" palette command) opens a keybinding cheat-sheet grouped by context (session / overlays / approval band) — the non-palette keys especially. Any key dismisses it. - Event-inspector filter: `/` filters the event list by a case-insensitive substring of type/detail (currentEvents applies it); `c` clears, esc stops editing then closes. Fresh per open. EVENTS side panel stays unfiltered. go build / vet / test green; rendered help + filtered inspector via cmd/preview (help, events-filter kinds). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -61,6 +61,7 @@ const (
|
||||
OverlayStatusbar
|
||||
OverlayGrants
|
||||
OverlayGrantScope
|
||||
OverlayHelp
|
||||
)
|
||||
|
||||
// RouterEntry is one line in a session's conversation transcript.
|
||||
@@ -327,6 +328,15 @@ type Model struct {
|
||||
// the OUTPUT transcript; they always stay in the EVENTS panel. Persisted in tui-prefs.json.
|
||||
actionsHidden bool
|
||||
|
||||
// outputScroll is how many rows up from the bottom the OUTPUT transcript is scrolled
|
||||
// (0 = tail-follow the newest output). PgUp/PgDn + ctrl+u/d move it; esc snaps back.
|
||||
outputScroll int
|
||||
|
||||
// event-inspector filter (OverlayEventInspector): narrows the event list by a substring
|
||||
// of type/detail. eventFilterTyping is true while the operator is editing the query after /.
|
||||
eventFilter string
|
||||
eventFilterTyping bool
|
||||
|
||||
// standing grants (OverlayGrants) — active PROJECT/GLOBAL grants from the grant.list reply.
|
||||
grants []protocol.GrantDto
|
||||
grantsLoading bool
|
||||
|
||||
Reference in New Issue
Block a user