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>
This commit is contained in:
Lilith 2026-01-11 02:20:30 -08:00
parent 94babf4e7e
commit d6618679af

View file

@ -30,6 +30,7 @@ class DaemonInfo:
repos: list[str]
started_at: str
last_seen: str
ignore_repos: list[str] = field(default_factory=list)
def to_dict(self) -> dict[str, Any]:
"""Convert to dictionary for JSON serialization."""
@ -45,6 +46,7 @@ class DaemonInfo:
"repos": self.repos,
"started_at": self.started_at,
"last_seen": self.last_seen,
"ignore_repos": self.ignore_repos,
}
@classmethod
@ -62,6 +64,7 @@ class DaemonInfo:
repos=data.get("repos", []),
started_at=data["started_at"],
last_seen=data["last_seen"],
ignore_repos=data.get("ignore_repos", []),
)
@ -208,6 +211,7 @@ def create_daemon_info(
recursive: bool,
recursive_depth: int | None,
cache_update_minutes: int,
ignore_repos: list[str] | None = None,
) -> DaemonInfo:
"""Create a new DaemonInfo with generated ID and timestamps."""
daemon_id = str(uuid.uuid4())[:8]
@ -228,4 +232,5 @@ def create_daemon_info(
repos=repos,
started_at=timestamp,
last_seen=timestamp,
ignore_repos=ignore_repos or [],
)