feat: display queued status within individual service deployments#4774
Open
imrja8 wants to merge 3 commits into
Open
feat: display queued status within individual service deployments#4774imrja8 wants to merge 3 commits into
imrja8 wants to merge 3 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What is this PR about?
This PR resolves an issue when pending deployments waiting in the background queue were completely invisible inside a specific service's "Deployments" tab (Project -> Environment -> Service -> Deployments).
When another service deployment is already running, subsequent deployment requests are placed in a queue. Because these queued deployments didn't appear in the service deployment list until they actually started running or failed, users would assume the deployment was missing or had not started. This caused confusion and led to users clicking "Deploy" multiple times, inadvertently spawning duplicate deployment triggers.
Note: I did not block the user from hitting the deploy button when another deployment is running. Instead, the UI simply shows them that their deployment is
"Queued", providing immediate visual feedback so they know the system registered their request.By introducing a
"queued"state directly to the deployment schemas and logs, users now get immediate feedback inside their individual service view.Key changes included in this PR:
"queued"status to theapplication,compose, anddeploymentschemas (with generated Drizzle migrations)."queued"to"running"and appends "Worker picked up job, starting build..." to the log file.status-tooltip.tsxand updated strict TypeScriptServicesinterfaces in the frontend UI components to safely handle the new status without throwing type errors.Note: I intentionally did NOT add the
"queued"state to the global/dashboard/homerecent deployments view. The sidebar's "Deployments" page already has a dedicated "Queue" tab (/dashboard/deployments?tab=queue) for upcoming jobs. Keeping them out of/dashboard/homepreserves the existing design decision to keep the global view split without cluttering the main list of active/finished jobs, while fixing the missing visibility inside the service deployments.Checklist
Before submitting this PR, please make sure that:
canarybranch.Issues related
closes #4762
Screenshots
1. Queued Service Indicators: The blue "Queued" indicator is now visible on the service card in the project page while it waits.

2. Active Deployment: The first service is currently running and occupying the worker (just added to show that one deployment is already running).

3. Queued Deployment: The second service is immediately shown as "Queued" while it waits for the first service to finish. It also has a blue indicator while it waits.

4. Queued Deployment Successful: Status transitions natively from queued, to running, to finally done (deployed) green.

5. Global Queue Tab (Existing Behavior Preserved): The global Deployments -> Queue tab still functions exactly as before.
