Fix expansion operators: update dependencies after expansion

When a step is expanded (e.g., implement -> implement.draft, implement.refine-1,
etc.), any steps that depended on the original step should now depend on the
last step of the expansion.

Call UpdateDependenciesForExpansion after both expand and map operations.

Fixes gt-8tmz.3

🤖 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-25 11:44:16 -08:00
parent 127a36dd5f
commit b82d0e7c0f

View File

@@ -82,6 +82,13 @@ func ApplyExpansions(steps []*Step, compose *ComposeRules, parser *Parser) ([]*S
result = replaceStep(result, rule.Target, expandedSteps)
expanded[rule.Target] = true
// Update dependencies: any step that depended on the target should now
// depend on the last step of the expansion
if len(expandedSteps) > 0 {
lastStepID := expandedSteps[len(expandedSteps)-1].ID
result = UpdateDependenciesForExpansion(result, rule.Target, lastStepID)
}
// Update step map with new steps
for _, s := range expandedSteps {
stepMap[s.ID] = s
@@ -122,6 +129,13 @@ func ApplyExpansions(steps []*Step, compose *ComposeRules, parser *Parser) ([]*S
result = replaceStep(result, targetStep.ID, expandedSteps)
expanded[targetStep.ID] = true
// Update dependencies: any step that depended on the target should now
// depend on the last step of the expansion
if len(expandedSteps) > 0 {
lastStepID := expandedSteps[len(expandedSteps)-1].ID
result = UpdateDependenciesForExpansion(result, targetStep.ID, lastStepID)
}
// Update step map
for _, s := range expandedSteps {
stepMap[s.ID] = s