Commit graph

61 commits

Author SHA1 Message Date
Lilith
443d4fbf07 feat(scheduler): add settings and llm client to ml provider init 2026-01-13 06:41:39 -08:00
Lilith
2b3faefd46 feat(scheduler): add ml provider initialization 2026-01-13 06:10:03 -08:00
Lilith
2b93af6ad0 feat(scheduler): add rag+cot pipeline processor integration 2026-01-13 05:49:04 -08:00
Lilith
27267eb6e8 feat(auto-commit-service): add rag+cot pipeline processor support 2026-01-13 05:33:05 -08:00
Lilith
5296724334 feat(@ml): add auto-commit pipeline integration 2026-01-13 05:27:37 -08:00
Lilith
8f3803c2a2 feat(config): load ignore_repos from startup-config.json
- Load daemon config by matching current directory
- Override ignore_repos from config file (takes precedence over env var)
- Fall back to empty list if config not found

Usage: Edit ~/.config/commits/startup-config.json
No environment variables needed!

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-11 02:35:58 -08:00
Lilith
d6618679af feat(config): persist ignore_repos in daemon registry
- 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>
2026-01-11 02:20:30 -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
e42edaec41 feat(auto-commit-service): add ignore_repos config option 2026-01-11 01:49:39 -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
a6a7e96889 feat(auto-commit): add crash detection and multi-retry restart
- Add llama_service_max_restart_attempts (default: 3)
- Add llama_service_restart_backoff_seconds (default: 5.0s)
- Implement retry logic with exponential backoff (5s, 10s, 15s)
- Track crash timestamps and restart attempts
- Expose crash state in /health and /status endpoints:
  - llama_service_crashed
  - llama_service_restart_attempts
  - llama_service_last_crash
  - llama_service_last_successful_restart
- Enhanced logging with ✓/✗ symbols for restart outcomes

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-10 23:27:58 -08:00
Lilith
f0bf1dc859 chore(@ml): 🔧 update python cache files 2026-01-10 21:49:51 -08:00
Lilith
e72712d559 feat(@ml/auto-commit-service): process file groups and generate commits for multiple files in each group 2026-01-10 10:31:07 -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
ddce7a59b4 fix(__pycache__): 🐛 resolve binary diff in .pyc file 2026-01-10 10:03:14 -08:00
Lilith
5c5c240a08 fix(@ml/auto-commit-service): 🐛 update repository base path description in config.py 2026-01-10 10:02:41 -08:00
Lilith
f2452b1449 fix(config): 🐛 resolve binary differences in config files 2026-01-10 09:52:27 -08:00
Lilith
9eb03b20d8 feat(src/auto_commit_service/cli/__init__.py): add service name for one-shot mode 2026-01-10 09:49:52 -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
54c4e697c1 ci: test workflow - ml-exceptions available, builds locally ✓ 2026-01-10 01:05:53 -08:00
Lilith
a0e9f22fbf ci: test workflow - deps available, builds locally ✓ 2026-01-10 01:05:51 -08:00
Lilith
1b86fc5346 ci: trigger workflow with published ml-service-base 2026-01-10 00:44:07 -08:00
Lilith
3c22ed2ccd ci: trigger workflow with published ml-service-base 2026-01-10 00:44:06 -08:00
Lilith
08d1ba91c5 ci: trigger workflow 2026-01-10 00:25:34 -08:00
Lilith
fa3a4ffeb2 fix(auto-commit-service): 🛠 resolve git status handling in daemon.py 2026-01-09 22:37:39 -08:00
Lilith
006ec0c8d0 feat(@ml/auto-commit-service): add initial commit service implementation 2026-01-09 22:17:12 -08:00
Lilith
1c0bd1941a feat(@ml/auto-commit-service): implement per-repo atomic workflow for commit and push 2026-01-09 22:13:03 -08:00
Lilith
ebcfc527cb feat(@ml/auto-commit-service): implement two-phase batch workflow for commits and pushes 2026-01-09 22:11:05 -08:00
Lilith
881c2d7ba8 feat(@ml/auto-commit-service): add initial commit service implementation 2026-01-09 22:10:00 -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
2fa5b28359 chore: add .gitignore for Python build artifacts 2026-01-09 11:27:10 -08:00
Lilith
91b3b3979a chore(@ml/auto-commit-service): 📦 bump version to 0.1.1
- Fix CRASHED status handling to attempt recovery instead of giving up
- Daemon now auto-starts llama-service after reboot when stale PID detected
2026-01-09 11:08:18 -08:00
Lilith
a59e438bc8 🔧 Update files 2026-01-09 10:49:26 -08:00
Lilith
6c9036b573 Add new files 2026-01-05 18:41:40 -08:00
Lilith
a02b0e7b9b fix(README): update README.md for new commit hash format 2026-01-05 18:00:18 -08:00
Lilith
2b1b16360e fix(service): 🐛 resolve model discovery and default model selection in llama_service_manager.py 2026-01-05 17:32:07 -08:00
Lilith
4d6724f9d1 fix(README.md): update README with test commit hash 2026-01-05 15:27:31 -08:00
Lilith
2d0ae9d5e4 Add new files 2026-01-05 15:24:28 -08:00
Lilith
24db364b44 chore(shared): 🔧 Hello! I'm a mock assistant responding to your message. 2026-01-05 13:44:30 -08:00
Lilith
c8fe5c4a72 chore(shared): 🔧 Hello! I'm a mock assistant responding to your message. 2026-01-05 13:43:55 -08:00
Lilith
b788104404 🔧 Auto-resolve: Pull rebase failed: fatal: couldn't find remote ref main
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>
2026-01-05 13:41:11 -08:00
Lilith
b4b1bf4cf4 chore(shared): 🔧 Hello! I'm a mock assistant responding to your message. 2026-01-05 13:38:56 -08:00
Lilith
4a6a7999ad 🔧 Auto-resolve: Pull rebase failed: fatal: couldn't find remote ref main
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.
2026-01-05 12:46:53 -08:00