fix: blob deduplication logic using proper CID lookup
The blob processor was using `findBySha256(ref.cid)` which incorrectly
passed a CID to a method expecting a SHA256 hash. This caused the
deduplication check to never find matches, resulting in blobs being
unnecessarily reprocessed regardless of the hydrate_blobs setting.
Changes:
- Add `findByCid` method to BlobsRepository for proper CID lookup
- Update processor to use CID-based deduplication
- When blob exists, reuse hashes but still insert post+blob relationship
- Add index on blob_cid column for query performance
- Add test coverage for new findByCid method
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>