Add waits_for handling to collectDependenciesToSubgraph (gt-8tmz.38)
The ephemeral proto path (collectDependenciesToSubgraph) was missing waits_for handling that was already implemented in collectDependencies for persisted protos. This ensures fanout gate dependencies are created correctly for both ephemeral and persisted formula cooking. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -429,6 +429,36 @@ func collectDependenciesToSubgraph(step *formula.Step, idMapping map[string]stri
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Process waits_for field (gt-8tmz.38) - fanout gate dependency
|
||||||
|
if step.WaitsFor != "" {
|
||||||
|
waitsForSpec := formula.ParseWaitsFor(step.WaitsFor)
|
||||||
|
if waitsForSpec != nil {
|
||||||
|
// Determine spawner ID
|
||||||
|
spawnerStepID := waitsForSpec.SpawnerID
|
||||||
|
if spawnerStepID == "" && len(step.Needs) > 0 {
|
||||||
|
// Infer spawner from first need
|
||||||
|
spawnerStepID = step.Needs[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
if spawnerStepID != "" {
|
||||||
|
if spawnerIssueID, ok := idMapping[spawnerStepID]; ok {
|
||||||
|
// Create WaitsFor dependency with metadata
|
||||||
|
meta := types.WaitsForMeta{
|
||||||
|
Gate: waitsForSpec.Gate,
|
||||||
|
}
|
||||||
|
metaJSON, _ := json.Marshal(meta)
|
||||||
|
|
||||||
|
*deps = append(*deps, &types.Dependency{
|
||||||
|
IssueID: issueID,
|
||||||
|
DependsOnID: spawnerIssueID,
|
||||||
|
Type: types.DepWaitsFor,
|
||||||
|
Metadata: string(metaJSON),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Recursively handle children
|
// Recursively handle children
|
||||||
for _, child := range step.Children {
|
for _, child := range step.Children {
|
||||||
collectDependenciesToSubgraph(child, idMapping, deps)
|
collectDependenciesToSubgraph(child, idMapping, deps)
|
||||||
|
|||||||
Reference in New Issue
Block a user