# Specification: Logging Reorganization and Automated Pruning

## Overview
Currently, `gui_2.py` and the test suites generate a large number of log files in a flat `logs/` directory. These logs accumulate quickly, especially during incremental development and testing. This track aims to organize logs into session-based sub-directories and implement a heuristic-based pruning system to keep the log directory clean while preserving valuable sessions.

## Functional Requirements
1. **Session-Based Organization:**
   - Logs must be stored in sub-directories within `logs/`.
   - Sub-directory naming convention: `YYYYMMDD_HHMMSS[_Label]` (e.g., `20260226_143005_feature_x`).
   - The "Label" should be included if a project or track is active at session start.
2. **Central Registry:**
   - A `logs/log_registry.toml` file will track session metadata, including:
     - Session ID / Path
     - Start Time
     - Whitelist Status (Manual/Auto)
     - Metrics (message count, errors detected, total size).
3. **Automated Pruning Heuristic:**
   - Pruning triggers on application startup (`gui_2.py`).
   - **Target:** Logs older than 24 hours.
   - **Exemption:** Whitelisted logs are never auto-pruned.
   - **Insignificance Criteria:** Non-whitelisted logs under a specific size threshold (heuristic: ~2 KB) or with zero significant interactions will be purged.
4. **Whitelisting System:**
   - **Auto-Whitelisting:** Sessions are marked as "rich" if they meet any of these:
     - Complexity: > 10 messages/interactions.
     - Diagnostics: Contains `ERROR`, `WARNING`, `EXCEPTION`.
     - Major Events: User created a new project or initialized a track.
   - **Manual Whitelisting:** The user can "star" a session via the GUI (persisted in the registry).

## Non-Functional Requirements
- **Performance:** Pruning and registry updates must be asynchronous or extremely fast to avoid delaying app startup.
- **Safety:** Ensure the pruning logic is conservative to prevent accidental data loss of important debug information.

## Acceptance Criteria
- [ ] New logs are created in session-specific folders.
- [ ] The `log_registry.toml` correctly identifies and tracks sessions.
- [ ] On startup, non-whitelisted logs older than 1 day are successfully pruned.
- [ ] Whitelisted logs (due to complexity or errors) remain untouched.
- [ ] (Bonus) The GUI displays a basic list of sessions with their "starred" status.

## Out of Scope
- Migrating the entire backlog of existing flat logs (focus is on new sessions).
- Implementing a full-blown log viewer (basic metadata view only).
