Skip to content

Commit db179c8

Browse files
committed
fix(core): make churn-guard non-blocking (warn instead of block)
1 parent 48b5e2d commit db179c8

1 file changed

Lines changed: 7 additions & 10 deletions

File tree

packages/core/src/agent-workspace-hooks.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,9 @@ fi
169169
source "\$ao_bin_dir/ao-metadata-helper.sh" 2>/dev/null || true
170170
171171
# ---------------------------------------------------------------------------
172-
# Churn guard — block PR creation when open PRs already touch same files.
172+
# Churn guard — warn when open PRs already touch same files (non-blocking).
173173
# Fail-open: any error (no python3, no git, API timeout) allows the PR.
174-
# Override: include "Supersedes #N" in --body to bypass.
174+
# Override: include "Supersedes #N" in --body to suppress the warning.
175175
# ---------------------------------------------------------------------------
176176
churn_guard() {
177177
command -v python3 &>/dev/null || return 0
@@ -291,19 +291,16 @@ PYEOF
291291
if printf '%s' "\$overlap" | grep -q "^OVERLAP"; then
292292
echo "" >&2
293293
echo "============================================" >&2
294-
echo "BLOCKED: File overlap with existing open PRs" >&2
294+
echo "WARNING: File overlap with existing open PRs" >&2
295295
echo "" >&2
296296
echo "Your branch changes files already modified by open PRs:" >&2
297297
printf '%s\\n' "\$overlap" | tail -n +2 >&2
298298
echo "" >&2
299299
echo " 1. Check if the existing PR already covers your fix" >&2
300-
echo " 2. If yes: comment on that PR instead of creating a new one" >&2
300+
echo " 2. If yes: consider commenting on that PR instead" >&2
301301
echo " 3. If no: coordinate with the existing PR author" >&2
302-
echo " 4. Only create a new PR if the existing one is stale (>24h no activity)" >&2
303-
echo "" >&2
304-
echo "Override: add 'Supersedes #<N>' to --body to bypass." >&2
302+
echo " 4. Add 'Supersedes #<N>' to --body to suppress this warning." >&2
305303
echo "============================================" >&2
306-
return 1
307304
fi
308305
309306
return 0
@@ -313,8 +310,8 @@ PYEOF
313310
# All other commands pass through transparently without stream merging.
314311
case "\$1/\$2" in
315312
pr/create)
316-
# Run churn guard before creating — exits 1 and prints explanation if blocked
317-
churn_guard "\$@" || exit 1
313+
# Run churn guard before creating — warns on file overlap but does not block
314+
churn_guard "\$@"
318315
319316
tmpout="\$(mktemp)"
320317
trap 'rm -f "\$tmpout"' EXIT

0 commit comments

Comments
 (0)