feat: /ps:logs page scrolling and minimal footer hints with ? keybinds overlay - #96
Merged
Merged
Conversation
378-kaiabot
Bot
force-pushed
the
feat/logs-paging-and-hints
branch
from
August 17, 2026 20:28
21e3480 to
e399188
Compare
378-kaiabot
Bot
force-pushed
the
feat/logs-paging-and-hints
branch
from
August 17, 2026 20:54
e399188 to
41f77be
Compare
Page scrolling: pgup/pgdn move the /ps:logs viewport by a full page and ctrl+u/ctrl+d by half a page, through the same scrollBy anchor path as line scrolling. Footer hints: single-letter shortcuts whose key letter occurs in their word render as the word with the key letter in accent + bold (w wrap -> wrap); other hints keep the classic '<key> <word>' display. When the hint list does not fit the footer, a leading '? more' affordance appears and pressing ? opens a stacked keybinds panel (grouped sections, aligned key/description columns, esc close pill) listing every key; while a search is active the panel prepends a search group. Both overlays dispatch keys through a parseKey action table instead of a matchesKey chain.
378-kaiabot
Bot
force-pushed
the
feat/logs-paging-and-hints
branch
from
August 18, 2026 08:32
41f77be to
31f8b5e
Compare
aliou
marked this pull request as ready for review
August 21, 2026 13:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
Automated pull request by Pi, model
aperture/glm-5.2. Implemented and validated empirically againstaliou/pi-processeson branchfix/log-viewer-dead-scroll(stack topfeat/logs-paging-and-hints). See the local run log for the full investigation.Summary
Two related changes to the
/ps:logsoverlay and/psoverview footers:Page scrolling (/ps:logs overlay has no page up/down (or half-page) keybindings #77) — the logs overlay handled line scrolling (
j/k, arrows) and jump-to-top/bottom (g/G) but PageUp/PageDown and ctrl+u/ctrl+d were no-ops. Confirmed empirically before the fix by running the issue's repro test againstLogOverlayComponent:PAGE_DOWNnever clearedfollowingandPAGE_UPleftL50/50unchanged. Nowpgup/pgdnscroll a full viewport (logRows()) andctrl+u/ctrl+dhalf a viewport, reusing the same anchor write-back as line scrolling so the Dead scroll zone in /ps:logs after jumping to the top —j/kdo nothing for ~a screenful #76 dead-zone fix covers them.Minimal footer hints +
?keybinds overlay — the footers were getting crowded. Hints whose key letter occurs in their word now render as just the word with the key letter in accent + bold:w wrapwrap(bold accentw)f followfollowc clear/s sort/x killclear/sort/killq close,j/k scroll,/ searchWhen the list does not fit the footer width, a leading
? moreaffordance appears; pressing?opens a stacked overlay on top of the overlay (herdr-style keybinds panel: grouped sections, aligned key/description columns, inverseesc closepill). In/ps:logssearch mode the panel prepends asearchgroup (n / N,/,esc) since those keys only exist there.Changes
extensions/processes-logs/components/log-overlay-component.ts— page/half-page scroll handling (Key.pageUp/pageDown,Key.ctrl("u"/"d")); footer renders viarenderShortcutHints;?opens the stacked keybinds panel; panel disposer invoked fromdispose()so a background close (auto-hide, kill) cannot leak it.extensions/processes/components/overview-component.ts— same footer/?treatment for the/psoverview; added the previously-undocumentedg/Gpreview jump to both the footer and the panel.extensions/shared/shortcut-hints.ts— hint rendering (minimal key-in-word form with per-segment state styling forwrap/stdout+stderr, classic form otherwise) and the? morecollapse that keeps the hints that still fit.extensions/shared/shortcuts-overlay.ts— the keybinds panel component andshowShortcutsOverlay(pushes ontotui.showOverlay, centered, width computed from the longest aligned row, clamped 36–72; idempotent disposer)..agents/skills/pi-processes-testing/SKILL.md— manual QA checklist updated with the new keys, the minimal-hint display, and the?panel..changeset/logs-paging-and-hints.md— minor bump.Live QA (herdr)
Driven from a herdr tab running
pi -ne -e .in this repo; the agent started atickerprocess via the process tool (1 line/s, later 0.1 s/s). Runtime-verified: PageUp moves offfollowingto60% L78/131; the footer collapses to? more …on narrow widths;?stacks the keybinds panel over both the logs overlay and/ps;q/escdismiss it.Verification
pnpm typecheck✅pnpm lint✅ (biome, 200 files)pnpm test✅ 638 passed (61 files; +33 tests: page/half-page scrolling incl. clamping, minimal-hint rendering incl. per-segment styling,? morecollapse bounds, panel layout/alignment/dismiss keys, disposer lifecycle in both hosts)Closes #77
Stacked on #95 — merge that first.
Run host:
golden-hugo-lefevre· Session:01a010a1-f8de-7eef-8459-680c1ac2cd9a· Model:aperture/glm-5.2