-
Notifications
You must be signed in to change notification settings - Fork 36
Add default concurrency pattern for non-special-case workflows #1910
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Changed hasDefaultConcurrency from true to false in copilot_engine.go - Updated tests to reflect that copilot now uses same formula as other engines - Recompiled all workflow files to remove agent-level concurrency for copilot workflows - All tests pass successfully Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot remove hasDefaultConcurrency it should not be used anymore. |
|
@copilot the default concurrency group should by |
Removed hasDefaultConcurrency completely as it's no longer needed: - Removed hasDefaultConcurrency field from BaseEngine struct - Removed HasDefaultConcurrency() method from CodingAgentEngine interface - Removed HasDefaultConcurrency() implementation from BaseEngine - Removed field from all engine constructors (copilot, claude, codex, custom) - Simplified GenerateJobConcurrencyConfig to only check explicit config - All tests pass Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done! Removed
Done! Removed |
Implemented default concurrency group pattern: gh-aw-${engine-id}-${{ github.workflow }}
- Applied to workflows with generic triggers (workflow_dispatch, schedule, etc.)
- NOT applied to workflows with special triggers (issues, PRs, discussions, push)
- Custom concurrency configuration still takes precedence
- Updated tests to reflect new behavior
- All tests pass
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Implemented! Default concurrency now uses pattern
Implemented! Default concurrency now uses pattern |
|
Agentic Changeset Generator triggered by this pull request. |
Problem
The copilot engine had special concurrency handling that differed from other engines (claude, codex, custom). Specifically, it used
hasDefaultConcurrency: truewhich applied an agent-level concurrency group patterngh-aw-copilotto limit concurrent execution across all copilot workflows globally.This special behavior was inconsistent with the design principle that all engines should use the same concurrency formulas.
Solution
Removed the
hasDefaultConcurrencyfeature entirely and implemented a new default concurrency pattern for workflows without special triggers:hasDefaultConcurrencyfield fromBaseEnginestructHasDefaultConcurrency()method fromCodingAgentEngineinterface andBaseEngineimplementationgh-aw-${engine-id}-${{ github.workflow }}for workflows with generic triggers (workflow_dispatch, schedule, workflow_run, etc.)engine.concurrencyfield continues to work as beforeChanges
Code:
pkg/workflow/agentic_engine.go: RemovedhasDefaultConcurrencyfield andHasDefaultConcurrency()methodpkg/workflow/copilot_engine.go: RemovedhasDefaultConcurrencyfield from engine initializationpkg/workflow/claude_engine.go: RemovedhasDefaultConcurrencyfield from engine initializationpkg/workflow/codex_engine.go: RemovedhasDefaultConcurrencyfield from engine initializationpkg/workflow/custom_engine.go: RemovedhasDefaultConcurrencyfield from engine initializationpkg/workflow/concurrency.go:GenerateJobConcurrencyConfigto implement default concurrency for non-special-case workflowshasSpecialTriggershelper function to detect workflows with special trigger handlingpkg/workflow/concurrency_test.go: Updated unit tests to reflect new behaviorpkg/workflow/engine_concurrency_integration_test.go: Updated integration tests with cases for both special and non-special triggersGenerated workflows:
.lock.ymlfiles with default concurrency pattern for workflows using generic triggersBehavior Change
Workflows with special triggers (issues, PRs, discussions, push):
Workflows with generic triggers (workflow_dispatch, schedule, etc.):
Custom concurrency (always takes precedence):
Testing
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.