# Specification: Selectable GUI Text & UX Improvements

## Overview
This track aims to address UI inconveniences by making critical text across the GUI selectable and copyable. This includes discussion history, communication logs, tool outputs, and key metrics. The goal is to provide a standard "Copy to Clipboard" capability via OS-native selection and shortcuts (Ctrl+C).

## Functional Requirements
- **Selectable Text Areas:**
    - **Discussion History:** All messages (User and AI) must be selectable.
    - **Comms Log Payloads:** Raw request and response payloads must be selectable.
    - **Tool Logs & Scripts:** AI-generated scripts and the output of tool executions must be selectable.
    - **AI Settings:** Token usage metrics and other key configuration values must be selectable.
- **Implementation Strategy:**
    - Use `imgui.input_text` with `imgui.InputTextFlags_.read_only` and `imgui.InputTextFlags_.multiline` for large text blocks (e.g., payloads, scripts, discussion content).
    - Use read-only `imgui.input_text` (single-line) for smaller metrics and labels that need to be copyable.
    - Ensure styling (background, borders) is adjusted so these read-only fields look consistent with the existing UI and don't appear as "editable" inputs.
- **Interaction:**
    - Support standard OS-level text selection (click and drag).
    - Support standard "Copy" via context menu (right-click) and keyboard shortcut (Ctrl+C).

## Non-Functional Requirements
- **Performance:** Ensure that wrapping labels in read-only input fields doesn't negatively impact GUI frame rates, especially in large logs.
- **Visual Consistency:** Maintain the "high-density" aesthetic. Read-only input fields should not have distracting focus rings or background colors unless they are being actively interacted with.

## Acceptance Criteria
- [ ] Users can select and copy text from any message in the Discussion History.
- [ ] Users can select and copy raw JSON payloads from the Comms Log.
- [ ] Users can select and copy generated PowerShell scripts from the Tool Logs.
- [ ] Users can select and copy token usage numbers from the AI Settings panel.
- [ ] Ctrl+C correctly copies the selected text to the clipboard.

## Out of Scope
- Implementing a custom text editor within the GUI.
- Adding "Copy" buttons to every single label (prioritizing selection over buttons).
