reject AIFF/AIF uploads due to browser compatibility (#152)
* fix: support .aif file extension for AIFF audio files
problem:
- users uploading .aif files would see "upload successful" but files were unusable
- files were saved to R2 with .aif extension
- get_url() only checked for .aiff extension
- resulted in 404 errors when trying to play the track
solution:
- add AIF as a separate AudioFormat enum value alongside AIFF
- both map to the same media type (audio/aiff)
- storage backends now automatically check for both extensions
- no special-casing needed since enum iteration handles both
fixes #147
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* reject AIFF/AIF uploads and add format hints
- remove AIFF/AIF from AudioFormat enum (browser compatibility)
- add format hints to audio and artwork upload inputs
- add logfire instrumentation to upload background tasks
- document logfire querying patterns for background tasks
- clean up debug console.log statements from Player
- update tests to reflect removed AIFF support
- add root node_modules to .gitignore
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
authored by
zzstoatzz.io