# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.7.1] - 2026-03-26

### Fixed
- Status indicator colors now remain visible on the highlighted/selected row instead of being overridden by the selection highlight
- Selected row info text (window/pane counts) switches to white for readability against the highlight background

## [2.7.0] - 2026-03-26

### Added
- **Claude Code hook-based status detection** - Auto-installs hooks into `~/.claude/settings.json` on first launch for reliable, event-driven pane status monitoring
- `tango hooks install`, `tango hooks uninstall`, `tango hooks status` CLI subcommands for manual hook management
- Hook status script at `~/.config/tango/status-hook.sh` writes pane status to `/tmp/tango-status/`
- Falls back to content-based heuristics if hook installation fails

## [2.6.1] - 2026-03-25

### Fixed
- Claude Code panes now show gray (Idle) instead of green (Active) when idle at the input prompt

## [2.6.0] - 2026-03-25

### Added
- **Real-time pane status monitoring** - Colored indicators (●/○/?) show pane status at a glance
  - Yellow ● — Waiting for input (Y/n prompts, interactive menus, Claude Code approval)
  - Red ● — Error detected (build failures, panics, tracebacks, segfaults)
  - Green ● — Active process running
  - Gray ○ — Idle at shell prompt
  - Gray ? — Unknown
- **Command-based classification** - Uses tmux `pane_current_command` for immediate, reliable status detection
- **Bulk pane metadata query** - Single `tmux list-panes -a` call for all pane info
- **Pre-computed aggregation** - Session/window indicators reflect worst child pane status
- **Status toggle** - Press `s` to enable/disable status monitoring
- **Content-based waiting detection** - Detects interactive CLI navigation hints, Y/n prompts, permission requests
- **Error pattern detection** - Catches compiler errors, panics, tracebacks, test failures, segfaults, npm errors

## [2.0.0] - 2025-08-19

### 🎉 Major UI Overhaul

#### Added
- **Modern Ratatui-based TUI** - Complete migration from skim/dialoguer to ratatui framework
- **Claude Code-inspired design** - Professional light theme with warm earth tones
- **Dynamic box sizing** - UI centers in terminal and adapts to content size
- **Split-panel layout** - Session list on left, detailed info on right
- **Real-time session updates** - Live refresh of session information
- **Enhanced modal dialogs** - Clean confirmation and input dialogs
- **Built-in help system** - Press `?` for comprehensive keyboard shortcuts
- **Visual feedback** - Loading states, selection indicators, and status icons

#### Performance
- **6x faster search** - Nucleo fuzzy finder integration (from Helix editor)
- **Async architecture** - Non-blocking operations with Tokio runtime  
- **Better Unicode support** - Proper grapheme cluster handling
- **Lock-free streaming** - Real-time session information updates

#### Dependencies
- Added `ratatui 0.28` - Modern TUI framework
- Added `nucleo 0.5` - High-performance fuzzy matcher
- Added `crossterm 0.27` - Cross-platform terminal backend
- Added `tokio 1.0` - Async runtime with macros
- Added `serde 1.0` - Serialization framework
- Added `toml 0.8` - Configuration file support

#### Removed
- **Removed skim dependency** - Replaced with nucleo for better performance
- **Removed dialoguer dependency** - Replaced with custom ratatui modals
- **Removed old files** - `src/fzf.rs` and `src/session.rs` (obsolete)

### 🎨 User Experience

#### Enhanced
- **Cross-platform consistency** - Works identically in native terminals, SSH, VSCode
- **Better error handling** - Inline notifications and graceful degradation  
- **Improved keyboard navigation** - Intuitive shortcuts with visual feedback
- **Professional appearance** - Clean, modern design inspired by Claude Code

#### Changed  
- **Default theme** - Now uses Claude Code light theme by default
- **Search interface** - Type `/` to enter search mode with real-time filtering
- **Session details** - Comprehensive info panel showing windows, PID, status, creation time

### 🔧 Technical Improvements

#### Architecture
- **Component-based UI** - Modular design with separate components for each UI element
- **Theme system** - Configurable color schemes (light/dark themes available)
- **Layout manager** - Responsive design that adapts to terminal size
- **Event handling** - Proper async event loop with keyboard/mouse support

#### Code Quality
- **Zero compilation warnings** - Clean build with all warnings addressed
- **Comprehensive tests** - All 37 tests passing with new architecture
- **Type safety** - Enhanced error handling and type definitions
- **Documentation** - Complete README overhaul with screenshots and migration guide

### 🚀 Migration from v1.x

#### Breaking Changes
- New keyboard shortcuts layout (see README for details)
- Different search interface (press `/` instead of automatic fuzzy search)
- Light theme by default (dark theme still available)

#### Compatibility
- Same core functionality - attach, kill, rename, create sessions
- Same command-line interface - `tango` command works identically
- Better reliability across different terminal environments

## [1.0.0] - 2024-XX-XX

### Initial Release
- Basic tmux session management with skim-based fuzzy finder
- Terminal user interface with dialoguer prompts
- Core session operations: attach, kill, rename, create
- Cross-platform tmux integration