Skip to content

[FEATURE]: TUI plugin API to paginate transcript / scroll to old message #52436

Open

Description

@1624318455

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

V2 CLI sidebar plugin lists full conversation history (server message.list with type=user) and should jump the main transcript to the clicked message.

What works today:

  • ctx.data.session.message.list() only returns the locally loaded window.
  • Server-side message.list returns full history, so listing is fine.
  • If the message is already rendered, root.findDescendantById + scrollChildIntoView works.

What doesn't work:

  • Messages outside the loaded window have no rendered node, with no plugin API to load them.
  • Programmatic scrollTo(0) / scrollTop = 0 on the transcript ScrollBox does not trigger host upward pagination (verified 8 rounds on 2.0.21, node never materializes).

Ask for either:

  1. A supported way to request older transcript pages from a CLI plugin, or
  2. A V1-style scrollToMessage(messageID) equivalent (@opencode/plugin/tui, sidebar.content slot).

Env: opencode v2.0.21 (npm @opencode/cli), Windows 11, PowerShell 7, @opencode/plugin@2.0.21.

Note: checked #44597 / #44618, those were transcript-only-showing-latest-20-messages bugs. This is a plugin API feature request, not the same.

Activity

  1. changed the title [-][TUI plugin API] Need a way to paginate the transcript / scroll to an old message from a CLI plugin[/-] [+][FEATURE]: TUI plugin API to paginate transcript / scroll to old message[/+] on Oct 3, 2026
  2. github-actions commented on Oct 3, 2026

    @github-actions
    Contributor

    Thanks for updating the issue! It now meets our feature request requirements.

  3. opencodejr commented on Oct 28, 2026

    @opencodejr

    Thanks for the detailed request! You're asking for a TUI plugin API that can jump the session transcript to any message, including ones that aren't loaded yet. That could be a call that loads older pages, or a scrollToMessage(messageID) call that loads and scrolls in one step.

    You're right that a plugin can't do this today. The plugin API for session messages only has list, get, sync and invalidate. The session view can already load older messages and jump to a message internally (its message-navigation keybinds use this), but none of it is exposed to plugins. So a programmatic scrollTo(0) won't load older messages. Maintainers will consider exposing this.

    Related:

  4. englishisnotenglish commented on Nov 8, 2026

    @englishisnotenglish

    we need this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions