Skip to main content

Gitmoot v0.5.0

Headline: an opt-in continuous worker-pool scheduler (--scheduler pool) plus a batch of workflow/daemon fixes. The new scheduler is opt-in and the default per-tick scheduler is unchanged, so upgrading is safe.

What's new since v0.4.2

  • feat(daemon): opt-in continuous worker-pool scheduler (#394) — gitmoot daemon run|start --scheduler pool keeps up to --workers jobs busy and re-queries the queue as workers free (so a job queued after dispatch began is picked up without waiting for the in-flight batch), with live in-flight checkout accounting for working-tree safety. A read-only follow-up (ask/review) blocked only by a contended same-repo checkout is auto-isolated into an ephemeral detached worktree so it runs beside the holder instead of deadlocking. Default stays the existing barrier.
  • fix(daemon): --skip-native-review-fanout TOCTOU (#390) — the skip flag is now persisted onto the branch lock before the PR is opened, so the daemon's PR-watcher never fans out native reviews in the gap.
  • fix(workflow): keep the terminal-success result on a post-advance error + idempotent PR create (#387) — agent implement --json no longer drops the result envelope when the post-implement PR advance errors; PR creation adopts a concurrent/out-of-band PR instead of erroring.
  • fix(workflow): release the cancelled job's runtime-session lock on cancel (#391) — cancelling a job no longer strands its runtime-session lock for the TTL.
  • fix(workflow): sanitize unsafe worktree path segments (#384) — multi-round coordinators can dispatch implement again. Thanks @gaijinjoe.
  • feat(workflow): operator kill switch for delegation trees (#341) — stop a runaway tree; the coordinator still finalizes gracefully.
  • feat(workflow): per-root token budget for delegation trees (#338).
  • feat(skillopt): apply the accepted judge prompt to production (#354).
  • docs: running one agent's jobs concurrently (#396); pin the SkillOpt install wheel to gitmoot-skillopt v0.3.1 (#346).

All additive / opt-in (default behavior byte-identical), shipped via squash-merge with the CI gate green and adversarial /code-review. The pool scheduler and the #390 fix were validated end-to-end with live Codex against a real daemon.