Problem
Post blob hydration is currently broken - it's using CDN paths instead of the proper AT Protocol API endpoint.
Current Implementation
The BlobProcessor is fetching from CDN URLs:
https://cdn.bsky.app/img/feed_thumbnail/plain/${did}/${cid}@jpeg
https://cdn.bsky.app/img/feed_fullsize/plain/${did}/${cid}@jpeg
This doesn't work reliably and requires auth context.
Solution
Apply the same fix we used for profile blobs:
- Resolve the user's PDS endpoint from their DID document via
plc.wtf
- Use the proper AT Protocol API:
${pdsEndpoint}/xrpc/com.atproto.sync.getBlob?did=${did}&cid=${cid}
Reference
See ProfileHydrationService.processProfileBlob() for the working implementation.
Also check docs/profile-blob-hydration.md section 7 for details on proper blob fetching.
Files to Update
src/blobs/processor.ts - Update processBlob() method
- May need to add PDS resolution logic or import from profile service
Problem
Post blob hydration is currently broken - it's using CDN paths instead of the proper AT Protocol API endpoint.
Current Implementation
The
BlobProcessoris fetching from CDN URLs:This doesn't work reliably and requires auth context.
Solution
Apply the same fix we used for profile blobs:
plc.wtf${pdsEndpoint}/xrpc/com.atproto.sync.getBlob?did=${did}&cid=${cid}Reference
See
ProfileHydrationService.processProfileBlob()for the working implementation.Also check
docs/profile-blob-hydration.mdsection 7 for details on proper blob fetching.Files to Update
src/blobs/processor.ts- UpdateprocessBlob()method