UI: The image history grid should only show stages to which the image can be promoted
Checklist
- [x] I've searched the issue queue to verify this is not a duplicate feature request.
- [x] I've pasted the output of
kargo version, if applicable. - [x] I've pasted logs, if applicable.
Proposed Feature
When a stage doesn't "request" for a piece of Freight (indirectly an image), it should not appear as a column in the image history grid of those pieces of Freight.
Motivation
When creating a single Kargo project for multiple microservices, someone might want to create parallel DAGs for each microservice.
Eg. For a Kargo Project with 7 microservices and 3 stages each (21 stages in total), the grid will have a column for all 21 stages. The following 2 screenshots show how it looks today:
This wastes a lot of space by showing unnecessary columns for stages where the image will never be promoted, leaving less space for important information like the image's version. This makes the experience seem less polished for microservices.
Suggested Implementation
I haven't seen the corresponding UI code but going by my knowledge of Kargo's domain objects, we could run a DFS from the warehouses that subscribe to an image to find the subgraph that is reachable, and only include the subgraph in the grid.
I agree this would be a nice improvement.