···93939494**open questions before production:**
9595- **audit trail**: ingest events are only in Logfire — no persistent record of what came through the firehose. an audit log surfaced in the activity feed would give visibility into PDS-direct activity, but the volume could grow fast.
9696-- **moderation**: copyright scanning and genre classification only trigger for API uploads. records ingested via Jetstream run post-creation hooks, but the moderation pipeline may have gaps for externally-created content.
97969897**status**: Jetstream soak on staging complete — ghost track fix deployed and verified via Logfire ("skipping create for tombstoned URI" confirmed blocking replayed creates). ready for production.
9998···198197199198### current focus
200199201201-Jetstream deployed to production with environment-scoped collection filtering and origin trust validation for ingest URLs. open questions on audit trail persistence and moderation for PDS-direct records.
200200+Jetstream deployed to production with environment-scoped collection filtering and origin trust validation for ingest URLs. both API uploads and Jetstream ingest share a unified `run_post_track_create_hooks()` path for copyright scanning, genre classification, and embedding generation. remaining open question: audit trail persistence for firehose events.
202201203202### known issues
204203- iOS PWA audio may hang on first play after backgrounding
···207206### backlog
208207- harden file format support — graduate lossless uploads (#1065), revisit transcoding pipeline
209208- Jetstream audit trail / activity feed integration — persistent log of firehose events, toggle for visibility
210210-- moderation pipeline for PDS-direct records ingested via Jetstream
211209- share to bluesky (#334)
212210- lyrics and annotations (#373)
213211- configurable rules engine for moderation (Osprey rules engine PR #958 open)