From 57385268dd2f497de34682ed04cd14f746be21c0 Mon Sep 17 00:00:00 2001 From: Maximilian Roos Date: Tue, 23 Jun 2026 09:34:02 -0700 Subject: [PATCH 1/2] chore: release 0.1.7 Bumps generator version to 0.1.7 and syncs lockfile. 8 commits since 0.1.6: pin actions/checkout to v7 with review opting into the fork-PR checkout guard (#725); bump claude-code to 2.1.185 (#719); running-in-ci surfaces blocking scope rules instead of routing around them (#717) and caps CI-poll loops to the Bash 10-min limit (#695); de-duplicate composite-action step bodies under shared/steps/ with harness-named action paths (#712); correct the codex effort list (#710); review-reviewers and worker-deploy doc fixes (#707, #711). Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 21 +++++++++++++++++++++ generator/pyproject.toml | 2 +- generator/uv.lock | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17c5e9b..3771ff3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,27 @@ published verbatim as that version's GitHub Release notes 0.1.1 predate this changelog; see the compare views at https://github.com/max-sixty/tend/compare for their history. +## 0.1.7 + +### Improved + +- **Generated workflows pin `actions/checkout` to v7.** All generated workflows (and tend's own) move from checkout v6 to v7. The review workflow opts into v7's fork-PR checkout guard (`allow-unsafe-pr-checkout: true`), which otherwise refuses to check out a fork's `refs/pull/N/{merge,head}` under `pull_request_target` (the "pwn request" guard), so fork-PR reviews keep running. ([#725](https://github.com/max-sixty/tend/pull/725)) +- **Both Claude harnesses update to claude-code 2.1.185.** ([#719](https://github.com/max-sixty/tend/pull/719)) +- **The bot surfaces a blocking scope rule instead of silently routing around it.** When a `running-in-ci` scope restriction blocks the right action — e.g. engaging an existing upstream thread in another repo — the bot now surfaces the blocker on the triggering thread and offers either to take the upstream action on approval or to relax the rule via the consuming repo's `running-tend` overlay, rather than substituting a second-best local workaround without signaling it hit a wall. ([#717](https://github.com/max-sixty/tend/pull/717)) + +### Fixed + +- **CI-poll loops fit the Bash tool's 10-minute cap.** The bundled `running-in-ci` poll recipes cap their `sleep` loops at 9 iterations and call the Bash step with `timeout: 600000`, so the harness no longer auto-backgrounds a longer loop and strands the gated follow-up (dismissing a stale approval, posting failure analysis). ([#695](https://github.com/max-sixty/tend/pull/695)) + +### Documentation + +- The codex `effort` value list in the README and the install-tend skill is corrected to `low | medium | high | xhigh`. ([#710](https://github.com/max-sixty/tend/pull/710)) + +### Internal + +- Composite-action step bodies are de-duplicated into scripts under `shared/steps/`, and each harness action lives under a harness-named path. Generated workflows now invoke `max-sixty/tend/claude@X.Y.Z` (and `claude-interactive`) rather than the bare-root default; existing pinned refs keep resolving and the nightly regen stamps the new path automatically. ([#712](https://github.com/max-sixty/tend/pull/712)) +- `review-reviewers` documents the `pull_request_review` self-trigger as expected (non-)behavior, and the `worker-deploy` comment corrects the live-stream count to two. ([#707](https://github.com/max-sixty/tend/pull/707), [#711](https://github.com/max-sixty/tend/pull/711)) + ## 0.1.6 ### Improved diff --git a/generator/pyproject.toml b/generator/pyproject.toml index c050966..e24cfe3 100644 --- a/generator/pyproject.toml +++ b/generator/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "uv_build" [project] name = "tend" -version = "0.1.6" +version = "0.1.7" description = "An autonomous junior maintainer for GitHub repos, powered by Claude or OpenAI Codex — reviews PRs, triages issues, fixes CI" license = "MIT" requires-python = ">=3.11" diff --git a/generator/uv.lock b/generator/uv.lock index 352ff50..c81c96f 100644 --- a/generator/uv.lock +++ b/generator/uv.lock @@ -184,7 +184,7 @@ wheels = [ [[package]] name = "tend" -version = "0.1.6" +version = "0.1.7" source = { editable = "." } dependencies = [ { name = "click" }, From 0935f0484b54d310765e3a622b5690e55d494136 Mon Sep 17 00:00:00 2001 From: Maximilian Roos Date: Tue, 23 Jun 2026 09:40:56 -0700 Subject: [PATCH 2/2] docs(changelog): add #721 nightly workflow-regen fix to 0.1.7 #721 (base workflow-regen worktree on an open PR, not branch-ref existence) merged to main after this release branch was cut; it's a Fixed-scope change to the bundled nightly skill that adopters run, so it belongs in the 0.1.7 notes alongside #695. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3771ff3..324f22b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ https://github.com/max-sixty/tend/compare for their history. ### Fixed - **CI-poll loops fit the Bash tool's 10-minute cap.** The bundled `running-in-ci` poll recipes cap their `sleep` loops at 9 iterations and call the Bash step with `timeout: 600000`, so the harness no longer auto-backgrounds a longer loop and strands the gated follow-up (dismissing a stale approval, posting failure analysis). ([#695](https://github.com/max-sixty/tend/pull/695)) +- **Nightly workflow-regen bases its worktree on an open PR, not branch-ref existence.** The `nightly` skill's regen step now bases on the `tend/update-workflows` branch only when an open PR rides it, and otherwise bases on `HEAD` and drops any leftover remote branch. A PR previously closed without merge no longer leaves a stale branch that inflates the diff, produces an inaccurate PR body, or defeats the no-value skip. ([#721](https://github.com/max-sixty/tend/pull/721)) ### Documentation