--- description: Commit all workspace changes in logical order with intelligent messages date: 2025-02-12 --- # Commit Workspace Scans all repositories for pending changes and commits them in logical order with intelligent commit messages. // turbo ~/commit-workspace.sh ## What it does: 1. **Scans** all 3 repos for changes: - learning_ai_common_plat - learning_voice_ai_agent - learning_multimodal_memory_agents 2. **Analyzes** changed files to determine: - Commit scope (auth, ci, docs, feat, chore, etc.) - Appropriate commit message - Logical grouping 3. **Commits** in dependency order: - Always commits common platform first - Then other repos 4. **Pushes** all changes to origin ## Commit Message Logic: The script analyzes file types to generate appropriate messages: | File Pattern | Commit Message Example | | ------------------------- | ---------------------------------------------------- | | auth/middleware/jwt files | `feat(auth): update authentication and middleware` | | .github/workflows/ | `ci: update CI/CD configuration` | | Dockerfile + package.json | `feat: update Dockerfile for pnpm workspace support` | | package.json, lock files | `chore: update dependencies` | | \*.md files | `docs: update documentation` | | \*.py, requirements.txt | `feat(python): update Python modules` | | test/, _spec_ | `test: add/update tests` | | .env, config files | `chore: update configuration` | | Other files | `chore: update project files` | ## Usage: ```bash # Run from anywhere ~/commit-workspace.sh # Or via Windsurf /commit-workspace ``` ## Example Output: ``` 📋 Scanning workspace for changes... 📁 learning_ai_common_plat: - 2 staged - 1 modified 📁 learning_voice_ai_agent: - 3 untracked Found changes in 2 repo(s) 🚀 Committing in dependency order... 📝 Committing learning_ai_common_plat... Message: feat(auth): update authentication and middleware ✅ Committed 📤 Pushing learning_ai_common_plat... ✅ Pushed 📝 Committing learning_voice_ai_agent... Message: docs: update documentation ✅ Committed 📤 Pushing learning_voice_ai_agent... ✅ Pushed ✨ All changes committed and pushed! ``` ## Features: - ✅ No prompts - fully automated - ✅ Intelligent commit messages - ✅ Logical dependency order - ✅ Stages all changes automatically - ✅ Pushes after each commit - ✅ Clean, colored output ## Safety: - Always shows what will be committed - Uses conventional commit format - Commits in correct order to avoid issues - Preserves all changes ## When to Use: - After making changes across multiple repos - Before switching contexts/tasks - At the end of a development session - When preparing for releases ## Notes: - Script location: `~/commit-workspace.sh` - Requires git access to all repos - Works with any branch (but assumes main is primary) - Will skip repos with no changes