Add EntityPreloader for batched profile metadata preloading
Implements an actor-based preloading system to efficiently fetch profile metadata for note authors and referenced users. The EntityPreloader queues requests and batches them intelligently (500 pubkeys or 1 second timeout) to avoid network overload while improving UX by ensuring profiles are available when rendering notes. Key changes: - Add EntityPreloader actor with queue-based batching logic - Integrate with SubscriptionManager via PreloadStrategy enum - Add lifecycle management (start/stop on app foreground/background) - Skip preload for pubkeys already cached in ndb - Include comprehensive test suite with 11 test cases covering batching, deduplication, and edge cases - Optimize ProfilePicView to load from ndb before first render Closes: https://github.com/damus-io/damus/issues/gh-3511 Changelog-Added: Profile metadata preloading for improved timeline performance Signed-off-by: Daniel D’Aquino <daniel@daquino.me>
This commit is contained in:
9
justfile
9
justfile
@@ -1,5 +1,10 @@
|
||||
build:
|
||||
xcodebuild -scheme damus -sdk iphoneos -destination 'platform=iOS Simulator,OS=26.0,name=iPhone 16e' -quiet | xcbeautify --quieter
|
||||
|
||||
test:
|
||||
xcodebuild test -scheme damus -destination 'platform=iOS Simulator,OS=26.0,name=iPhone 16e' | xcbeautify
|
||||
test test_name="":
|
||||
#!/usr/bin/env bash
|
||||
if [ -n "{{test_name}}" ]; then
|
||||
xcodebuild test -scheme damus -destination 'platform=iOS Simulator,OS=26.0,name=iPhone 16e' -only-testing:{{test_name}} | xcbeautify --quieter
|
||||
else
|
||||
xcodebuild test -scheme damus -destination 'platform=iOS Simulator,OS=26.0,name=iPhone 16e' | xcbeautify --quieter
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user