All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Real-time mirroring via Bluesky Jetstream WebSocket
- Text post mirroring with 280-char truncation
- Image mirroring with optional ffmpeg watermark
- Video mirroring (HLS download → MP4 transcode) with optional watermark
- Repost mirroring as "RT @handle: text" format
- Self-reply threading (tracks bsky_uri → x_tweet_id mapping)
- Quote post support (appends Bluesky link)
- External link embed passthrough
- Configurable reply filtering (self/all/none)
- State persistence with JSON file (survives restarts)
- Exponential backoff retries with rate limit awareness
- Graceful shutdown on SIGINT/SIGTERM
- Auto-reconnect on WebSocket disconnect with backoff
- Health check HTTP endpoints (/healthz, /readyz)
- Docker support with docker-compose
- setup.sh for automated deployment
- Comprehensive test suite using node:test
- ESLint configuration
- CI/CD with GitHub Actions