sql-cli 1.73.0

SQL query tool for CSV/JSON with both interactive TUI and non-interactive CLI modes - perfect for exploration and automation
Documentation
# Merge Summary - v10 Refactor Branch

## Completed Work

### 1. Fixed Shift-G Navigation Regression ✅
- **Issue**: Shift-G (goto last row) wasn't working in results view
- **Root Cause**: KeyBinding was checking for `KeyCode::Char('G')` without shift modifier
- **Fix**: Changed to `KeyBinding::with_shift(KeyCode::Char('G'))` in `key_dispatcher.rs`
- **Additional Fix**: Skip chord handler for 'G' key to prevent interference
- **Status**: Tested and confirmed working

### 2. Implemented History Protection System ✅
- **Issue**: History data occasionally gets cleared/lost mysteriously
- **Solution**: Created `history_protection.rs` module with:
  - Automatic backups before significant changes
  - Validation rules to prevent suspicious writes
  - Recovery mechanism from backups
  - Protection against empty arrays and massive data loss
- **Testing**: Unit tests pass, integration test confirms protection works
- **Key Features**:
  - Never writes empty history when entries existed
  - Blocks shrinking by more than 50%
  - Creates timestamped backups (keeps last 10)
  - Logs warnings: `[HISTORY WARNING]` and `[HISTORY PROTECTION]`

### 3. Started Widget Extraction Pattern ✅
- **Created**: `HistoryWidget` as first extracted widget
- **Documentation**: 
  - `docs/WIDGET_EXTRACTION_PATTERN.md` - Pattern guide
  - `docs/V10_REFACTOR_STRATEGY.md` - Overall strategy
  - `docs/STATE_MANAGER_INTEGRATION.md` - State management guide
- **Status**: HistoryWidget created but not fully integrated into enhanced_tui yet

### 4. Fixed Release Notes Generation Script ✅
- **Issue**: GitHub Action failing when generating release notes
- **Fix**: Created `generate_release_notes.sh` with proper error handling
- **Improvements**:
  - Handles empty grep results gracefully
  - Uses HEAD instead of HEAD^ for commits
  - Adds dynamic highlights based on changes
  - Fallback content when no categorized commits

## Files Changed

### Modified:
- `src/key_dispatcher.rs` - Fixed Shift-G key binding
- `src/enhanced_tui.rs` - Added chord handler skip for 'G'
- `src/history.rs` - Integrated history protection
- `src/lib.rs` - Added new modules

### Created:
- `src/history_protection.rs` - Protection layer implementation
- `src/history_widget.rs` - Extracted history widget
- `src/state_manager.rs` - State management system
- `docs/WIDGET_EXTRACTION_PATTERN.md`
- `docs/V10_REFACTOR_STRATEGY.md`
- `docs/STATE_MANAGER_INTEGRATION.md`
- `generate_release_notes.sh` - Fixed release script
- `test_protection_manual.md` - Manual testing guide

## Ready to Merge

This branch is ready to merge with:
1. ✅ Shift-G navigation fix tested and working
2. ✅ History protection implemented and tested
3. ✅ Release notes script fixed
4. ✅ Documentation updated

## Next Steps After Merge

1. Complete HistoryWidget integration into enhanced_tui
2. Extract StatsWidget following the pattern
3. Continue with other widget extractions (Debug, Help, Editor, Results)
4. Fully integrate StateManager across all widgets

## Testing Checklist

- [x] Shift-G navigates to last row in results view
- [x] History protection prevents data loss
- [x] Release notes generation works
- [x] Project builds without errors
- [ ] Full interactive testing of history protection (manual test required)

## Branch Commands

```bash
# Commit current work
git add -A
git commit -m "feat: Add history protection and fix Shift-G navigation

- Fix Shift-G (goto last row) regression in results view
- Implement history protection to prevent data loss
- Create backup system for history with automatic recovery
- Start widget extraction with HistoryWidget
- Fix release notes generation script"

# Merge to main
git checkout main
git merge v10-refactor

# Create new branch for continued work
git checkout -b v10-refactor-continued
```