fix: address review — restore +x, guard double comment, update stale docs (#352)

- Restore executable bit on gardener/gardener-poll.sh (cron invokes it directly)
- Add _BLOCKED_POSTED guard to prevent duplicate diagnostic comments when
  both _on_phase_change(PHASE:crashed) and the belt-and-suspenders exit
  handler both call post_blocked_diagnostic()
- Update stale documentation:
  - gardener-run.sh: remove "CI escalation recipes" from issue body
  - AGENTS.md: update directory layout comment for gardener-poll.sh
  - gardener-poll.sh: remove recipe engine description from header

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
openhands 2026-03-21 05:55:27 +00:00
parent bda9240268
commit 7b6b56d761
5 changed files with 7 additions and 11 deletions

View file

@ -17,7 +17,7 @@ disinto/
├── dev/ dev-poll.sh, dev-agent.sh, phase-handler.sh — issue implementation
├── review/ review-poll.sh, review-pr.sh — PR review
├── gardener/ gardener-run.sh — files action issue for run-gardener formula
│ gardener-poll.sh, gardener-agent.sh — recipe engine + grooming
│ gardener-poll.sh, gardener-agent.sh — grooming
├── predictor/ predictor-run.sh — daily cron executor for run-predictor formula
├── planner/ planner-run.sh — direct cron executor for run-planner formula
│ planner/journal/ — daily raw logs from each planner run

View file

@ -772,7 +772,10 @@ case "${_MONITOR_LOOP_EXIT:-}" in
crashed)
# Belt-and-suspenders: _on_phase_change(PHASE:crashed) handles primary
# cleanup (diagnostic comment, blocked label, worktree, files).
# Only post if the callback didn't already (guard prevents double comment).
if [ "${_BLOCKED_POSTED:-}" != "true" ]; then
post_blocked_diagnostic "crashed"
fi
;;
done)
# Belt-and-suspenders: callback in phase-handler.sh handles primary cleanup,

View file

@ -93,6 +93,7 @@ ${tmux_output}
-d "{\"labels\":[${blocked_id}]}" >/dev/null 2>&1 || true
fi
CLAIMED=false
_BLOCKED_POSTED=true
}
# --- Build phase protocol prompt (shared across agents) ---

8
gardener/gardener-poll.sh Normal file → Executable file
View file

@ -4,7 +4,6 @@
#
# Cron: daily (or 2x/day). Handles lock management, escalation reply
# injection, and delegates backlog grooming to gardener-agent.sh.
# Then processes dev-agent CI escalations via the recipe engine.
#
# Grooming (delegated to gardener-agent.sh):
# - Duplicate titles / overlapping scope
@ -12,13 +11,6 @@
# - Stale issues (no activity > 14 days)
# - Blockers starving the factory
# - Tech-debt promotion / dust bundling
#
# CI escalation (recipe-driven, handled here):
# - ShellCheck per-file sub-issues
# - Generic CI failure issues
# - Chicken-egg CI handling
# - Cascade rebase + retry merge
# - Flaky test quarantine
# =============================================================================
set -euo pipefail

View file

@ -51,7 +51,7 @@ model: opus
---
Periodic gardener housekeeping run. The action-agent reads \`formulas/run-gardener.toml\`
and executes the steps: preflight, grooming, blocked-review, CI escalation recipes,
and executes the steps: preflight, grooming, blocked-review,
AGENTS.md update, and commit-and-pr.
Filed automatically by \`gardener-run.sh\`."