fix(ready): exclude molecule steps from bd ready by default (#1246)
* fix(ready): exclude molecule steps from bd ready by default (GH#1239) Add ID prefix constants (IDPrefixMol, IDPrefixWisp) to types.go as single source of truth. Update pour.go and wisp.go to use these constants. GetReadyWork now excludes issues with -mol- in their ID when no explicit type filter is specified. Users can still see mol steps with --type=task. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(ready): config-driven ID pattern exclusion (GH#1239) Add ready.exclude_id_patterns config for excluding IDs from bd ready. Default patterns: -mol-, -wisp- (molecule steps and wisps). Changes: - Add IncludeMolSteps to WorkFilter for internal callers - Update findGateReadyMolecules and getMoleculeCurrentStep to use it - Make exclusion patterns config-driven via ready.exclude_id_patterns - Remove hardcoded MolStepIDPattern() in favor of config - Add test for custom patterns (e.g., gastown's -role-) Usage: bd config set ready.exclude_id_patterns "-mol-,-wisp-,-role-" Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: remove -role- example from ready.go comments Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: remove GH#1239 references from code comments Issue references belong in commit messages, not code. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -149,6 +149,23 @@ func (e *testEnv) AssertBlocked(issue *types.Issue) {
|
||||
}
|
||||
}
|
||||
|
||||
// CreateIssueWithID creates a test issue with an explicit ID.
|
||||
// Useful for testing ID-based filtering (e.g., mol step exclusion).
|
||||
func (e *testEnv) CreateIssueWithID(id, title string) *types.Issue {
|
||||
e.t.Helper()
|
||||
issue := &types.Issue{
|
||||
ID: id,
|
||||
Title: title,
|
||||
Status: types.StatusOpen,
|
||||
Priority: 2,
|
||||
IssueType: types.TypeTask,
|
||||
}
|
||||
if err := e.Store.CreateIssue(e.Ctx, issue, "test-user"); err != nil {
|
||||
e.t.Fatalf("CreateIssue(%q, %q) failed: %v", id, title, err)
|
||||
}
|
||||
return issue
|
||||
}
|
||||
|
||||
// newTestStore creates a SQLiteStorage with issue_prefix configured (bd-166)
|
||||
// This prevents "database not initialized" errors in tests
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user