fix: smooth compose loader to files page transition - #27277
Merged
jeremyruppel merged 3 commits intoJul 16, 2026
Conversation
…erJob The template builder create-template flow was the only caller and always passed nil. The UI shows an indeterminate loader and no progress is streamed to the client, so the callback is dead code. Remove the parameter and its per-poll invocation; the function still polls and blocks until the job completes or the context expires.
…ping The progress bar animated 0-100% every 5s with an infinite repeat, so it visibly restarted over and over while a template built, making it look broken. Replace the looping fill with a single ease-out fill that decelerates toward 90% and holds until the request resolves and the loader unmounts. DEVEX-593
…gation When the compose POST resolved, createMutation.isPending flipped to false in the same commit that navigated to the template files page, so the wizard form repainted for a frame before the route changed. Keep the loader mounted while the mutation is pending or succeeded so the form never reflashes during the transition. DEVEX-561
Contributor
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
jeremyruppel
marked this pull request as ready for review
July 15, 2026 20:38
aslilac
approved these changes
Jul 15, 2026
aqandrew
approved these changes
Jul 15, 2026
Base automatically changed from
jeremy/devex-593-stop-the-build-progress-bar-from-looping-repeatedly
to
main
July 16, 2026 13:14
jeremyruppel
deleted the
jeremy/devex-561-smooth-compose-to-files-transition
branch
July 16, 2026 13:15
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.

Summary
During the template builder compose flow, the transition into the template
files page briefly flashed the wizard form again before the files page settled.
Root cause: the loader was gated on
createMutation.isPending. When the composePOST resolved,
isPendingflipped tofalsein the same commit thatonSuccessnavigated to the files page, soTemplateBuilderPageViewrepaintedthe wizard form for a frame before the route change committed and unmounted it.
Fix: keep the loader mounted while the mutation is pending or succeeded
(
createMutation.isPending || createMutation.isSuccess). SinceonSuccessalways navigates away, the loader stays until the component unmounts, so the
form never reflashes. The error path is unaffected (
isSuccessstays false).Resolves DEVEX-561.
Screen.Recording.2026-07-15.at.4.27.32.PM.mov
Scope
Targets the wizard form reflash only. Two adjacent items were identified during
investigation and intentionally left out:
<Loader />while it fetchestemplate files. Smoothing that requires prefetching before navigation and is a
larger change.
justCreated"Awesome, you just created a template!" alert is cleared by amount effect, so it renders one frame then disappears. Arguably its own bug.
Happy to follow up on either if wanted.
Testing
straight through to the files page with no form flash.
Stack
Stacked on top of #27276 (DEVEX-593).
Generated by Coder Agents.