diff --git a/.github/workflows/tend-ci-fix.yaml b/.github/workflows/tend-ci-fix.yaml index 3501ed21..d9ed225b 100644 --- a/.github/workflows/tend-ci-fix.yaml +++ b/.github/workflows/tend-ci-fix.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.9. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.10. 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.9 + - uses: max-sixty/tend/claude@0.1.10 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 e706f5c1..37be3e85 100644 --- a/.github/workflows/tend-mention.yaml +++ b/.github/workflows/tend-mention.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.9. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.10. 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, @@ -80,6 +80,24 @@ jobs: exit 0 fi + # The bot's own empty-body APPROVED review is terminal — nothing to + # act on. The engagement heuristic below counts this very review + # (BOT_REVIEWS > 0) and would spin up a no-op session. Gate on three + # things, not just author: review *state* (an approval is terminal; a + # bot CHANGES_REQUESTED/COMMENTED review keeps actionable signal) and + # an empty *body* (an approval carrying nits in its body may warrant + # follow-up changes, so let it fire). Together these preserve #166's + # actionable bot self-reviews. review.state arrives lowercase in the + # webhook payload (REST returns uppercase), hence "approved". + # COMMENT_BODY holds review.body for a pull_request_review event. + if [ "$EVENT_NAME" = "pull_request_review" ] \ + && [ "$REVIEW_AUTHOR" = "dormouse-bot" ] \ + && [ "$REVIEW_STATE" = "approved" ] \ + && [ -z "$COMMENT_BODY" ]; then + echo "should_run=false" >> "$GITHUB_OUTPUT" + exit 0 + fi + # pull_request_review payloads include review.body (checked above) # but NOT the bodies of inline comments attached to the review. # Fetch them so a first-contact @-mention inside an inline comment @@ -145,6 +163,8 @@ jobs: PR_URL: ${{ github.event.issue.pull_request.url }} EVENT_PR_NUMBER: ${{ github.event.pull_request.number }} REVIEW_ID: ${{ github.event.review.id }} + REVIEW_AUTHOR: ${{ github.event.review.user.login }} + REVIEW_STATE: ${{ github.event.review.state }} - name: React to mention if: | @@ -207,7 +227,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.9 + - uses: max-sixty/tend/claude@0.1.10 with: github_token: ${{ secrets.TEND_BOT_TOKEN }} claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} diff --git a/.github/workflows/tend-nightly.yaml b/.github/workflows/tend-nightly.yaml index 2726ae00..4a6cda83 100644 --- a/.github/workflows/tend-nightly.yaml +++ b/.github/workflows/tend-nightly.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.9. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.10. 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.9 + - uses: max-sixty/tend/claude@0.1.10 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 1ae1673d..25758c31 100644 --- a/.github/workflows/tend-notifications.yaml +++ b/.github/workflows/tend-notifications.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.9. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.10. 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.9 + - uses: max-sixty/tend/claude@0.1.10 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 27caef2d..4ceb77cd 100644 --- a/.github/workflows/tend-review-runs.yaml +++ b/.github/workflows/tend-review-runs.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.9. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.10. 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.9 + - uses: max-sixty/tend/claude@0.1.10 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 0aff097f..6a6726c5 100644 --- a/.github/workflows/tend-review.yaml +++ b/.github/workflows/tend-review.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.9. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.10. 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.9 + - uses: max-sixty/tend/claude@0.1.10 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 2483f87d..230828c6 100644 --- a/.github/workflows/tend-triage.yaml +++ b/.github/workflows/tend-triage.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.9. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.10. 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.9 + - uses: max-sixty/tend/claude@0.1.10 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 15b57f32..5d503eec 100644 --- a/.github/workflows/tend-weekly.yaml +++ b/.github/workflows/tend-weekly.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.1.9. Regenerate with: uvx tend@latest init +# Generated by tend 0.1.10. 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.9 + - uses: max-sixty/tend/claude@0.1.10 with: github_token: ${{ secrets.TEND_BOT_TOKEN }} claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}