Pipeline stages dropdown is out of sync

Problem

After rolling out and working on #223264 I noticed that with a subscription the overall stage status is accurate but the job status within the stage is not. Which makes sense because we get real-time updates via a webscocket for the stages.

However app/assets/javascripts/ci/pipeline_mini_graph/pipeline_stage_dropdown.vue using polling which makes it not in sync. I mean it never really was to begin with, but let's fix that.

Screenshot_2025-11-10_at_12.00.15_PM

Potential solutions

  1. We could refactor any upstream subscriptions to feed not just the stages but the jobs as well. Don't love this idea because that's a lot of nested data to fetch.
  2. We could refactor app/assets/javascripts/ci/pipeline_mini_graph/pipeline_stage_dropdown.vue to fetch fresh jobs each time it's open if the state of those jobs statuses have changed (still might be a little out of sync 🤷)
  3. We could build a dedicated stage subscription and use directly in app/assets/javascripts/ci/pipeline_mini_graph/pipeline_stage_dropdown.vue
Edited by Payton Burdette