Skip to content

Transcript rail: back to one tick per prompt; long chats scroll the rail - #1049

Merged
wingleeio merged 3 commits into
mainfrom
zeron/scrollable-rail
Oct 25, 2026
Merged

wingleeio merged 3 commits into
mainfrom
zeron/scrollable-rail

Conversation

@wingleeio

@wingleeio wingleeio commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

This replaces #1034's ten-tick rail and hover prompt list. The rail goes back to how it was, one tick per prompt, and a conversation too long for it now scrolls the rail, the way Codex's prompt rail does.

Back to the old rail

  • Every prompt has its own tick at the natural 8px spacing.
  • Hovering a tick widens it and its neighbours and shows a preview card with the prompt and the opening of its reply. Clicking a tick glides the transcript to that prompt.

Scrolling, like Codex

  • Once the ticks don't fit, the rail shows a window onto them: 70% of the space between the titlebar and the composer, at most 640px. Codex uses min(70vh, 40rem).
  • Scroll over the rail to move through the ticks. There's no visible scrollbar, as in Codex. A wheel over the rail never scrolls the transcript behind it, even at the rail's ends.
  • The rail's ends fade while there are more ticks beyond them.
  • The rail follows the prompts on screen: when they change, from reading or jumping, it moves just enough to keep their ticks clear of the fades. It only moves when what's lit changes, so a rail you've scrolled by hand stays put.

Kept from #1034

  • The rail centres between the titlebar and the composer.
  • While the transcript is pinned to the bottom, every prompt on screen lights its tick, not just the one being read.

Screenshots below are offscreen renders from the new rail-fixture example. The conversation has 150 prompts and is pinned to the bottom.

The rail at rest, scrolled to the latest prompts, with the ones on screen lit:

Hovering a tick:

After scrolling over the rail (the transcript didn't move):

After clicking a tick: the transcript jumped and the rail kept the lit prompts in view:

Light theme:

An eight-prompt chat looks exactly like the old rail:

Not ported from Codex: dragging along the rail to scrub through prompts.

Testing

  • cargo test -p zeron-ui --lib rail::tests passes (15), with new tests for the window height and for how far the rail follows.
  • cargo run -p zeron-ui --example rail-fixture --features appshots-fixture -- --capture <dir> renders the screenshots. ZERON_RAIL_PROMPTS sets the length and ZERON_PALETTE_LIGHT=1 switches to the light theme.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

wingleeio and others added 3 commits October 25, 2026 10:12
Reverts #1034's ten-tick rail and hover prompt list. The rail draws every
prompt at its natural spacing again; once the stack outgrows its window
(70% of the band, at most 640px) it scrolls like Codex's prompt rail:
wheel over it, edges fade, and it follows the prompts on screen when those
change. Keeps #1034's band centring and the pinned-to-bottom lighting fix.

Adds the rail-fixture example (offline long chat, --capture films it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: zeronsh[bot] <346184242+zeronsh[bot]@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: zeronsh[bot] <346184242+zeronsh[bot]@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: zeronsh[bot] <346184242+zeronsh[bot]@users.noreply.github.com>
@wingleeio
wingleeio merged commit d460e8f into main Oct 25, 2026
19 of 20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant