# Specification: Selectable Thinking Monologs ## 1. Overview The user currently cannot easily select and copy text from the "agent thinking" monologues (the `` 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.