Auto-saved at 2025-07-29 14:24:49 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
174 lines
4.6 KiB
Markdown
174 lines
4.6 KiB
Markdown
# Auto-Commit System for Timeshift Project
|
|
|
|
This system automatically saves your work to git to prevent losing changes when Claude gets restarted or when making experimental changes.
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Start Auto-Watch (Recommended)
|
|
```bash
|
|
npm run watch-commit
|
|
```
|
|
This will automatically commit changes every 30 seconds when files are modified.
|
|
|
|
### Manual Commands
|
|
```bash
|
|
# Save current work immediately
|
|
npm run save "Your commit message"
|
|
|
|
# Create a restore point before major changes
|
|
npm run restore-point "Before major refactor"
|
|
|
|
# List all restore points
|
|
./auto-commit.sh list
|
|
|
|
# Clean old restore points (keeps last 10)
|
|
./auto-commit.sh cleanup
|
|
```
|
|
|
|
## 📋 How It Works
|
|
|
|
### Automatic Commits
|
|
- **File Watcher**: Monitors `components/`, `app/`, `lib/`, `styles/` directories
|
|
- **Smart Delay**: Waits 30 seconds after last change before committing
|
|
- **Rate Limiting**: Max 10 commits per hour to avoid spam
|
|
- **File Types**: Watches `.tsx`, `.ts`, `.js`, `.jsx`, `.css`, `.scss`, `.json` files
|
|
|
|
### Restore Points
|
|
- **Branches**: Creates timestamped branches like `restore-point-20250129-143022`
|
|
- **Automatic**: Creates restore points on startup and every 30 minutes
|
|
- **Manual**: Create before risky changes with `npm run restore-point "description"`
|
|
|
|
## 🔧 Features
|
|
|
|
### Auto-Commit Script Features
|
|
✅ Automatic timestamped commits
|
|
✅ Descriptive commit messages
|
|
✅ Rate limiting to prevent spam
|
|
✅ Restore point creation
|
|
✅ Cleanup of old restore points
|
|
✅ Git status checking
|
|
|
|
### File Watcher Features
|
|
✅ Real-time file monitoring
|
|
✅ Smart batching of changes
|
|
✅ Graceful shutdown handling
|
|
✅ Periodic restore points
|
|
✅ Console logging for transparency
|
|
|
|
## 📚 Usage Examples
|
|
|
|
### Starting Your Work Session
|
|
```bash
|
|
# Start the auto-commit watcher
|
|
npm run watch-commit
|
|
|
|
# In another terminal, start development
|
|
npm run dev
|
|
```
|
|
|
|
### Before Making Risky Changes
|
|
```bash
|
|
# Create a restore point
|
|
npm run restore-point "Before implementing new feature"
|
|
|
|
# Make your changes...
|
|
# Files are auto-committed as you work
|
|
|
|
# If something breaks, restore with:
|
|
git checkout restore-point-20250129-143022
|
|
```
|
|
|
|
### Manual Saves
|
|
```bash
|
|
# Quick save
|
|
npm run save
|
|
|
|
# Save with custom message
|
|
npm run save "Fixed spreadsheet column alignment"
|
|
```
|
|
|
|
### Managing Restore Points
|
|
```bash
|
|
# List all restore points
|
|
./auto-commit.sh list
|
|
|
|
# Clean up old ones (keeps last 10)
|
|
./auto-commit.sh cleanup
|
|
```
|
|
|
|
## 🎯 Benefits
|
|
|
|
1. **Never Lose Work**: Changes are saved every 30 seconds automatically
|
|
2. **Easy Recovery**: Restore points let you go back to working states
|
|
3. **Experiment Safely**: Try changes knowing you can always revert
|
|
4. **Claude Restarts**: No more losing progress when Claude session ends
|
|
5. **Version History**: Full git history of all changes with timestamps
|
|
|
|
## ⚙️ Configuration
|
|
|
|
### Modify Watch Settings
|
|
Edit `watch-and-commit.js`:
|
|
```javascript
|
|
const COMMIT_DELAY = 30000; // 30 seconds
|
|
const MAX_COMMITS_PER_HOUR = 10;
|
|
const WATCH_DIRS = ['components', 'app', 'lib', 'styles'];
|
|
```
|
|
|
|
### Modify Auto-Commit Behavior
|
|
Edit `auto-commit.sh` to change commit message format or add custom logic.
|
|
|
|
## 🛟 Recovery Scenarios
|
|
|
|
### Claude Gets Restarted
|
|
Your work is automatically saved! Just continue from where you left off.
|
|
|
|
### Experimental Changes Break Things
|
|
```bash
|
|
# List restore points to find a good one
|
|
./auto-commit.sh list
|
|
|
|
# Checkout the restore point
|
|
git checkout restore-point-20250129-143022
|
|
|
|
# Or continue from main with your auto-commits
|
|
git checkout main
|
|
git log --oneline -10 # See recent auto-commits
|
|
```
|
|
|
|
### Need to Go Back a Few Commits
|
|
```bash
|
|
# See recent commits
|
|
git log --oneline -10
|
|
|
|
# Reset to a specific commit (keep files)
|
|
git reset --soft HEAD~3
|
|
|
|
# Or create a new branch from specific commit
|
|
git checkout -b fix-attempt abc1234
|
|
```
|
|
|
|
## 🚦 Status Indicators
|
|
|
|
The watcher shows:
|
|
- 🔍 **Started**: Auto-commit watcher is running
|
|
- 📝 **File changed**: A file was modified
|
|
- 🔄 **Performing auto-commit**: About to save changes
|
|
- ✅ **Auto-commit successful**: Changes saved
|
|
- 🔖 **Creating restore point**: Making a backup branch
|
|
- ⏸️ **Rate limit reached**: Too many commits, pausing
|
|
|
|
## 🎮 Quick Reference
|
|
|
|
| Command | Purpose |
|
|
|---------|---------|
|
|
| `npm run watch-commit` | Start automatic file watching |
|
|
| `npm run save` | Immediate manual commit |
|
|
| `npm run restore-point` | Create backup branch |
|
|
| `./auto-commit.sh list` | Show restore points |
|
|
| `./auto-commit.sh cleanup` | Remove old restore points |
|
|
| `git checkout restore-point-XXXXXX` | Restore to backup |
|
|
| `git log --oneline -10` | See recent commits |
|
|
|
|
---
|
|
|
|
**Pro Tip**: Always run `npm run watch-commit` when starting work with Claude to ensure nothing gets lost! 🛡️ |