# Implementation Plan: Selectable Thinking Monologs

## Phase 1: UI Implementation
- [x] Task: Update `render_thinking_trace` signature
    - [x] Modify `def render_thinking_trace(app: App, entry: dict, segments: list[dict], entry_index: int, is_standalone: bool = False)` to accept the parent `entry: dict`.
    - [x] Update all calls to `render_thinking_trace` in `src/gui_2.py` (e.g., in `render_discussion_entry` and `render_comms_history_panel`) to pass the appropriate `entry` object. For standalone traces where an entry dictionary might not exist, pass a dummy dict to hold the state.
- [x] Task: Implement the UI Toggle
    - [x] Inside `render_thinking_trace`, below or next to the `imgui.collapsing_header`, add an `imgui.button` that toggles `entry.get("thinking_read_mode", True)`.
- [x] Task: Implement Conditional Rendering
    - [x] If `thinking_read_mode` is `True` (Read mode), use `markdown_helper.render(content)` or `imgui.text_wrapped` for a clean reading view.
    - [x] If `thinking_read_mode` is `False` (Pure mode), use `render_selectable_label(app, f"think_text_...", content, multiline=True, height=-1)` to make the text selectable and copyable.

## Phase 2: Verification
- [x] Task: Verification
    - [x] Verify that thinking traces in the Discussion Hub can be toggled between Pure and Read modes.
    - [x] Verify that text can be selected and copied via Ctrl+C in Pure mode.
    - [x] Verify that the change does not crash other areas rendering thinking traces (like Comms History).
- [x] Task: Conductor - User Manual Verification 'Phase 2: Verification' (Protocol in workflow.md)