feat: comprehensive enhancements combining all open PRs and fixes#1
Merged
Conversation
This commit combines and implements all open issues and PRs into a cohesive, production-ready solution: Fixes: - Fix #8, #11: Add missing cmd/bmad-automate/main.go entry point - Fix #8, #11: Fix .gitignore to not exclude cmd/bmad-automate directory - Fix #9: Reorder CLI arguments (--flags before -p prompt) and add --verbose - Fix #9: Add sync.WaitGroup for stderr handling in ExecuteWithResult - Fix #9: Use errors.As instead of type assertion for Go 1.13+ compatibility - Fix #4: Add Windows support to justfile with PowerShell and platform-specific recipes Features: - Feat #5, #6: Add per-workflow model configuration (opus/sonnet/haiku) - Feat #6: Add --auto-retry flag for rate limit handling (run/queue/epic/all-epics) - Feat #6: Add all-epics command to process all active epics at once - Feat #6: Add rate limit detection package with intelligent wait time parsing - Feat: Add version command displaying current version and release date - Feat: Enhanced dry-run mode showing which model will be used per workflow New Files: - cmd/bmad-automate/main.go - Entry point for the CLI - internal/cli/all_epics.go - New command to process all epics - internal/cli/retry.go - Auto-retry logic with rate limit handling - internal/cli/version.go - Version command - internal/cli/version_test.go - Tests for version command - internal/ratelimit/detector.go - Rate limit error detection - internal/ratelimit/detector_state.go - Thread-safe rate limit state - internal/ratelimit/detector_test.go - Tests for detector - internal/ratelimit/detector_state_test.go - Tests for state Modified: - internal/claude/client.go - Updated Executor interface with model parameter - internal/cli/root.go - Added new commands and interfaces - internal/cli/run.go - Added --auto-retry flag and model display in dry-run - internal/cli/epic.go - Added --auto-retry flag and model display - internal/cli/queue.go - Added --auto-retry flag and model display - internal/config/types.go - Added Model field to WorkflowConfig - internal/config/config.go - Added GetModel() method - internal/workflow/workflow.go - Updated to pass model to executor - internal/workflow/steps.go - Added Model field to Step - internal/router/lifecycle.go - Added Model field to LifecycleStep - internal/status/reader.go - Added GetAllEpics() method - justfile - Added Windows support - .gitignore - Fixed to not exclude cmd directory - All test files updated for new interfaces Co-Authored-By: Claude <noreply@anthropic.com>
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.
Summary
This PR combines and implements all open issues and PRs into a cohesive, production-ready solution. It addresses installation issues, adds major new features, and improves robustness.
Issues Resolved
Key Features
1. Fixed Installation & Build Issues
cmd/bmad-automate/main.goentry point.gitignorepattern that was excluding the cmd directoryjust installandjust build2. Per-Workflow Model Configuration (PR #5, #6)
config/workflows.yaml:Executorinterface to accept model parameter3. Automatic Rate Limit Handling (PR #6)
--auto-retryflag onrun,queue,epic, andall-epicscommands4. All-Epics Command (PR #6)
all-epicscommand processes all active epics in sequence--dry-runand--auto-retryflags5. CLI Robustness (PR #9)
-pand prompt--verboseflag required by Claude CLI for stream-json outputsync.WaitGroupsynchronization for stderr handlingerrors.Asfor proper error unwrapping (Go 1.13+)6. Windows Support (PR #4)
set windows-shellto use PowerShell on Windows[unix]and[windows]recipe annotations for:cleancommandruncommand7. Version Command
versioncommand displays current version (1.1.0) and release dateNew Files
Modified Files
internal/claude/client.go- Updated Executor interfaceinternal/cli/*.go- Added new features and flagsinternal/config/*.go- Added model configurationinternal/workflow/*.go- Model supportinternal/router/lifecycle.go- Model fieldinternal/status/reader.go- GetAllEpics methodjustfile- Windows support.gitignore- Fixed exclusion patternUsage Examples
Testing
Breaking Changes
None. All existing workflows remain fully compatible. The model parameter is optional and defaults to empty string (using Claude CLI's default model).
Benefits
Documentation
All commands have updated help text. Example:
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com