Skip to content

Prioritize workflow [DONE] triggers before legacy completion#378

Merged
marccampbell merged 3 commits into
mainfrom
fix-done-pipeline-trigger-priority
Jun 7, 2026
Merged

Prioritize workflow [DONE] triggers before legacy completion#378
marccampbell merged 3 commits into
mainfrom
fix-done-pipeline-trigger-priority

Conversation

@marccampbell

Copy link
Copy Markdown
Contributor

Summary

  • Let explicit pipeline message_contains: "[DONE]" triggers run instead of skipping them in the websocket message path
  • Suppress the legacy factory PR-URL completion handler when a pipeline owns the [DONE] signal
  • Add a regression test covering a bare [DONE] that advances to an Android validation stage without injecting the no-PR warning

Finding

The CodeBuild stage did not run because handleClawWS only evaluated pipeline message triggers for non-[DONE] messages. The same message then fell through to handleClawDoneSignal, which validates legacy factory completion and injected the "no PR URLs" prompt before the workflow could transition to android_validation.

Tests

  • env GOCACHE=/private/tmp/elasticclaw-go-build go test ./pkg/hub
  • env GOCACHE=/private/tmp/elasticclaw-go-build go test ./...

@greptile-apps

greptile-apps Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Reviews (1): Last reviewed commit: "Prioritize pipeline done triggers" | Re-trigger Greptile

Comment thread pkg/hub/server.go
t.Fatalf("insert claw: %v", err)
}

s.handleClawDoneSignal(clawID, "[DONE]")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Test bypasses the actual production code path

The regression test calls s.handleClawDoneSignal(clawID, "[DONE]") directly, which exercises the new early-return added to handleClawDoneSignal. However, the real production fix is in handleClawWS (server.go), which now sets pipelineHandledDone and routes to checkPipelineMessageTriggers — meaning handleClawDoneSignal is never reached in the described scenario. The test therefore covers a defense-in-depth path that production code never hits, while leaving the server.go routing logic (the actual fix) without any integration test.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@greptile-apps

greptile-apps Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Reviews (2): Last reviewed commit: "Track pipeline done signals from websock..." | Re-trigger Greptile

@greptile-apps

greptile-apps Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Reviews (3): Last reviewed commit: "Merge main into done trigger branch" | Re-trigger Greptile

@marccampbell marccampbell merged commit e2137f8 into main Jun 7, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant