From 03f9b2cc31c13dd09261ffd3ee7fd791fed9bd42 Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Sat, 22 Aug 2026 21:06:45 -0700 Subject: [PATCH] Fill In the Release-Watch Timeout Placeholder Step 6's run-watch bound was a literal '' template placeholder rather than a value, never a runnable command. Filled in 2700 (45 minutes), matching scripts/pr_review.py's own default, unless the maintainer states a different bound for a specific release. Originally caught by PR #939, from a separate session working the same file concurrently. That PR's other fix (checkout-safety) is superseded by the more thorough version already on develop from #937/#940, so #939 was closed rather than merged, and this is the one still-valid piece pulled out on its own. Co-Authored-By: Claude Sonnet 5 --- .agents/skills/merge-and-release/SKILL.md | 14 ++++++++------ .claude-plugin/fleet-skills/.source-digest | 2 +- .../fleet-skills/skills/merge-and-release/SKILL.md | 14 ++++++++------ .github/skills/merge-and-release/SKILL.md | 14 ++++++++------ 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/.agents/skills/merge-and-release/SKILL.md b/.agents/skills/merge-and-release/SKILL.md index 0ae097f2..dcf4e34d 100644 --- a/.agents/skills/merge-and-release/SKILL.md +++ b/.agents/skills/merge-and-release/SKILL.md @@ -93,12 +93,14 @@ skill covers all of it, scoped down by what the maintainer actually asks for. distinctly, the ref changed mid-dispatch, rather than folding it into an ordinary absent-run timeout. Report and stop rather than guessing once the interval elapses with zero or more than one candidate still matching. Only once exactly one candidate is confirmed, poll that one run - id to completion in - one further bounded background wait with an explicit timeout, `timeout gh run - watch --repo owner/repo --exit-status` on a host with GNU `timeout`, or the equivalent - bounded-wait mechanism on a host without it (macOS without coreutils, native Windows), and - report a timeout separately from a completed run's own conclusion, the tag or version it - produced. A run that fails, times out, or never starts is reported, never silently retried. + id to completion in one further bounded background wait with an explicit, finite timeout, + 2700 seconds (45 minutes, matching `scripts/pr_review.py`'s own default) unless the maintainer + states a different bound for this specific release: `timeout 2700 gh run watch --repo + owner/repo --exit-status` on a host with GNU `timeout`, or the equivalent bounded-wait + mechanism enforcing the same bound on a host without it (macOS without coreutils, native + Windows). Report a timeout separately from a completed run's own conclusion, the tag or + version it produced. A run that fails, times out, or never starts is reported, never silently + retried. 7. In the hub, when the chosen scope includes a release, bring this checkout to the merged content without discarding or mixing in anything local. First assert `git status --porcelain --untracked-files=all --ignored` is empty, and stop and report rather than proceeding over any diff --git a/.claude-plugin/fleet-skills/.source-digest b/.claude-plugin/fleet-skills/.source-digest index 6baf2545..56fa3556 100644 --- a/.claude-plugin/fleet-skills/.source-digest +++ b/.claude-plugin/fleet-skills/.source-digest @@ -1 +1 @@ -1b7f99942fd01422 +b8df12b7c8013f3d diff --git a/.claude-plugin/fleet-skills/skills/merge-and-release/SKILL.md b/.claude-plugin/fleet-skills/skills/merge-and-release/SKILL.md index 0ae097f2..dcf4e34d 100644 --- a/.claude-plugin/fleet-skills/skills/merge-and-release/SKILL.md +++ b/.claude-plugin/fleet-skills/skills/merge-and-release/SKILL.md @@ -93,12 +93,14 @@ skill covers all of it, scoped down by what the maintainer actually asks for. distinctly, the ref changed mid-dispatch, rather than folding it into an ordinary absent-run timeout. Report and stop rather than guessing once the interval elapses with zero or more than one candidate still matching. Only once exactly one candidate is confirmed, poll that one run - id to completion in - one further bounded background wait with an explicit timeout, `timeout gh run - watch --repo owner/repo --exit-status` on a host with GNU `timeout`, or the equivalent - bounded-wait mechanism on a host without it (macOS without coreutils, native Windows), and - report a timeout separately from a completed run's own conclusion, the tag or version it - produced. A run that fails, times out, or never starts is reported, never silently retried. + id to completion in one further bounded background wait with an explicit, finite timeout, + 2700 seconds (45 minutes, matching `scripts/pr_review.py`'s own default) unless the maintainer + states a different bound for this specific release: `timeout 2700 gh run watch --repo + owner/repo --exit-status` on a host with GNU `timeout`, or the equivalent bounded-wait + mechanism enforcing the same bound on a host without it (macOS without coreutils, native + Windows). Report a timeout separately from a completed run's own conclusion, the tag or + version it produced. A run that fails, times out, or never starts is reported, never silently + retried. 7. In the hub, when the chosen scope includes a release, bring this checkout to the merged content without discarding or mixing in anything local. First assert `git status --porcelain --untracked-files=all --ignored` is empty, and stop and report rather than proceeding over any diff --git a/.github/skills/merge-and-release/SKILL.md b/.github/skills/merge-and-release/SKILL.md index 0ae097f2..dcf4e34d 100644 --- a/.github/skills/merge-and-release/SKILL.md +++ b/.github/skills/merge-and-release/SKILL.md @@ -93,12 +93,14 @@ skill covers all of it, scoped down by what the maintainer actually asks for. distinctly, the ref changed mid-dispatch, rather than folding it into an ordinary absent-run timeout. Report and stop rather than guessing once the interval elapses with zero or more than one candidate still matching. Only once exactly one candidate is confirmed, poll that one run - id to completion in - one further bounded background wait with an explicit timeout, `timeout gh run - watch --repo owner/repo --exit-status` on a host with GNU `timeout`, or the equivalent - bounded-wait mechanism on a host without it (macOS without coreutils, native Windows), and - report a timeout separately from a completed run's own conclusion, the tag or version it - produced. A run that fails, times out, or never starts is reported, never silently retried. + id to completion in one further bounded background wait with an explicit, finite timeout, + 2700 seconds (45 minutes, matching `scripts/pr_review.py`'s own default) unless the maintainer + states a different bound for this specific release: `timeout 2700 gh run watch --repo + owner/repo --exit-status` on a host with GNU `timeout`, or the equivalent bounded-wait + mechanism enforcing the same bound on a host without it (macOS without coreutils, native + Windows). Report a timeout separately from a completed run's own conclusion, the tag or + version it produced. A run that fails, times out, or never starts is reported, never silently + retried. 7. In the hub, when the chosen scope includes a release, bring this checkout to the merged content without discarding or mixing in anything local. First assert `git status --porcelain --untracked-files=all --ignored` is empty, and stop and report rather than proceeding over any