sql-cli 1.73.1

SQL query tool for CSV/JSON with both interactive TUI and non-interactive CLI modes - perfect for exploration and automation
Documentation
# StateCoordinator Refactoring Progress

## Overview
The StateCoordinator pattern centralizes all state management logic, reducing coupling between the TUI and state components.

## Phase 1 (Completed)
- Created `StateCoordinator` struct in `src/ui/state_coordinator.rs`
- Implemented delegation pattern with static `_with_refs` methods
- Fixed multi-buffer completion issue
- Fixed vim search mode synchronization

### Refactored Methods:
1. **sync_mode** - Synchronizes mode across AppStateContainer, Buffer, and ShadowState
2. **sync_after_buffer_switch** - Updates parser schema when switching buffers  
3. **cancel_search** - Properly clears all search state including vim adapter
4. **complete_search** - Marks search complete while keeping pattern for n/N navigation

## Phase 2 (Completed)
Successfully refactored complex state coordination methods from TUI to StateCoordinator:

### Refactored Methods:
1. **add_dataview_with_refs** - Reduced from 40+ lines to 10 lines
   - Creates and configures buffer
   - Updates viewport manager
   - Syncs navigation state
   
2. **set_sql_query_with_refs** - Centralizes SQL query setup
   - Updates parser schema
   - Sets status message
   - Configures initial mode from config
   
3. **handle_execute_query_with_refs** - Handles special commands
   - Processes :help, :exit, :quit commands
   - Manages mode transitions
   
4. **Navigation methods**:
   - `goto_first_row_with_refs` - Coordinates with vim search
   - `goto_last_row_with_refs` - Updates scroll position
   - `goto_row_with_refs` - Validates bounds and adjusts viewport

## Remaining Candidates for Refactoring

### High Priority (Complex state coordination):
1. **execute_query_v2** - Coordinates query execution results
   - Updates DataView
   - Updates viewport
   - Updates navigation state
   - Calculates column widths
   - Updates status and history

2. **apply_completion** - Handles SQL completion
   - Updates input text
   - Manages cursor position
   - Updates parser state

3. **handle_completion** - Coordinates completion state
   - Generates suggestions
   - Updates completion widget
   - Manages parser context

### Medium Priority (State updates):
1. **update_viewport_with_dataview** - Simple viewport update
2. **update_viewport_manager** - Viewport state management
3. **switch_to_results_mode** - Mode transition logic
4. **update_data_size** - Navigation bounds update

### Low Priority (Simple delegations):
1. Various status message updates
2. Simple mode switches
3. Basic state accessors

## Benefits Achieved
1. **Reduced coupling** - TUI no longer directly manipulates state internals
2. **Centralized logic** - All state synchronization in one place
3. **Easier testing** - State logic can be tested independently
4. **Better maintainability** - Clear separation of concerns
5. **Consistent patterns** - All state updates follow same pattern

## Pattern Established
```rust
// In StateCoordinator:
pub fn method_name_with_refs(
    state_container: &mut AppStateContainer,
    shadow_state: &RefCell<ShadowStateManager>,
    // other dependencies as needed
) -> Result<ReturnType> {
    // All state coordination logic here
}

// In TUI:
pub fn method_name(&mut self) {
    StateCoordinator::method_name_with_refs(
        &mut self.state_container,
        &self.shadow_state,
        // pass other dependencies
    );
}
```

## Next Steps
1. Continue refactoring high-priority methods
2. Consider creating StateCoordinator instance methods for frequently used patterns
3. Eventually remove direct state manipulation from TUI entirely
4. Add comprehensive tests for StateCoordinator methods