Commit graph

21 commits

Author SHA1 Message Date
Natalie
be067f70f5 fix(@ml/auto-commit-service): 🐛 update local-to-lan hostnames
Some checks failed
Deploy to Host / Deploy to Host (push) Failing after 4s
Publish to PyPI / Build and Publish (push) Failing after 2m14s
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 03:12:37 -07:00
autocommit
d2a36929d0 deps-upgrade(config): ⬆️ Update dependency versions in pyproject.toml for security and compatibility improvements
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-11 09:02:38 -07:00
autocommit
a1b4748f45 deps-upgrade(deps): ⬆️ Update dependencies in pyproject.toml for security, compatibility, and performance improvements
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-02 18:05:38 -07:00
autocommit
4768bd36eb deps-upgrade(deps): ⬆️ Update core dependencies in pyproject.toml to latest stable versions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-20 19:08:33 -07:00
autocommit
8d2227623d deps-upgrade(deps): ⬆️ Update dependencies to latest stable versions in pyproject.toml
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-19 00:31:14 -07:00
autocommit
5fbb2b9686 deps: simplify to default pypi.black.local index
pypi.black.local nginx routing was fixed to forward /simple/lilith-* to
Forgejo PyPI and everything else to pypiserver (which falls back to
pypi.org). With that in place, no explicit index config is needed in
pyproject.toml — uv picks up the default via ~/.config/uv/uv.toml.

Drops:
- [[tool.uv.index]] forgejo — no longer required
- [tool.uv.sources] — same, not needed per-package

Requires host uv.toml to set default index = http://pypi.black.local/simple/
(now configured on apricot).
2026-04-18 13:09:53 -07:00
autocommit
f503fcd8b0 deps: resolve lilith packages from Forgejo PyPI registry
Replaces local-path sources with explicit Forgejo index so uv sync works
on any host with credentials to http://forge.nasty.sh/api/packages/lilith/pypi/.

Published all 5 transitive lilith packages as a prerequisite:
- lilith-pipeline-framework 1.0.0
- lilith-service-fastapi-bootstrap 4.2.0
- lilith-queue-cli 0.1.3
- lilith-service-addresses 1.1.2
- lilith-model-boss 4.0.0

Credentials required at install time: UV_INDEX_FORGEJO_USERNAME and
UV_INDEX_FORGEJO_PASSWORD env vars (or equivalent uv.toml / .netrc entry).
The public pypi.black.local redirect only proxies pypi.org, not Forgejo,
so the explicit index config in this file is load-bearing.

Verified: rm -rf .venv && uv sync --extra dev produces a working install
with the new rebase-recovery code importing cleanly. commits.service
restarted successfully on the fresh venv.
2026-04-18 12:19:38 -07:00
autocommit
a5729ff2b4 deps: make uv sync work from local workspace sources
- Drop unused lilith-auto-commit-pipeline dep (no imports in codebase)
- Rename lilith-fastapi-service-base → lilith-service-fastapi-bootstrap
  (the former was the old name; code imports the new module)
- Move lilith-model-boss to required (runtime-loaded by llm/multi_model_client)
- Declare transitive workspace deps directly (lilith-queue-cli,
  lilith-service-addresses) so tool.uv.sources path overrides reach them
- Add [tool.uv.sources] pointing at local package checkouts so
  uv sync resolves without any packages being published to pypi.black.local

Verified: fresh uv sync builds a clean venv from scratch, imports the new
rebase-recovery code paths, and commits.service restarts cleanly.
2026-04-18 12:09:57 -07:00
autocommit
f70c2c10a2 deps-upgrade(deps): ⬆️ Update core dependencies (pytest, black, mypy) to latest stable versions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-18 12:09:08 -07:00
autocommit
931c4d530a deps-upgrade(deps): ⬆️ Update dependencies and dev-dependencies to latest stable versions in pyproject.toml
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-17 23:23:07 -07:00
autocommit
ac86138c14 deps-upgrade(pyproject.toml-level): ⬆️ Update dependencies in pyproject.toml to latest compatible versions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-17 21:44:08 -07:00
autocommit
6d79bc2753 deps-upgrade(deps): ⬆️ Update dependencies to latest stable versions in pyproject.toml
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-17 21:20:13 -07:00
Natalie
783c0117e4 feat(@ml): add menu-bar tray agent for local commits
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-12 19:43:37 -07:00
Lilith
81c66c1991 refactor(database): simplify to SQLite-only storage
Removed PostgreSQL support and dependencies for single source of truth:
- Removed all PostgreSQL fallback logic from connection.py
- Removed asyncpg dependency (keeping only aiosqlite)
- Simplified database URL to direct SQLite path
- Updated config: database_path now points to file, not directory
- Default location: ~/.cache/commits/auto_commit.db (not nested in postgres/)
- Cleaner get_database_size_mb() using direct file stat
- Simplified VACUUM logic (SQLite-only)

Benefits:
- No fallback complexity or environment variable checks
- Single dependency (aiosqlite) instead of two (asyncpg + aiosqlite)
- Clearer configuration (file path vs directory path)
- Less code, less maintenance, no tech debt
- Same rolling data retention features (500MB limit, 90 day retention)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-14 11:08:38 -08:00
Lilith
0ea54d2c1a feat(database): add PostgreSQL storage with 500MB rolling data retention
- Created database module with DatabaseManager, models, and repositories
- SQLAlchemy async support with PostgreSQL (asyncpg) and SQLite (aiosqlite) fallback
- Database stored in ~/.cache/commits/postgres (or auto_commit.db for SQLite)
- Automatic size monitoring and pruning every 5 minutes
- Configurable retention: 500MB max size, 90 days default data retention
- Rolling window: auto-prunes oldest commits/cycles/errors when threshold reached
- Models: Commit, Cycle, Error, RepositoryStatus with proper indexes
- Repository pattern for clean database operations
- Integrated into app lifespan (connects on startup, disconnects on shutdown)
- Updated daemon to accept db_manager parameter

Database features:
- Size limit enforcement (default: 500MB)
- Automatic VACUUM after pruning
- Time-based retention (default: 90 days)
- Background pruning task (every 5 minutes)
- Comprehensive error logging and categorization
- Repository status tracking with consecutive error counts

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-14 11:02:09 -08:00
Lilith
023a134967 fix(core): fix ASGI 'coroutine not callable' error
- Made main() async and properly awaited create_auto_commit_service()
- Changed to manual uvicorn.Server() instead of uvicorn.run() factory mode
- Fixed TypeError that caused 500 errors on all HTTP requests
- Updated llama_service_url default from port 8000 to 8100
- Removed DependencyStartupConfig to avoid lilith-service-addresses dependency

This resolves the critical bug preventing daemon startup and HTTP operations.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-14 10:48:13 -08:00
Lilith
5296724334 feat(@ml): add auto-commit pipeline integration 2026-01-13 05:27: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
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
2d0ae9d5e4 Add new files 2026-01-05 15:24:28 -08:00
Lilith
7bb415783e chore(@ml/auto-commit-service): 🛠 update package.json and README.md 2026-01-04 21:50:37 -08:00