diff --git a/.github/workflows/tend-ci-fix.yaml b/.github/workflows/tend-ci-fix.yaml index b6e84eaeca..0d096f9eaf 100644 --- a/.github/workflows/tend-ci-fix.yaml +++ b/.github/workflows/tend-ci-fix.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.2.8. Regenerate with: uvx tend@latest init +# Generated by tend 0.2.9. 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, @@ -43,7 +43,7 @@ jobs: - uses: ./.github/actions/tend-setup - - uses: max-sixty/tend/claude@0.2.8 + - uses: max-sixty/tend/claude@0.2.9 with: github_token: ${{ secrets.TEND_BOT_TOKEN }} claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} diff --git a/.github/workflows/tend-mention-relay.yaml b/.github/workflows/tend-mention-relay.yaml index 4941dc5f84..1f1174705a 100644 --- a/.github/workflows/tend-mention-relay.yaml +++ b/.github/workflows/tend-mention-relay.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.2.8. Regenerate with: uvx tend@latest init +# Generated by tend 0.2.9. 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, @@ -41,6 +41,12 @@ jobs: # any user with read access already wakes `handle` on a same-repo PR. # Widening this is a separate decision, and moot while a fork run's token # is refused the dispatch POST (403, probed). + # + # The pause variable is deliberately absent: it gates the jobs that boot + # the agent, and this job boots none. `TEND_ENABLED=false` skips + # tend-mention's `verify` — and `handle`, which needs it — so a relayed + # event reaches nothing. A paused repo still runs this job and still POSTs + # the dispatch; both runs then do nothing. if: github.event.pull_request.head.repo.full_name == github.repository runs-on: ubuntu-24.04 # No secrets here. `contents: write` is what the dispatch POST needs, and diff --git a/.github/workflows/tend-mention.yaml b/.github/workflows/tend-mention.yaml index ae9c4e4404..ba81d285cd 100644 --- a/.github/workflows/tend-mention.yaml +++ b/.github/workflows/tend-mention.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.2.8. Regenerate with: uvx tend@latest init +# Generated by tend 0.2.9. 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, @@ -78,7 +78,15 @@ jobs: def gh(*args: str, quiet: bool = False) -> str: - result = subprocess.run(["gh", *args], capture_output=True, text=True, check=False) + # `gh` colorizes a piped `--json`/`--jq` response when the job's + # environment forces color, and the ANSI codes land inside the body + # `gh_json` parses. `CLICOLOR_FORCE=0` is the setting that defeats it: + # `gh` ranks a forced value above `NO_COLOR`, so `NO_COLOR` alone loses. + env = os.environ.copy() + env.update(NO_COLOR="1", CLICOLOR_FORCE="0") + result = subprocess.run( + ["gh", *args], capture_output=True, text=True, env=env, check=False + ) if result.returncode: if result.stderr and not quiet: sys.stderr.write(result.stderr) @@ -321,7 +329,7 @@ jobs: # the API record — the dispatch payload never carries one to spoof. EVENT_TS: ${{ github.event.comment.updated_at || needs.verify.outputs.ts || github.event.issue.updated_at }} - - uses: max-sixty/tend/claude@0.2.8 + - uses: max-sixty/tend/claude@0.2.9 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 ac046d14de..80570254bc 100644 --- a/.github/workflows/tend-nightly.yaml +++ b/.github/workflows/tend-nightly.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.2.8. Regenerate with: uvx tend@latest init +# Generated by tend 0.2.9. 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, @@ -34,7 +34,7 @@ jobs: - uses: ./.github/actions/tend-setup - - uses: max-sixty/tend/claude@0.2.8 + - uses: max-sixty/tend/claude@0.2.9 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 b55938adb9..965600257c 100644 --- a/.github/workflows/tend-notifications.yaml +++ b/.github/workflows/tend-notifications.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.2.8. Regenerate with: uvx tend@latest init +# Generated by tend 0.2.9. 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, @@ -72,11 +72,17 @@ jobs: def _gh(*args: str, quiet: bool = False) -> str: + # `gh` colorizes a piped `--json`/`--jq` response when the job's + # environment forces color, and the ANSI codes land inside the body + # `_json` parses. `CLICOLOR_FORCE=0` is the setting that defeats it: + # `gh` ranks a forced value above `NO_COLOR`, so `NO_COLOR` alone loses. + env = os.environ.copy() + env.update(NO_COLOR="1", CLICOLOR_FORCE="0") result = subprocess.run( ["gh", *args], capture_output=True, text=True, - env=os.environ.copy(), + env=env, check=False, ) if result.returncode: @@ -234,7 +240,7 @@ jobs: - uses: ./.github/actions/tend-setup if: steps.check.outputs.count != '0' || steps.check.outputs.conflict_count != '0' || github.event_name == 'workflow_dispatch' - - uses: max-sixty/tend/claude@0.2.8 + - uses: max-sixty/tend/claude@0.2.9 if: steps.check.outputs.count != '0' || steps.check.outputs.conflict_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 9da813217c..87ac14d386 100644 --- a/.github/workflows/tend-review-runs.yaml +++ b/.github/workflows/tend-review-runs.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.2.8. Regenerate with: uvx tend@latest init +# Generated by tend 0.2.9. 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, @@ -34,7 +34,7 @@ jobs: - uses: ./.github/actions/tend-setup - - uses: max-sixty/tend/claude@0.2.8 + - uses: max-sixty/tend/claude@0.2.9 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 03051edbc0..ff6c6e7c83 100644 --- a/.github/workflows/tend-review.yaml +++ b/.github/workflows/tend-review.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.2.8. Regenerate with: uvx tend@latest init +# Generated by tend 0.2.9. 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, @@ -52,7 +52,7 @@ jobs: - uses: ./.github/actions/tend-setup - - uses: max-sixty/tend/claude@0.2.8 + - uses: max-sixty/tend/claude@0.2.9 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 c3cb4bc175..25f575e3ae 100644 --- a/.github/workflows/tend-triage.yaml +++ b/.github/workflows/tend-triage.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.2.8. Regenerate with: uvx tend@latest init +# Generated by tend 0.2.9. 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, @@ -46,7 +46,7 @@ jobs: - uses: ./.github/actions/tend-setup - - uses: max-sixty/tend/claude@0.2.8 + - uses: max-sixty/tend/claude@0.2.9 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 1f1f8ea94f..56af4c0766 100644 --- a/.github/workflows/tend-weekly.yaml +++ b/.github/workflows/tend-weekly.yaml @@ -1,4 +1,4 @@ -# Generated by tend 0.2.8. Regenerate with: uvx tend@latest init +# Generated by tend 0.2.9. 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, @@ -34,7 +34,7 @@ jobs: - uses: ./.github/actions/tend-setup - - uses: max-sixty/tend/claude@0.2.8 + - uses: max-sixty/tend/claude@0.2.9 with: github_token: ${{ secrets.TEND_BOT_TOKEN }} claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}