Repository navigation
fix: browse and install from the catalog without GitHub sign-in - #28
Merged
Merged
Conversation
The welcome flow and the GitHub panel both promise that signing in is
optional ('Public GitHub API (60 req/h)'), but the catalog lived inside
GitHubState::Connected: every fetch path required a token and repos were
only stored while connected, so a first-run user saw an empty Hive until
they completed OAuth - and a signed-out user lost the catalog entirely.
- The catalog moves out of GitHubState into its own App field: public
data, independent of the session. Signing in only raises the rate
limit and unlocks account features.
- Boot now loads the on-disk repos cache immediately (instant, offline-
friendly grid) and always starts a fetch - authenticated when a token
is saved, anonymous otherwise. Cached repo icons are decoded at boot
too, instead of waiting for the first network round-trip.
- Refresh works while signed out (anonymous fetch), and login completion
now sets is_fetching_repos like every other fetch path, closing the
duplicate-fetch window.
- A failed fetch only raises an error toast when the catalog is EMPTY;
with a cached catalog showing, the failure lands in the status line -
otherwise every offline boot would toast an error.
Verified end-to-end: a boot with clean XDG dirs and no reachable keyring
(no token) populates the catalog anonymously.
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.
Why
The UI says everywhere that signing in to GitHub is optional ("Public GitHub API (60 req/h)", "Connect GitHub (optional)" in the welcome flow), but the catalog lived inside
GitHubState::Connected: every fetch path required a token and the repositories were only stored while signed in. A first launch showed an empty store until OAuth was done, and signing out lost the catalog.Changes
GitHubStateinto a field of its own on the App: it is public data, independent of the session. Signing in only raises the rate limit.is_fetching_reposlike every other fetch path, which closes a double-fetch window.Testing
cargo buildandclippy --all-targetsclean, 88 tests pass.