diff --git a/src/auto_commit_service/scheduler/daemon.py b/src/auto_commit_service/scheduler/daemon.py index 93e952f..3df58f8 100644 --- a/src/auto_commit_service/scheduler/daemon.py +++ b/src/auto_commit_service/scheduler/daemon.py @@ -677,10 +677,27 @@ class CommitDaemon: f"commit(s) from remote" ) elif sync_result["error"]: + error = sync_result["error"] logger.warning( - f"[{cycle_id}] {repo.name}: Pre-cycle sync issue: " - f"{sync_result['error']} (continuing anyway)" + f"[{cycle_id}] {repo.name}: Pre-cycle sync issue: {error}" ) + # Let Claude handle sync failures (conflicts, pull issues) + if self.error_handler and error != "fetch_failed": + logger.info( + f"[{cycle_id}] {repo.name}: Invoking Claude to resolve sync issue" + ) + recovery = await self.error_handler.handle( + repo, f"Pre-cycle sync failed: {error}" + ) + if recovery.success: + logger.info( + f"[{cycle_id}] {repo.name}: Claude resolved sync issue" + ) + else: + logger.warning( + f"[{cycle_id}] {repo.name}: Claude could not resolve sync: " + f"{recovery.error} (continuing anyway)" + ) except Exception as e: logger.warning( f"[{cycle_id}] {repo.name}: Pre-cycle sync failed: {e} "