Repository navigation
Conversation
- A compact rail of ticks pinned inside the conversation's trailing edge, one tick per user turn. The cursor swells the tick under it like a wind chime and opens a card with that turn's prompt; clicking a tick jumps to the turn. - The rail is inert apart from the ticks, so it never blocks selecting or clicking the transcript underneath, and it keeps long sessions compact by shrinking the gap first, then the row height. - Horizontal layout is logical only (inset-inline-end, padding-inline, flex-end), so RTL mirrors the rail without extra rules; the component positions the rail and the card vertically. - e2e: packages/app/e2e/regression/session-outline.spec.ts covers the rail's position, one tick per turn and the hover card.
|
This PR doesn't fully meet our contributing guidelines and PR template. What needs to be fixed:
Please edit this PR description to address the above within 72 hours, or it will be automatically closed. If you believe this was flagged incorrectly, please let a maintainer know. |
|
The following comment was made by an LLM, it may be inaccurate: |
|
Thanks for putting this together, and for the clear description and screenshot! I think this duplicates #54088, which is still open and adds the same thing to the desktop session view: a rail with one tick per user turn, a preview of the prompt on hover, click to jump, and the current turn highlighted.
If you think #54088 is missing something from your version (the wind-chime hover effect, compressing ticks in very long sessions, RTL mirroring), it would help a lot to review, test or comment there. |
Type of change
What does this PR do?
给会话页面加一条「对话导航条」:在对话区靠书写方向末端的一侧固定一列刻度轨道,每一轮用户消息对应一个刻度。
pointer-events: none,只有刻度接收事件,不会挡住正文的选中与点击;inset-inline-end、padding-inline、flex-end),RTL 会自动镜像;滚动时每帧只有一次 rAF 节流的高度测量(读取[data-message-id]的行区间),且仅在桌面宽度、轮数 ≥ 2 时运行。为什么有用:长会话只能靠滚动找回历史轮次,时间轴又很长;有这条轨道就能一眼看出有多少轮、当前在哪,并一步跳过去。
How did you verify your code works?
packages/app/e2e/regression/session-outline.spec.ts(轨道位置、每轮一个刻度、hover 卡片),本地通过;packages/app跑bun typecheck通过;仓库根的bun run check需要先在这条分支上bun install --frozen-lockfile(本机 node_modules 比 dev 旧),所以以 CI 为准。Screenshots / recordings
(GIF 见下方)
Checklist