Skip to content

v3.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 07:27
4429837

3.1.0 (2026-09-16)

Features

  • create-pr: open a pull request for a finished branch through one shared recipe (#635) (#638) (b1ca260)

Bug Fixes

  • auto-dev: pin the nesting-guarantee wording and add a landed-edit self-check (#656) (#663) (e9fd277)
  • evals: stage skills by copy so the eval runner starts on a Windows checkout (#624) (#633) (aeb216f)
  • hooks: the write-gate honours GIT_GATE=off only from the main thread (#643) (#646) (3fb74ac)
  • hooks: the write-gate judges a shell's -c string and eval's argument (#658) (#662) (0219a9f)
  • implement-issue: filter a rename's pending target through looks_like_path (#599) (#626) (108bedb)
  • implement-issue: let the liveness guard follow a branch into the worktree that holds it (#644) (#657) (9f2479f)
  • implement-issue: name the code-review dispatch's write risk and require a post-review diff check (#578) (#629) (e3411e5)
  • implement-issue: post-review-check.sh proves whether a code-review dispatch wrote past its own report (#659) (#664) (485f0be)
  • implement-issue: read a path an earlier task creates as SKIP, not MISSING (#640) (#651) (df474c7)
  • implement-issue: resolve every review diff range against a fetched origin/main (#601) (#627) (d782842)
  • implement-issue: resolve plan paths through cat-file stdin so Git Bash cannot rewrite them (#647) (#660) (7d0313f)
  • merge-pr: name needs-approval in the post-merge base-run report (#586) (#632) (244012b)
  • merge-pr: recognise this repo's own release automation so approve-runs can land the release PR (#622) (#628) (aa9d41b)
  • review-sessions: harvest.py counts a signal only when the kit was invoked, not merely mentioned (#645) (#655) (6faad13)
  • scripts: refuse a missing .NET 6 runtime as a prerequisite instead of failing run-all-tests' LegacyShop gate (#642) (#661) (d4e710c)
  • scripts: resolve bash through which() so decision-check reaches a verdict on Windows (#623) (#625) (4c3ce7e)
  • tests: check-shared-refs.py prints its refusal on a non-UTF-8 stdout (#648) (#649) (56669bd)
  • tests: run-all-tests' drift guard fails a coincidental first-line match instead of passing on it (#579) (#631) (5ac1f42)
  • tracker: repoint a stale origin so issue and PR searches stop returning empty (#637) (#650) (5318d89)