fix: Session lock must not block during idle phases (awaiting_review/awaiting_ci) (#724)
Restructure session.lock from command-wrapper flock to fd-based flock so the lock can be released when Claude is idle and re-acquired before injecting the next prompt. - agent-session.sh: add session_lock_acquire/release helpers, open fd in create_agent_session instead of wrapping claude with flock, auto-acquire in agent_inject_into_session before injecting - phase-handler.sh: call session_lock_release at start of awaiting_ci and awaiting_review handlers (Claude is idle during CI polling / review wait) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
cc4c6d7efa
commit
af39b833af
2 changed files with 50 additions and 5 deletions
|
|
@ -261,6 +261,8 @@ _on_phase_change() {
|
|||
|
||||
# ── PHASE: awaiting_ci ──────────────────────────────────────────────────────
|
||||
if [ "$phase" = "PHASE:awaiting_ci" ]; then
|
||||
# Release session lock — Claude is idle during CI polling (#724)
|
||||
session_lock_release
|
||||
|
||||
# Create PR if not yet created
|
||||
if [ -z "${PR_NUMBER:-}" ]; then
|
||||
|
|
@ -458,6 +460,8 @@ Instructions:
|
|||
|
||||
# ── PHASE: awaiting_review ──────────────────────────────────────────────────
|
||||
elif [ "$phase" = "PHASE:awaiting_review" ]; then
|
||||
# Release session lock — Claude is idle during review wait (#724)
|
||||
session_lock_release
|
||||
status "waiting for review on PR #${PR_NUMBER:-?}"
|
||||
CI_FIX_COUNT=0 # Reset CI fix budget for this review cycle
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue