Skip to main content

Gitmoot v0.8.0

A reliability-and-features release. The headline is daemon hardening for lights-out operation, plus two new opt-in features. Everything new is additive and off by default.

What's new since v0.7.0

Daemon reliability (lights-out operation)

  • Singleton guard for daemon run (#550) — a stray or second daemon launched on the same home is now refused (daemon already running with pid …) instead of silently coexisting and racing the SQLite store. Detection uses a real owner-pid liveness check, so a stale pidfile from a dead daemon still allows a clean restart. (Follow-up #556 tracks a flock backstop for the rare simultaneous-launch window.)
  • Bounded supervisor reclaim scan (#549) — the ~1s worker tick no longer re-scans the entire jobs table (and every job's event history) each tick. The scan is now proportional to in-flight work, ending the per-second CPU core-burn that long-lived daemons accumulated.
  • Reconcile a task wedged by a closed duplicate PR (#543) — a task no longer gets stuck in reviewing pointing at stale open-PR state; it detects a merged sibling PR on the branch and finalizes (releasing the branch lock + worktree), instead of re-surfacing completed work to a human.

Contributor reliability fixes (unattended operation)

  • Clear stale read-only delegation worktrees on manual retry so a retry doesn't die on a deleted checkout (#544).
  • Council/external-owned PRs can skip Gitmoot's native merge gate — fail-closed (Gitmoot abstains, never a gateless merge), off by default (#545).
  • Kimi split into two runtimes — the default kimi runtime is unchanged (kimi-code: no --print, structured stream-json), and the older CLI is an opt-in kimi-cli runtime for hosts that need it (#546), with cross-family review treating kimi-cli as the kimi family (#561).
  • Generic, off-by-default [orchestrate] delegation-timeout defaults — no private naming conventions in core (#548).

New features (opt-in, off by default)

  • GitHub-backed agent templates (#476, MVP) — gitmoot agent template export writes your custom templates to files, and gitmoot agent template add <id> --from-repo <owner/repo> restores one on another machine. Back up and move templates across machines via GitHub. (Publish/bulk-pull/config remote are follow-ons.)
  • Agent heartbeat schedules (#533, MVP) — an [agents.<agent>.heartbeats.<name>] config section runs an agent on a recurring schedule (e.g. a daily stale-PR sweep), reusing the existing job/worker path. Restart-safe (never double-fires), missed-tick-coalescing, and byte-identical when no heartbeat is configured.

Upgrade notes

No breaking changes. The new daemon behavior is automatic; the two new features are opt-in. Re-launching a daemon on the same home is now refused (intended) — stop the existing one first, or use a different --home for a genuinely separate daemon.

Install / upgrade

  • Existing install: gitmoot update
  • Fresh install: curl -fsSL https://gitmoot.io/install.sh | sh