-
Notifications
You must be signed in to change notification settings - Fork 5
fix: speed up pubky profile loading #1399
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
74 commits
Select commit
Hold shift + click to select a range
2baa418
fix: run public pubky reads outside the paykit operation lock
Jasonvdb 3678128
fix: list ring identities at once and reuse their profiles on adopt
Jasonvdb 5cefe41
fix: show cached profile header and disk-cache pubky avatars
Jasonvdb 139738d
fix: make pubky profile retries explicit and drop them for bulk loads
Jasonvdb a3b935c
fix: stop holding the paykit lock for reads and adopt republish
Jasonvdb 012edee
fix: keep ring row lookups running and read the handoff after sign-in
Jasonvdb 445d58c
fix: skip stale avatar cache writes and decide cached header in vm
Jasonvdb 36d565c
test: add pubky profile journeys for cached header and ring rows
Jasonvdb 2b719bc
Merge master into claude/flow-vibe-pubky-profile-load-lag
Jasonvdb 951ad1f
fix: refresh the profile on open and tolerate avatar cache errors
Jasonvdb 392b948
chore: add changelog fragment for pubky profile loading
Jasonvdb 979e1fc
fix: drop stale profile cache writes that race a save or sign out
Jasonvdb 1f4364f
fix: show which ring rows are still looking up their profile
Jasonvdb c5ef815
fix: wait for an in-flight identity publication before approval
Jasonvdb 330579d
fix: reload the profile on open when the in-flight load fails
Jasonvdb 1bab353
fix: read paykit receiver markers outside the operation lock
Jasonvdb 1c4552e
fix: keep two pubky read slots free of bulk reads
Jasonvdb d37e07e
fix: import pending contacts without resolving them again
Jasonvdb 32bfc1c
fix: keep a contact import running after leaving its screen
Jasonvdb 9f9782b
fix: show saved contacts before their profiles resolve
Jasonvdb 7525698
fix: wait for the pubky session retry before auth deep links
Jasonvdb cba86a4
test: add contact import journey and update the changelog
Jasonvdb 7fa538f
test: wrap long pubky repo test lines
Jasonvdb 200144c
fix: keep a saved contact's label when its follow cannot be resolved
Jasonvdb 3a96905
fix: read a paid contact's receivers on the interactive lane
Jasonvdb 641e6af
fix: load a label-only contact's profile before editing it
Jasonvdb 248dca1
fix: leave the import overview once its import finishes elsewhere
Jasonvdb 5683f45
refactor: simplify the contact profile refresh bookkeeping
Jasonvdb 45ddfff
fix: look up import follows on the interactive read lane
Jasonvdb 3942e68
test: match the contact import journey to its ios steps
Jasonvdb 6d1f092
test: add the contacts list loading journey
Jasonvdb 35f7e07
docs: list the pubky contact journeys as shared with ios
Jasonvdb d12b25a
Merge master into claude/flow-vibe-pubky-profile-load-lag
Jasonvdb 43294eb
fix: reject public pubky reads that race a wallet wipe
Jasonvdb 494db5f
docs: note how a wallet wipe applies to public pubky reads
Jasonvdb 498ea61
docs: narrow the contact import journey to an import you leave
Jasonvdb a1be912
docs: note that leaving a contact import no longer stops it
Jasonvdb 5973a4c
fix: keep a label-only contact pending until its profile loads
Jasonvdb 54a7b9c
fix: save no contact edit whose profile never loaded
Jasonvdb 2ca387e
docs: note that a contact edit waits for its profile to load
Jasonvdb c76bdb2
fix: save a contact edit or tag even when its profile lookups fail
Jasonvdb 346b944
fix: let a screen's contact lookup take over its background lookup
Jasonvdb c49df2c
docs: describe a contact screen lookup taking over the background one
Jasonvdb 7794d12
fix: keep a contact screen lookup running when its refresh is replaced
Jasonvdb 86e731b
test: name the taken-over background lookup in flight, not queued
Jasonvdb a4f7b89
docs: say the contact edit form sets bio and links but not the avatar
Jasonvdb e167b52
test: merge the pubky image cache and cached profile cases into tables
Jasonvdb 3f21982
test: merge near-duplicate pubky repo tests into case tables
Jasonvdb be1c522
test: merge paykit sdk lock wait and activation tests
Jasonvdb 83a110f
test: merge near-duplicate profile and ring choice view model tests
Jasonvdb ac55e51
test: merge near-duplicate contact view model tests
Jasonvdb a3bffd0
test: require sign out's store reset to release the overtaken profile…
Jasonvdb 28fe332
test: reset the repo mock and stop the view model between table cases
Jasonvdb 97a8d06
test: name the case in any failure of a merged table test
Jasonvdb a8e1c52
fix: check the import owner under the paykit lock before saving
Jasonvdb 74d43ef
docs: say each imported contact save rechecks the identity
Jasonvdb bbcffd6
fix: rethrow cancellation from the pubky image disk cache
Jasonvdb 2a3f1c7
test: stub the saved session keychain read directly
Jasonvdb bccb045
refactor: log display profile failures in the repository
Jasonvdb a97b066
docs: match the ios journey names and steps for pubky profile
Jasonvdb 7eb826a
Merge master into claude/flow-vibe-pubky-profile-load-lag
Jasonvdb c936f8c
test: check a failed import keeps the pending import
Jasonvdb 489ff43
docs: describe the contact import after adopting #1395
Jasonvdb b001a3c
fix: give freed read slots to interactive reads before bulk reads
Jasonvdb 3f02102
fix: keep the pending import when leaving a running contact import
Jasonvdb 9aebeef
fix: show a failed contact import's error after leaving its screens
Jasonvdb a97597d
docs: describe leaving the contact import while it runs
Jasonvdb 97bde5d
fix: keep a contact import quiet when the identity changes
Jasonvdb 58d5c53
fix: snapshot saved contact keys before preparing private links
Jasonvdb 11fe90b
fix: give each import preview lookup a deadline
Jasonvdb 728d0b1
fix: skip contact lookups for profiles resolved in the last ten minutes
Jasonvdb 994559c
fix: apply contact profile refresh results in batches
Jasonvdb 4616414
fix: remember failed pubky avatar fetches
Jasonvdb b46f007
Merge remote-tracking branch 'origin/master' into claude/flow-vibe-pu…
Jasonvdb File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| package to.bitkit.data | ||
|
|
||
| import java.util.concurrent.atomic.AtomicLong | ||
| import javax.inject.Inject | ||
| import javax.inject.Singleton | ||
|
|
||
| /** | ||
| * Counts clears of the Pubky image disk cache. [PubkyImageFetcher] reads it before a network fetch and commits | ||
| * the fetched image only while it is unchanged, so a fetch in flight across a clear cannot re-populate the | ||
| * cleared directory, and [PubkyImageFailureCache] forgets every failed fetch once it changes. Advance it before | ||
| * clearing the directory. | ||
| */ | ||
| @Singleton | ||
| class PubkyImageCacheEpoch @Inject constructor() { | ||
| private val epoch = AtomicLong(0L) | ||
|
|
||
| fun current(): Long = epoch.get() | ||
|
|
||
| fun advance() { | ||
| epoch.incrementAndGet() | ||
| } | ||
| } |
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.