- Add ignore_repos field to DaemonInfo dataclass
- Store in startup-config.json per-daemon
- Backward compatible (defaults to empty list)
- Eliminates need for environment variables
Usage: Edit ~/.config/commits/startup-config.json and add:
"ignore_repos": ["repo-name-1", "repo-name-2"]
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
BREAKING CHANGE: git ls-files -i only works on staged files
BREAKING CHANGE: git check-ignore doesn't flag tracked-but-ignored files
SOLUTION: Use `git add --dry-run` to test which files will actually stage
- Detects all ignore cases: new files, tracked files, directory patterns
- Parse stderr to extract ignored file list when exit code 128
- Batch processing (1000 files/batch) to avoid ARG_MAX
Fixes: @egirl/egirl-platform with 5,175 files under ignored /apps/ /packages/ directories
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add batching logic to git_add_specific() when files > 1000
- Splits into 1000-file batches to stay under system ARG_MAX limit (~2MB)
- Prevents "Argument list too long" errors on massive changesets
- Fixes failures in @egirl/egirl-platform with 10,042 changed files
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add early bailout when changed_files > 100 to prevent context overflow
- Prevents "request exceeds available context size" errors in Ministral-14B (4096 tokens)
- Falls back to single-group strategy for massive changesets
- Fixes "All commit groups failed" for repos with thousands of changed files
Resolves failures in @egirl/egirl-platform (10,042 changed files)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add git_check_ignored() to detect ignored files using `git check-ignore --stdin`
- Update git_add_specific() to filter out ignored files before `git add`
- Add stdin support to _run_git_command() for efficient batch operations
- Prevents "paths are ignored" errors when staging __pycache__, .pyc files
- Fixes "All commit groups failed" errors in @ml/auto-commit-service and @egirl/egirl-platform
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Fix: Changed default git_branch from "main" to "master" in config.py
Root cause: Repository uses master branch but service was configured for main
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Root cause: Auto-commit service attempted to rebase from 'main' branch,
but remote repository only has 'master' branch.
Resolution: No conflicts or data loss. Working tree was clean.
The service should be configured to use 'master' as the default branch.
Previous commit (179786e) was already staged and ready to push.
Root cause: Auto-commit service attempted to rebase against 'main' branch,
but this repository uses 'master' as the default branch.
Resolution: Documented the branch name mismatch. The service configuration
should be updated to use 'master' instead of 'main' for this repository.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Root cause: Auto-commit service hardcoded 'main' branch, but repository uses 'master'.
Resolution: Pushed existing commits to origin/master successfully.
Next steps: Update auto-commit service to detect default branch dynamically
(git symbolic-ref refs/remotes/origin/HEAD) instead of hardcoding 'main'.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>