fix: ensure ATProto records sync when tracks are updated (#302)
* fix: ensure ATProto records sync when tracks are updated
this fixes an issue where track metadata updates would succeed in the database but fail silently when syncing to ATProto, leaving records out of sync.
changes:
- make ATProto sync errors blocking - if ATProto update fails, the entire request fails
- explicit rollback on ATProto sync failure to prevent database/PDS inconsistency
- return 500 error with clear message when sync fails
before this fix, users would see success messages even when their ATProto records weren't actually updated, which was confusing and led to data inconsistency.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* docs: clarify environment-specific ATProto namespaces
updates CLAUDE.md and docs/tools/pdsx.md to accurately reflect that plyr.fm uses environment-specific namespaces configured via ATPROTO_APP_NAMESPACE:
- dev: fm.plyr.dev
- staging: fm.plyr.stg
- prod: fm.plyr
previous docs incorrectly stated all environments use unified fm.plyr.track namespace.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: show feedback when featured artist handle not found
adds clear "no artist found" message when handle search returns no results, preventing confusion when users type non-existent handles.
before: users could type invalid handles and submit would silently save empty features array
after: users see clear feedback that handle wasn't found
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: prevent form submission with unresolved featured artist input
disables upload and edit form submission when there's text in the featured artists search that hasn't been resolved to an actual artist.
before: could submit forms with typed text that wasn't added to features
after: submit buttons disabled until text is either selected or cleared
🤖 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
Claude
and committed by
GitHub
024f54f0
89b7e51d