1.8 KiB
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_helperif formatting exists, or just standard text wrapping) optimized for reading. - "Pure" Mode: Renders the thinking trace content using the
render_selectable_labelpattern, 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 discussionentrydictionary to survive UI frame updates, similar to the main entry'sread_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.