Skip to content

TPI: Find in the chat transcript #330953

Description

Refs: #330340

Complexity: 3

Authors: Osvaldo Ortega (@osortega)

Create Issue


Context

Ctrl/Cmd+F opens a Find widget over the chat transcript. It is available in the Chat view, chat editors, and the Agents Window chat pane, and searches the whole conversation rather than only what is currently on screen.

Two behaviours are intentional and should not be reported as bugs:

  • Text inside tool pills (for example a terminal command header) is not searchable.
  • Text inside collapsed reasoning ("thinking") is not searchable.

Both are excluded because Find cannot reliably scroll to and highlight them, so counting them would produce results that go nowhere.

Test Steps

  1. Open a chat with a reasonably long conversation and press Ctrl/Cmd+F
    • The Find widget should appear over the transcript with the input focused
    • Repeat in each host: the Chat view, a chat editor (Chat: Open in Editor), and the Agents Window chat pane
    • Press Ctrl/Cmd+F with focus in the composer, and again with focus inside a rendered code block — both should open the same Find widget
    • Open Quick Chat and inline chat and confirm Ctrl/Cmd+F does not open the chat Find widget there
  2. Type a word that appears several times in the conversation
    • The widget should show a match count, and matches should be highlighted
    • The current match should be visually distinct from the other matches
    • Navigate with Enter / Shift+Enter, F3 / Shift+F3, and the up/down buttons in the widget
    • Every step should move the view to the match it lands on, and navigation should wrap at the ends
  3. Search for a word that appears near the very beginning of a long conversation, then navigate to it
    • The transcript should scroll to the match even though it was far off screen
    • If the match is inside a collapsed Completed N steps disclosure, the disclosure should expand and reveal it
  4. Search for a word that appears deep inside a long code block in a response
    • The code block should scroll to the match and highlight it there
  5. Try the Match Case, Whole Word, and Regular Expression toggles
    • Results should change accordingly
    • With regex enabled, type an invalid expression (for example ([) — the widget should show no results without throwing an error
  6. Open Find while a response is still streaming and search for a word the model is actively writing
    • New matches should be picked up as the response grows
    • Navigation should keep working while content arrives
  7. Open two chats side by side (split chat editors, or two Agents Window panes) and open Find in both
    • Each widget should keep its own search text, match count, and highlights
    • F3 should act on the chat that currently has focus, not the other one

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions