diff --git a/.github/workflows/tend-ci-fix.yaml b/.github/workflows/tend-ci-fix.yaml index b85f63b73..83b4fe172 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, @@ -41,7 +41,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - 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 4941dc5f8..1f1174705 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 c8772697b..b1b6e3322 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) @@ -319,7 +327,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 246662b74..b13fe3e7e 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, @@ -32,7 +32,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - 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 a9a6415be..e5f9836a8 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: @@ -231,7 +237,7 @@ jobs: fetch-depth: 0 fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - 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 ea32341de..fcdd5d2a1 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, @@ -32,7 +32,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - 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 83f555ae8..119324481 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, @@ -50,7 +50,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - 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 5962ea900..08cc7cd5b 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, @@ -44,7 +44,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - 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 cd4f022df..6fe69219f 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, @@ -32,7 +32,7 @@ jobs: fetch-tags: true token: ${{ secrets.TEND_BOT_TOKEN }} - - 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 }}