Skip to content

fix: detect approval via current labels and allow unpaused nodes to execute#71

Open
eshulman2 wants to merge 2 commits into
mainfrom
fix/approval-signal-detection
Open

fix: detect approval via current labels and allow unpaused nodes to execute#71
eshulman2 wants to merge 2 commits into
mainfrom
fix/approval-signal-detection

Conversation

@eshulman2
Copy link
Copy Markdown
Collaborator

Summary

Fixes two issues that caused AISOS-721 to get stuck at prd_approval_gate:

  • Label-based approval fallback: The approval detection only checked Jira changelog transitions (fromStringtoString), which fails when users change labels in two steps (remove pending, then add approved). Now falls back to checking the ticket's current labels — if the matching -approved label is present, it's treated as approved.

  • Unpaused execution nodes proceed without signal: When a checkpoint is patched to skip a gate (e.g., current_node=generate_spec, is_paused=false), the workflow would still refuse to run because _handle_resume_event required a signal. Now, non-gate execution nodes with is_paused=false are allowed to proceed. Gate nodes and CI-waiting nodes still require explicit signals.

Test plan

  • At an approval gate, change labels in two separate steps (remove pending, then add approved) — verify workflow proceeds
  • At an approval gate, change labels in one step (swap pending for approved) — verify workflow still proceeds (no regression)
  • Patch checkpoint to current_node=generate_spec is_paused=false — verify next event triggers execution
  • Incomplete CI check_suite at ci_evaluator — verify workflow does NOT auto-proceed (requires completed check)
  • All 928 unit tests pass

🤖 Generated with Claude Code

eshulman2 and others added 2 commits June 2, 2026 11:15
…xecute

Two fixes for stuck approval gates:

1. When changelog-based label detection fails (e.g. user changes labels
   in two separate steps), fall back to checking the ticket's current
   labels. If the matching -approved label is present, treat as approved.

2. When a workflow is at a non-gate execution node with is_paused=false
   (e.g. after a checkpoint patch), allow it to proceed without
   requiring a signal. Gate nodes and CI-waiting nodes still require
   explicit signals.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant