Commits
Updated project description and added key features section.
This covers the major threads: the full Search screen rewrite (correct
endpoint, flat hits shape, Feather icon), MiniPlayer with Rockbox WebSocket
controls and playback lock, app icon replaced with the Rocksky favicon, and
sign-in copy aligned with web/web-mobile (Handle label, atproto signup text,
selfhosted.social OAuth flow).
Add apps/cli/flake.nix and flake.lock and commit package-lock.json.
Register the CLI flake as "rocksky-cli" in the root flake and include
its package in the top-level devShell. Remove apps/cli from the JS
workspaces and update apps/cli/.gitignore to ignore build results.
update flake.nix
Replace onConflictDoNothing with onConflictDoUpdate for songs,
albums, and artists. Use composite conflict targets (userId + id)
and set scrobbles to 1 when a conflict occurs.
fix collections script
fix collections script
fix collections script
fix collections script
Add preview (internal) and apk (APK buildType) profiles
to apps/app/eas.json to enable internal previews and APK builds
Switch API usage to a central axios client and app.rocksky xrpc
endpoints. Add many API modules (dropbox, googledrive, graph,
apikeys, beta, likes, shouts, etc.) and corresponding TypeScript
types (Album, Artist, Track, Profile, Scrobble, ApiKey, etc.). Update
hooks and UI to use new response fields (createdAt, albumArt,
albumUri, etc.). Add eas.json and EAS projectId; update Gradle/Kotlin
package and applicationId to app.rocksky.
Skip rate limiting for the known internal host to avoid blocking health
checks
Uncomment a previously disabled thread::spawn block in the spotify crate
to
restore the background runtime used for cache cleanup
This covers the major threads: the full Search screen rewrite (correct
endpoint, flat hits shape, Feather icon), MiniPlayer with Rockbox WebSocket
controls and playback lock, app icon replaced with the Rocksky favicon, and
sign-in copy aligned with web/web-mobile (Handle label, atproto signup text,
selfhosted.social OAuth flow).
Switch API usage to a central axios client and app.rocksky xrpc
endpoints. Add many API modules (dropbox, googledrive, graph,
apikeys, beta, likes, shouts, etc.) and corresponding TypeScript
types (Album, Artist, Track, Profile, Scrobble, ApiKey, etc.). Update
hooks and UI to use new response fields (createdAt, albumArt,
albumUri, etc.). Add eas.json and EAS projectId; update Gradle/Kotlin
package and applicationId to app.rocksky.