acoustic-carpenter-78188
03/20/2026, 7:50 PMWatchActionDetails was using actionModelToDetails() for streamed updates, which only converts basic model fields. This meant streamed updates were missing task spec and attempt details — information that was included in the initial response via getActionDetails(). Clients receiving streamed updates would see incomplete action details compared to the initial snapshot.
What changes were proposed in this pull request?
• Extract buildActionDetails(ctx, model, actionId) from getActionDetails — takes a pre-fetched *models.Action and enriches it with task spec + attempts
• Make getActionDetails a thin wrapper: calls GetAction then delegates to buildActionDetails
• Replace actionModelToDetails with buildActionDetails in the WatchActionDetails streaming path so that streamed updates include full action details (task spec, attempts) matching the initial response
• Add comprehensive unit tests for WatchActionDetails covering:
• Streamed updates include full details (task spec, attempts)
• Error info propagation in streamed updates
• Filtering of updates for other actions
• Error handling when buildActionDetails fails
How was this patch tested?
• go test ./runs/service/ -run TestWatchActionDetails -v — all 4 tests pass
• go test ./runs/service/ -v — no regressions
• go build ./runs/... — compiles cleanly
Check all the applicable boxes
• I updated the documentation accordingly.
• All new and existing tests passed.
• All commits are signed-off.
• main
• #6583
• [V2][Bug] Fix WatchActionDetails to return full action details in streamed updates 👈
flyteorg/flyteacoustic-carpenter-78188
03/21/2026, 12:37 AMacoustic-carpenter-78188
03/23/2026, 4:39 AM