Retry initial project load and surface failures in the sidebar - #122
Open
justinleveck wants to merge 1 commit into
Open
Retry initial project load and surface failures in the sidebar#122justinleveck wants to merge 1 commit into
justinleveck wants to merge 1 commit into
Conversation
AppContext fetched projects/repositories exactly once on mount with no retry, and the resulting error state was never read by any component. On a docker-compose restart, the client's first request can beat the server to accepting connections (depends_on only orders container startup, it doesn't wait for readiness) - that single failed fetch then silently stranded the user on an empty "No projects yet.", which reads exactly like lost data even though the server's persisted db.json was untouched. Creating a new project was the only thing that happened to trigger a fresh fetch, which is why it looked like adding one "unlocked" the old data. Retry the initial load up to 4 times with increasing backoff before giving up, and show a dismissable-by-retry error banner in the sidebar if it still fails, instead of a silent empty state.
justinleveck
force-pushed
the
fix/retry-initial-project-load
branch
from
August 7, 2026 02:53
6c1a80b to
04081a1
Compare
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.
Summary
AppContextfetched projects/repositories exactly once on mount with no retry, and the resultingerrorstate was never read by any component (confirmed by grepping everyuseApp()call site).docker compose restart, the client's first request can beat the server to accepting connections -depends_ononly orders container startup, it doesn't wait for readiness. That single failed fetch then silently stranded the user on an empty "No projects yet.", which reads exactly like lost data even though the server's persisteddb.jsonwas untouched the whole time. Creating a new project was the only thing that happened to trigger a fresh fetch (viahandleAddProject'srefreshData()call), which is why adding one "unlocked" the old data.Test plan
tsc -b,eslint, and fullvitestsuite (115/115) pass onclient/