Repository navigation
Make details fast on a large catalogue; bump to 0.9.4 - #43
Merged
Merged
Conversation
The GUI details pane called GetPackage on every open, which connected to relays and resolved live each time. The daemon now selects the release from the local catalogue and the cached artifact event, falling back to relays only on a miss. Install passes live: true to keep resolving from relays. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjtG22dxbf2JzLCaCkuW9U
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjtG22dxbf2JzLCaCkuW9U
Only npack-gui's manifest had an app block, so the CLI package published with no summary, description or categories and showed as Uncategorised in Browse. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjtG22dxbf2JzLCaCkuW9U
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjtG22dxbf2JzLCaCkuW9U
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjtG22dxbf2JzLCaCkuW9U
select_release verified the signature of every catalogue event before checking its name, so each details view cost time proportional to the whole catalogue (about 1s for 3000 releases in a debug build). Check name, platform, publisher, trust and version first and verify only the remaining candidates, and run the lookup on a blocking thread so it does not stall other daemon requests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjtG22dxbf2JzLCaCkuW9U
select_release verified the signature of every catalogue event before checking its name, so each details view cost time proportional to the whole catalogue (about 1s for 3000 releases in a debug build). Check name, platform, publisher, trust and version first and verify only the remaining candidates, and run the lookup on a blocking thread so it does not stall other daemon requests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjtG22dxbf2JzLCaCkuW9U
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjtG22dxbf2JzLCaCkuW9U
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RjtG22dxbf2JzLCaCkuW9U
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
GetPackagelookup (0.9.2) verified the signature of every event in the catalogue before checking its name, so each details view cost time proportional to the whole catalogue (about 1 s for 3,000 releases in a debug build).select_releasenow checks name, platform, publisher, trust, version and revocation first and verifies only the remaining candidates (about 12 ms for the same catalogue). The set of filters is unchanged, so the result is the same.npackandnpack-guito 0.9.4 (andCargo.lock).Notes
master), because the remote branch could not be force-pushed. A squash merge drops it.Test plan
cargo fmt --all -- --checkcargo test -p npack(188 passed)cargo clippy --all-targets --all-featurescleanpackaging/check-release-version.sh 0.9.4Generated by Claude Code