From 51dea63bcd1fa882b7f1c6c1edba723652869106 Mon Sep 17 00:00:00 2001 From: dormouse-bot <287024035+dormouse-bot@users.noreply.github.com> Date: Fri, 17 Jul 2026 08:31:24 +0000 Subject: [PATCH] =?UTF-8?q?chore:=20update=20tend=20workflows=20(0.1.10=20?= =?UTF-8?q?=E2=86=92=200.1.11)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/tend-ci-fix.yaml | 4 +-- .github/workflows/tend-mention.yaml | 30 ++++++++++++++++++++--- .github/workflows/tend-nightly.yaml | 4 +-- .github/workflows/tend-notifications.yaml | 4 +-- .github/workflows/tend-review-runs.yaml | 4 +-- .github/workflows/tend-review.yaml | 4 +-- .github/workflows/tend-triage.yaml | 4 +-- .github/workflows/tend-weekly.yaml | 4 +-- 8 files changed, 41 insertions(+), 17 deletions(-) diff --git a/.github/workflows/tend-ci-fix.yaml b/.github/workflows/tend-ci-fix.yaml index d9ed225b..b928d2a9 100644 --- a/.github/workflows/tend-ci-fix.yaml +++ b/.github/workflows/tend-ci-fix.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.10. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.11. Regenerate with: uvx tend@latest init # # Do not edit this file directly — it will be overwritten on regeneration. # To customize behavior, edit the relevant skill (for example, @@ -30,7 +30,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - uses: max-sixty/tend/claude@0.1.10 + - uses: max-sixty/tend/claude@0.1.11 with: github_token: ${{ secrets.TEND_BOT_TOKEN }} claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} diff --git a/.github/workflows/tend-mention.yaml b/.github/workflows/tend-mention.yaml index 37be3e85..e0284dcd 100644 --- a/.github/workflows/tend-mention.yaml +++ b/.github/workflows/tend-mention.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.10. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.11. Regenerate with: uvx tend@latest init # # Do not edit this file directly — it will be overwritten on regeneration. # To customize behavior, edit the relevant skill (for example, @@ -62,6 +62,29 @@ jobs: exit 0 fi + # Skip the bot's own comments before anything else. The Bot-type + # check below only catches GitHub App / Bot accounts; our own bot is a + # PAT-based User account, so its comments would otherwise fall through + # to the engagement heuristics (bot-authored issue, "bot has prior + # comments") and spin up a handle job the prompt's self-loop guard + # then exits silently — pure waste. There is no legitimate + # self-summons: a bot comment that quotes a prior @-mention would + # re-match the mention check below and escape an after-placed guard, + # so this runs *before* the mention check. Covers issue_comment and + # pull_request_review_comment (both carry comment.user.login). Fires + # on, e.g., the monthly tracking-issue rollover where the bot posts + # evidence-gist links on its own issue. Scoped to comments on + # purpose: the pull_request_review *submission* event is deliberately + # left out, since a review the bot leaves on its own PR is its + # reviewer role (the prompt is told to action it), not a self-loop. + # The only self-review skip is the terminal empty-body APPROVED gate + # below. + if { [ "$EVENT_NAME" = "issue_comment" ] || [ "$EVENT_NAME" = "pull_request_review_comment" ]; } \ + && [ "$COMMENT_AUTHOR" = "dormouse-bot" ]; then + echo "should_run=false" >> "$GITHUB_OUTPUT" + exit 0 + fi + if [ -n "$COMMENT_BODY" ] && printf '%s\n' "$COMMENT_BODY" | grep -qF '@dormouse-bot'; then echo "should_run=true" >> "$GITHUB_OUTPUT" exit 0 @@ -156,6 +179,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.TEND_BOT_TOKEN }} EVENT_NAME: ${{ github.event_name }} COMMENT_BODY: ${{ github.event.comment.body || github.event.review.body }} + COMMENT_AUTHOR: ${{ github.event.comment.user.login }} COMMENT_AUTHOR_TYPE: ${{ github.event.comment.user.type }} ISSUE_BODY: ${{ github.event.issue.body }} ISSUE_OR_PR_NUMBER: ${{ github.event.issue.number }} @@ -227,7 +251,7 @@ jobs: env: EVENT_TS: ${{ github.event.comment.updated_at || github.event.review.submitted_at || github.event.issue.updated_at }} - - uses: max-sixty/tend/claude@0.1.10 + - uses: max-sixty/tend/claude@0.1.11 with: github_token: ${{ secrets.TEND_BOT_TOKEN }} claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} @@ -250,7 +274,7 @@ jobs: || (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@dormouse-bot') && format('A review was submitted on PR #{0} that mentions you ({1}, review ID {2}). Read the review and full context, then respond. If changes were requested, make them, commit, and push.', github.event.pull_request.number, github.event.review.html_url, github.event.review.id)) || (github.event_name == 'pull_request_review' - && format('A review was submitted on a PR where you previously participated (PR #{0}, {1}, review ID {2}). Read the review and full context. If the review requests changes or asks questions, respond appropriately. If the review approves or is between humans, exit silently.', github.event.pull_request.number, github.event.review.html_url, github.event.review.id)) + && format('A review was submitted on a PR where you previously participated (PR #{0}, {1}, review ID {2}). Read the review and full context. If it requests changes or asks questions, respond appropriately — including when you authored the review: a review your review workflow left on your own PR is your reviewer role speaking, not a self-loop, so action it. Exit silently for a plain approval, a review with no actionable content, or one between other participants.', github.event.pull_request.number, github.event.review.html_url, github.event.review.id)) || (contains(github.event.comment.body, '@dormouse-bot') && format('You were mentioned in a comment ({0}). Read the full context and respond. If changes are requested, make them, commit, and push.', github.event.comment.html_url)) || format('A user commented on an issue/PR where you previously participated ({0}). Read the full context. Only respond if the comment is directed at you, asks a question you can help with, or requests changes you can make. If the conversation is between other participants, exit silently.', github.event.comment.html_url) diff --git a/.github/workflows/tend-nightly.yaml b/.github/workflows/tend-nightly.yaml index 4a6cda83..3c9242e8 100644 --- a/.github/workflows/tend-nightly.yaml +++ b/.github/workflows/tend-nightly.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.10. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.11. Regenerate with: uvx tend@latest init # # Do not edit this file directly — it will be overwritten on regeneration. # To customize behavior, edit the relevant skill (for example, @@ -30,7 +30,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - uses: max-sixty/tend/claude@0.1.10 + - uses: max-sixty/tend/claude@0.1.11 with: github_token: ${{ secrets.TEND_BOT_TOKEN }} claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} diff --git a/.github/workflows/tend-notifications.yaml b/.github/workflows/tend-notifications.yaml index 25758c31..26987945 100644 --- a/.github/workflows/tend-notifications.yaml +++ b/.github/workflows/tend-notifications.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.10. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.11. Regenerate with: uvx tend@latest init # # Do not edit this file directly — it will be overwritten on regeneration. # To customize behavior, edit the relevant skill (for example, @@ -96,7 +96,7 @@ jobs: fetch-depth: 0 fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - uses: max-sixty/tend/claude@0.1.10 + - uses: max-sixty/tend/claude@0.1.11 if: steps.check.outputs.count != '0' || github.event_name == 'workflow_dispatch' with: github_token: ${{ secrets.TEND_BOT_TOKEN }} diff --git a/.github/workflows/tend-review-runs.yaml b/.github/workflows/tend-review-runs.yaml index 4ceb77cd..4a716d2c 100644 --- a/.github/workflows/tend-review-runs.yaml +++ b/.github/workflows/tend-review-runs.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.10. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.11. Regenerate with: uvx tend@latest init # # Do not edit this file directly — it will be overwritten on regeneration. # To customize behavior, edit the relevant skill (for example, @@ -30,7 +30,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - uses: max-sixty/tend/claude@0.1.10 + - uses: max-sixty/tend/claude@0.1.11 with: github_token: ${{ secrets.TEND_BOT_TOKEN }} claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} diff --git a/.github/workflows/tend-review.yaml b/.github/workflows/tend-review.yaml index 6a6726c5..ebc71a1d 100644 --- a/.github/workflows/tend-review.yaml +++ b/.github/workflows/tend-review.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.10. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.11. Regenerate with: uvx tend@latest init # # Do not edit this file directly — it will be overwritten on regeneration. # To customize behavior, edit the relevant skill (for example, @@ -49,7 +49,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - uses: max-sixty/tend/claude@0.1.10 + - uses: max-sixty/tend/claude@0.1.11 with: github_token: ${{ secrets.TEND_BOT_TOKEN }} claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} diff --git a/.github/workflows/tend-triage.yaml b/.github/workflows/tend-triage.yaml index 230828c6..3e719b94 100644 --- a/.github/workflows/tend-triage.yaml +++ b/.github/workflows/tend-triage.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.10. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.11. Regenerate with: uvx tend@latest init # # Do not edit this file directly — it will be overwritten on regeneration. # To customize behavior, edit the relevant skill (for example, @@ -33,7 +33,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - uses: max-sixty/tend/claude@0.1.10 + - uses: max-sixty/tend/claude@0.1.11 with: github_token: ${{ secrets.TEND_BOT_TOKEN }} claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} diff --git a/.github/workflows/tend-weekly.yaml b/.github/workflows/tend-weekly.yaml index 5d503eec..7f703b2c 100644 --- a/.github/workflows/tend-weekly.yaml +++ b/.github/workflows/tend-weekly.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.10. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.11. Regenerate with: uvx tend@latest init # # Do not edit this file directly — it will be overwritten on regeneration. # To customize behavior, edit the relevant skill (for example, @@ -30,7 +30,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - uses: max-sixty/tend/claude@0.1.10 + - uses: max-sixty/tend/claude@0.1.11 with: github_token: ${{ secrets.TEND_BOT_TOKEN }} claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}