fix: prevent duplicate implementer dispatches#190
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the Pipeline Orchestrator workflow to reduce duplicate “issue implementer” dispatches by de-duplicating triggers, queueing orchestrator runs instead of cancelling them, and adding an in-flight implementer guard before dispatch.
Changes:
- Removed the
pushtrigger onmainto avoid rapid back-to-back orchestrator invocations on merges. - Set
concurrency.cancel-in-progress: falseso orchestrator runs queue rather than canceling each other. - Added a pre-dispatch check using
gh run listto skip dispatching when an implementer run is already queued/in progress.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
939007e to
07a1d0a
Compare
07a1d0a to
2323763
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Remove push trigger (cron every 5 min covers post-merge dispatch) - cancel-in-progress: false (queue runs instead of cancelling, so queued runs see state left by previous run) - Check for in-flight implementer runs before dispatching Fixes #164 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2323763 to
6b8f0df
Compare
microsasa
pushed a commit
that referenced
this pull request
Mar 21, 2026
…d label desync - Changelog: entries for PR #186 (pre-fetch), PR #190 (dedup fix), quality gate label/approval desync - Agentic-workflows: 5 new pitfalls (#23-27), updated agent inventory table, history entry for 2026-03-20/21 session Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
microsasa
pushed a commit
that referenced
this pull request
Mar 21, 2026
…d label desync - Changelog: entries for PR #186 (pre-fetch), PR #190 (dedup fix), quality gate label/approval desync - Agentic-workflows: 5 new pitfalls (#23-27), updated agent inventory table, history entry for 2026-03-20/21 session Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
microsasa
pushed a commit
that referenced
this pull request
Mar 21, 2026
…d label desync - Changelog: entries for PR #186 (pre-fetch), PR #190 (dedup fix), quality gate label/approval desync - Agentic-workflows: 5 new pitfalls (#23-27), updated agent inventory table, history entry for 2026-03-20/21 session Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
microsasa
pushed a commit
that referenced
this pull request
Mar 21, 2026
…d label desync - Changelog: entries for PR #186 (pre-fetch), PR #190 (dedup fix), quality gate label/approval desync - Agentic-workflows: 5 new pitfalls (#23-27), updated agent inventory table, history entry for 2026-03-20/21 session Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
microsasa
pushed a commit
that referenced
this pull request
Mar 21, 2026
…d label desync - Changelog: entries for PR #186 (pre-fetch), PR #190 (dedup fix), quality gate label/approval desync - Agentic-workflows: 5 new pitfalls (#23-27), updated agent inventory table, history entry for 2026-03-20/21 session Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
microsasa
added a commit
that referenced
this pull request
Mar 21, 2026
* fix: re-add labels config to implementer create-pull-request The labels: [aw] config was removed based on a vague 'node ID resolution error' that was never properly investigated. The gh-aw docs officially support this field. Re-adding it so labels are applied by infrastructure, not dependent on agent behavior. Closes #108 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: update changelog and agentic-workflows for pre-fetch, dedup, and label desync - Changelog: entries for PR #186 (pre-fetch), PR #190 (dedup fix), quality gate label/approval desync - Agentic-workflows: 5 new pitfalls (#23-27), updated agent inventory table, history entry for 2026-03-20/21 session Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Sasa Junuzovic <sasa@Sasas-MacBook-Air.local> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Mar 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The orchestrator dispatches a new implementer on every trigger without checking if one is already running. When multiple triggers fire in quick succession (e.g., two PRs merging back-to-back), multiple implementers get dispatched for different issues. GitHub's concurrency group then cancels intermediate runs, leaving those issues with
aw-dispatchedlabel but never worked on.Observed: 4 implementer dispatches in 10 minutes, 1 cancelled, issues #160-#182 all labeled
aw-dispatched.Changes
pushtrigger — cron every 5 min covers post-merge dispatch, removing a major source of rapid-fire triggerscancel-in-progress: false— queue orchestrator runs instead of cancelling, so queued runs see state left by previous rungh run listfor in_progress/queued before dispatchingFixes #164