commits
The WebSocket monkey-patch was causing "pure virtual method called"
crashes every 60 seconds. Jetstream works correctly with Bun 1.1
without any patching - the binaryType issue does not occur.
This fixes the crash and allows the service to run stably.
- Add PHASH_HAMMING_THRESHOLD environment variable to config with default of 3
- Update image processor to use config value instead of hardcoded 5
- Lower default hammingThreshold in rules from 5 to 3 for stricter matching
- Add Hamming threshold guide to README for reference
This allows users to control the global Hamming distance threshold via
environment variable while still allowing per-rule overrides. The lower
default of 3 reduces false positives from images that are too different.
Perceptual hash-based image moderation system for Bluesky using Jetstream firehose.
Features:
- Real-time image processing from Jetstream firehose
- Perceptual hashing with configurable similarity thresholds
- Redis-based caching and queue system
- Automatic moderation actions via Ozone
- PDS resolution via PLC directory
- Cursor persistence for resumable processing
- Repo takedown detection to skip unnecessary processing
Technical details:
- Built with Bun 1.1 and TypeScript
- Uses Sharp for image processing
- Docker Compose setup with Redis
- Configurable via .env file
Note: This is alpha software and requires further testing and refinement.
- Add PHASH_HAMMING_THRESHOLD environment variable to config with default of 3
- Update image processor to use config value instead of hardcoded 5
- Lower default hammingThreshold in rules from 5 to 3 for stricter matching
- Add Hamming threshold guide to README for reference
This allows users to control the global Hamming distance threshold via
environment variable while still allowing per-rule overrides. The lower
default of 3 reduces false positives from images that are too different.
Perceptual hash-based image moderation system for Bluesky using Jetstream firehose.
Features:
- Real-time image processing from Jetstream firehose
- Perceptual hashing with configurable similarity thresholds
- Redis-based caching and queue system
- Automatic moderation actions via Ozone
- PDS resolution via PLC directory
- Cursor persistence for resumable processing
- Repo takedown detection to skip unnecessary processing
Technical details:
- Built with Bun 1.1 and TypeScript
- Uses Sharp for image processing
- Docker Compose setup with Redis
- Configurable via .env file
Note: This is alpha software and requires further testing and refinement.