Commit graph

22 commits

Author SHA1 Message Date
autocommit
08f25ce5dd feat(git): Add --no-verify flag to Git push operations to bypass pre-push hooks for automated pipelines
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-19 00:25:06 -07:00
autocommit
505362ed40 feat(git): rebase recovery + lockfile auto-resolution
Task #1 + Task #2 combined:
- _abort_rebase_verified: escalation ladder abort → quit → reset --hard ORIG_HEAD
- pre_cycle_recover: detect orphan rebase/merge state at cycle start
- Integrate into pre_cycle_sync: refuse to proceed if recovery fails
- Consolidate push.py:_pull_rebase to delegate to operations.py:git_pull_rebase
- conflict_resolution module with LOCKFILE_STRATEGIES (bun/npm/pnpm/yarn/cargo/uv/poetry)
- try_auto_resolve_lockfiles: conservative — acts only when all conflicts are lockfiles
- git_pull_rebase: attempt auto-resolution before falling back to abort
2026-04-18 11:32:27 -07:00
autocommit
6358be5902 feat(git): Add auto-commit service with Git operations (commits, pushes, submodules) and database-backed state tracking
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-17 21:20:13 -07:00
Natalie
fa4d7adc98 🔥 remove stash operations from pre_cycle_sync
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-12 23:07:30 -07:00
Natalie
fd3511ed67 feat(@ml/auto-commit-service): add pre-cycle sync and stash operations
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-12 23:01:51 -07:00
Lilith
1c6a762acb chore(shared): 🔧 Let's analyze this step by step: 2026-01-13 10:32:34 -08:00
Lilith
868b566af8 chore(git): 🔧 Remove __pycache__ files from tracking
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-13 08:25:16 -08:00
Lilith
94babf4e7e fix(__pycache__): 🐛 resolve binary diff in cache file diff 2026-01-11 01:53:18 -08:00
Lilith
2d2727cf43 feat(@ml/auto-commit-service): add discovery and scheduler features 2026-01-11 01:50:51 -08:00
Lilith
9e993181fe fix(git): handle exit code 1 from git add --dry-run
Git returns exit code 1 (not 128) when some files are ignored.
- Accept both returncode 1 and 128 for ignore detection
- Parse ignored paths per-batch to avoid cross-batch contamination
- Log ignored file count after filtering

Testing showed: exit code 1 = some ignored, 0 = none ignored

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-11 00:48:07 -08:00
Lilith
2473220592 fix(git): use add --dry-run for reliable ignore detection
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>
2026-01-11 00:31:00 -08:00
Lilith
f302e8366a fix(git): detect tracked-but-ignored files with ls-files -i
- Use `git ls-files -i --exclude-standard` to find tracked files now in .gitignore
- Combine with `git check-ignore` for comprehensive ignore detection
- Batch ls-files calls (1000 files/batch) to avoid ARG_MAX
- Prevents "paths are ignored" errors for legacy tracked files (apps/, packages/, test-output/)

BREAKING: git check-ignore alone doesn't flag already-tracked files
SOLUTION: Two-phase detection (tracked-ignored + new-ignored)

Fixes egirl-platform failures: 5,175 tracked-but-ignored files filtered

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-11 00:08:05 -08:00
Lilith
bbd8220232 fix(git): batch git add for large file sets to avoid ARG_MAX
- 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>
2026-01-10 23:50:17 -08:00
Lilith
7f9d9c0e65 fix(grouping): skip LLM grouping for large changesets (>100 files)
- 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>
2026-01-10 23:38:38 -08:00
Lilith
7349aa2bea fix(git): filter gitignored files before staging
- 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>
2026-01-10 23:30:05 -08:00
Lilith
f0bf1dc859 chore(@ml): 🔧 update python cache files 2026-01-10 21:49:51 -08:00
Lilith
0bba6b6099 chore(@ml/auto-commit-service): 🛠 update file grouping logic and refactor related code 2026-01-10 10:29:03 -08:00
Lilith
7c737b8476 feat(auto-commit-service): add one-shot mode command and lazy imports for CLI commands 2026-01-10 09:44:44 -08:00
Lilith
1d7590cb74 fix(auto-commit-service): 🛠 resolve merge conflicts and update diff excerpt 2026-01-09 20:10:37 -08:00
Lilith
d9e7f6fef0 feat(cli): add commits CLI for multi-daemon management
Merged the bash commits CLI into the auto-commit-service as a proper
Python CLI module using typer.

Features:
- start/stop/status: Manage daemon lifecycle
- once: Refresh repos and trigger immediate cycle
- report: Comprehensive daemon reporting
- trigger/enable/disable: Manual daemon control
- logs/list: Daemon monitoring
- install-systemd: Systemd user service installation

New files:
- src/auto_commit_service/cli/__init__.py - Typer app and commands
- src/auto_commit_service/cli/registry.py - Multi-daemon registry
- src/auto_commit_service/cli/utils.py - CLI utilities

Entry point: `commits` command (via pyproject.toml scripts)
Version: 0.1.1 -> 0.2.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 19:41:35 -08:00
Lilith
6c9036b573 Add new files 2026-01-05 18:41:40 -08:00
Lilith
7bb415783e chore(@ml/auto-commit-service): 🛠 update package.json and README.md 2026-01-04 21:50:37 -08:00