fix: Exclude workflow types from bd ready by default (gt-7xtn)

merge-request, gate, molecule, and message types are internal workflow
items processed by Refinery/Deacon, not work for polecats to claim.
These are now excluded from bd ready unless explicitly requested via
--type flag.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-23 15:05:19 -08:00
parent 649a48d64b
commit fe2ac97597
2 changed files with 22 additions and 0 deletions

View File

@@ -935,6 +935,20 @@ func (m *MemoryStorage) GetReadyWork(ctx context.Context, filter types.WorkFilte
continue
}
// Type filtering (gt-7xtn)
if filter.Type != "" {
if string(issue.IssueType) != filter.Type {
continue
}
} else {
// Exclude workflow types from ready work by default
// These are internal workflow items, not work for polecats to claim
switch issue.IssueType {
case types.TypeMergeRequest, types.TypeGate, types.TypeMolecule, types.TypeMessage:
continue
}
}
// Unassigned takes precedence over Assignee filter
if filter.Unassigned {
if issue.Assignee != "" {

View File

@@ -33,6 +33,14 @@ func (s *SQLiteStorage) GetReadyWork(ctx context.Context, filter types.WorkFilte
if filter.Type != "" {
whereClauses = append(whereClauses, "i.issue_type = ?")
args = append(args, filter.Type)
} else {
// Exclude workflow types from ready work by default (gt-7xtn)
// These are internal workflow items, not work for polecats to claim:
// - merge-request: processed by Refinery
// - gate: async wait conditions
// - molecule: workflow containers
// - message: mail/communication items
whereClauses = append(whereClauses, "i.issue_type NOT IN ('merge-request', 'gate', 'molecule', 'message')")
}
if filter.Priority != nil {