Private
Public Access
0
0
Files

1.8 KiB

Specification: Selectable Thinking Monologs

1. Overview

The user currently cannot easily select and copy text from the "agent thinking" monologues (the <thinking> traces) displayed in the Discussion Hub. These traces are rendered using unselectable imgui.text() calls. The goal is to make these monologues interactable by introducing a UI toggle, similar to the existing [Edit]/[Read] toggle for regular discussion entries.

2. Functional Requirements

  • Mode Toggle: Introduce a toggle button (e.g., [Pure] / [Read]) within or adjacent to the "Monologue" collapsible header.
  • "Read" Mode (Default): Retains the current visual rendering (potentially enhanced with markdown_helper if formatting exists, or just standard text wrapping) optimized for reading.
  • "Pure" Mode: Renders the thinking trace content using the render_selectable_label pattern, allowing standard OS-level text selection and copying (Ctrl+C). It should remain read-only.
  • State Persistence: The toggle state (thinking_read_mode) should ideally be stored within the specific discussion entry dictionary to survive UI frame updates, similar to the main entry's read_mode.

3. Non-Functional Requirements

  • Performance: Switching modes should be instantaneous and not block the render loop.
  • Consistency: The toggle UI and text selection behavior must perfectly match the established patterns used for main discussion entries and system logs.

4. Acceptance Criteria

  • The user can expand a "Monologue" section, click a [Pure] button, and highlight/copy the raw text of the thinking trace.
  • Clicking [Read] restores the optimized reading view.
  • The visual layout of the Monologue header remains clean and aligned with the surrounding discussion entries.