fix: Correct JSON field name for swarm task loading (gt-552hb)

The loadTasksFromBeads() function was reading 'dependents' from bd show
output, but the actual JSON field is 'dependencies'. This caused swarms
to have empty task lists, requiring manual dispatch.

🤖 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-28 16:15:43 -08:00
parent 5e7c5b4728
commit b0d185b88e

View File

@@ -292,15 +292,15 @@ func (m *Manager) loadTasksFromBeads(epicID string) ([]SwarmTask, error) {
// Parse JSON output - bd show returns an array
var issues []struct {
ID string `json:"id"`
Title string `json:"title"`
Status string `json:"status"`
Dependents []struct {
ID string `json:"id"`
Title string `json:"title"`
Status string `json:"status"`
Dependencies []struct {
ID string `json:"id"`
Title string `json:"title"`
Status string `json:"status"`
DependencyType string `json:"dependency_type"`
} `json:"dependents"`
} `json:"dependencies"`
}
if err := json.Unmarshal(stdout.Bytes(), &issues); err != nil {
@@ -311,10 +311,10 @@ func (m *Manager) loadTasksFromBeads(epicID string) ([]SwarmTask, error) {
return nil, fmt.Errorf("epic not found: %s", epicID)
}
// Extract dependents as tasks (issues that depend on/are blocked by this epic)
// Extract dependencies as tasks (issues that depend on/are blocked by this epic)
// Accept both "parent-child" and "blocks" relationships
var tasks []SwarmTask
for _, dep := range issues[0].Dependents {
for _, dep := range issues[0].Dependencies {
if dep.DependencyType != "parent-child" && dep.DependencyType != "blocks" {
continue
}