v0.7.0
Parachord Android 0.7.0
10 merges since 0.6.1. Two new gestures on Now Playing, a smarter share-link surface, in-app announcements from the Parachord ops channel, and a handful of invariants + quality fixes that protect your library across devices.
How to Install
Two options:
- Grab the APK directly from the latest release (below) and sideload it. Android 8.0+ (API 26) required.
- Join the Parachord-Testers Google Group and you’ll get automatic updates via Google Play Store as new builds go out.
What's new
Now Playing learned two gestures
- Double-tap to love. Tap twice on the album art to add the track to your collection. A heart pops at the touch point — Instagram-style. Already-loved tracks are silent (no double-tap-to-unlove; use the menu for that).
- Swipe to skip. Drag the album art left for next, right for previous. Slow drag past ~30% commits; a fast flick commits regardless. Doesn't fight Android's edge back-gesture.
Share links go to Achordion
Sharing a track, album, or artist now produces an achordion.xyz/... link instead of a go.parachord.com/... smart-link. Recipients land on the canonical entity page with per-service "Listen on Spotify / Apple Music / SoundCloud" buttons. For tracks specifically, Parachord pre-warms Achordion's cache when you share — so the recipient's first click loads a fully-resolved page, not a placeholder. Playlists still use smart-links for now (no Achordion playlist page yet).
Home-screen announcements
A new banner at the top of the home screen surfaces in-app announcements from Parachord ops — outage notices, launch messages, the occasional Discord nudge. Same feed desktop uses; you'll see whatever's broadcast to all clients. Dismiss with the X and it stays gone.
Local-files library now contributes back to Achordion
If most of your library is local files (no Spotify / Apple Music IDs attached), Parachord now does background lookups to find streaming-service matches over time. When matches turn up, they're sent to Achordion's shared cache — which means the next person who shares a track you've got locally gets a better landing page. Runs idle: only on Wi-Fi, only when the battery isn't low, max 20 tracks per cycle with a 3-second gap. You won't see it; everyone benefits.
Sync resilience across devices
When one client has a sync bug that scrambles a playlist's source (which provider the playlist was originally imported from), the other client now silently fixes it on launch. This used to be desktop-only. With Android implementing the heal too, a single bad write doesn't corrupt your playlists fleet-wide; whichever device launches next undoes the damage. iOS will inherit the same fix when the iOS app lands.
Under the hood
- Apple Music catalog throttle. Large library imports and hosted-XSPF refreshes no longer fan out enough parallel Apple Music API calls to trip Apple's per-token rate limit (which, when tripped, used to kill the active playback alongside the background lookups). Concurrency capped at 3, 150ms between calls, time-bound 5-minute cooldown on rate-limit signals. Recovers automatically.
- Last.fm friend refresh log spam, gone. If you have ~60+ Last.fm friends, the every-2-minute background refresh used to dump dozens of stack traces into logcat per cycle once the per-IP rate-limit gate tripped. Now it logs one debug line and skips the rest of the cycle's Last.fm friends. Net behavior unchanged — those calls were already failing without network hits — just much quieter.
- Resolver direct-ID confidence. When a track has a previously-resolved Spotify / Apple Music / SoundCloud ID cached locally, we now stamp the resolved source at 1.0 confidence (the "by definition correct" tier) instead of 0.95 (the "fuzzy match passed" tier). Unlocks tier-1 Achordion contribution submits the moment a track starts playing, instead of waiting for the scrobble threshold halfway through.
Coming soon
- Universal / App Links —
https://parachord.com/<verb>URLs from share sheets, iMessage, Slack will route directly into the app (no "Open with…" chooser). Paired with iOS Universal Links when the iOS app lands. - iOS app — KMP shared module is feature-complete. iOS launch needs a SwiftUI shell over the same business logic.
- Inbound smart-link resolution — folded into the App Links work.
Cross-platform note
Six of this release's ten commits live in shared/commonMain. iOS will inherit them for free when the iOS shell lands: the sync heal, the slow-trickle Achordion contribution loop, the announcements consumer, the resolver direct-ID confidence change, the Achordion share-link migration, and the Last.fm refresh log-spam fix.
Full Changelog: v0.6.1...v0.7.0