Conversation
|
@copilot make sure the concurrency section is also applied in the detection job |
- Remove MaxConcurrency and ConcurrencyGroup fields from EngineConfig
- Add Concurrency field to EngineConfig to store YAML-formatted concurrency config
- Update ExtractEngineConfig to parse concurrency field (string or object format)
- Update GenerateJobConcurrencyConfig to use new field with default gh-aw-{engine-id}
- Update JSON schema to replace max-concurrency with concurrency field
- Update tests to reflect new concurrency behavior
- Add integration tests for concurrency field extraction and compilation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
- Replace max-concurrency documentation with concurrency field - Update frontmatter.md with new Agent Job Concurrency section - Update concurrency.md with comprehensive concurrency documentation - Remove references to slot-based distribution - Add examples for string and object concurrency formats - Document default behavior (single job per engine) - Update troubleshooting sections Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
- Verified default concurrency pattern: gh-aw-{engine-id}
- Verified string format concurrency conversion
- Verified object format concurrency with cancel-in-progress
- All unit tests pass
- All integration tests pass
- Manual compilation testing successful
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
- Add GenerateJobConcurrencyConfig call in buildThreatDetectionJob - Detection job now uses same concurrency pattern as agent job - Maintains consistency across all agentic jobs (agent and detection) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done. The concurrency configuration is now applied to the detection job in commit 7c4a2ed. The detection job uses the same Both custom and default concurrency patterns are now applied to detection jobs:
|
|
@copilot add a flag in the agentic engine configuration to enable this default concurrency mode. Claude/Codex should NOT have it enabled, Copilot should have it enabled by default. |
- Add HasDefaultConcurrency() method to CodingAgentEngine interface - Add hasDefaultConcurrency field to BaseEngine struct - Copilot engine has default concurrency enabled (true) - Claude, Codex, and Custom engines do NOT have default concurrency (false) - Update GenerateJobConcurrencyConfig to check engine flag before applying default - Update tests to reflect new behavior per engine - Engines without default concurrency return empty string (no job concurrency) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done. Added Default concurrency behavior per engine:
All engines can still use custom concurrency via the |
…ty and error handling - Simplified the parsing and validation of agent output in create_discussion.js and create_issue.js. - Enhanced error messages for better debugging and user feedback. - Streamlined the process of creating discussions and issues, ensuring consistent handling of labels and titles. - Added checks for repository settings to ensure discussions and issues can be created. - Improved summary output for staged mode to provide clearer previews of discussions and issues to be created.
… updating related tests
Overview
Replaces the
engine.max-concurrencyfield with a newengine.concurrencyfield that accepts standard GitHub Actions concurrency syntax. This provides more flexibility in controlling agent job concurrency while simplifying the default behavior.Changes
Old Behavior (max-concurrency)
The previous implementation used slot-based distribution with a default of 3 concurrent jobs:
This generated:
gh-aw-claude-${{ github.run_id % 5 }}(distributing workflows across 5 slots)New Behavior (concurrency)
The new implementation supports full GitHub Actions concurrency syntax with per-engine default concurrency control:
Default behavior (engine-specific):
Copilot has default concurrency enabled:
Generates:
gh-aw-copilot(single job per engine across all workflows)Claude, Codex, and Custom engines do NOT have default concurrency:
Generates: No concurrency configuration (unlimited concurrent jobs)
String format:
Generates:
concurrency: { group: "custom-${{ github.workflow }}" }Object format (full control):
Benefits
Migration Guide
Workflows using
max-concurrencywill have different behavior based on engine type:Copilot workflows:
gh-aw-copilot-${{ github.run_id % 3 }}(3 concurrent jobs via slot distribution)gh-aw-copilot(single job per engine)Claude/Codex workflows:
gh-aw-claude-${{ github.run_id % 3 }}(3 concurrent jobs via slot distribution)To add concurrency control to Claude/Codex workflows:
Implementation Details
MaxConcurrencyandConcurrencyGroupfields fromEngineConfigstructConcurrencyfield to store YAML-formatted concurrency configurationHasDefaultConcurrency()method toCodingAgentEngineinterfacehasDefaultConcurrencyfield toBaseEnginestruct (Copilot: true, others: false)GenerateJobConcurrencyConfig()to check engine flag before applying default concurrencybuildThreatDetectionJob()to apply concurrency configuration to detection jobTesting
Fixes #[issue-number]
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.