Conversation
…tion Removes everything App Review would reject and the external dependency that powered it: - YouTubeKit dependency dropped; all network resolvers deleted (YouTube stream/search/playlist, Spotify, oEmbed), plus the ranged downloader, retry helper, playlist source-sync, and link import pipeline. - Share extension target, app-group entitlements, URL scheme, and clipboard link detection removed. - The + button now imports local audio files via the Files picker: security-scoped copy into the audio cache, embedded metadata (title/artist/duration/artwork) extracted, tracks land ready in a find-or-create My Music playlist, and the full BPM/key/loudness/ silence analysis pipeline runs on import. - Stems still work for local files: the stem cache key falls back to the track UUID when there is no video ID (Track.stemKey), and the on-device ONNX separation pipeline is unchanged (App Store safe). - SwiftData stored attributes untouched (additive artworkPath only) so existing installs migrate cleanly; old source-backed playlists degrade to plain local playlists.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The v1 App Store branch. Everything App Review would reject is gone, along with the external dependency that powered it:
Package.swift; all network resolvers deleted (YouTube stream/search/playlist, Spotify, oEmbed), plus the ranged downloader, retry helper, playlist source-sync, and the link-import pipeline (PreparationQueueis now local-only: verify file → ready → analyze → stems).project.yml)..fileImporter, multi-select, any audio type): security-scoped copy into the audio cache, embedded metadata extracted (title/artist/duration/cover art → stored per-track), tracks land ready in a find-or-create My Music playlist, and the full BPM/key/loudness/silence analysis runs on import — so transitions work identically on imported files.Track.stemKeyfalls back to the track UUID when there's no video ID; the on-device ONNX pipeline is unchanged (fully App Store-safe — no server, no scraping).artworkPathonly); old source-backed playlists degrade to plain local playlists.ContinuityCoreuntouched, so the CI test suite still passes.Remaining before submission (not in this PR)
PrivacyInfo.xcprivacyprivacy manifest (UserDefaults required-reason API entry; no tracking/collection).xcodegen generateafter checkout (files added/removed); verify the share-extension scheme is gone.DEVELOPMENT_TEAMfromproject.yml.Testing
On device: build (after
xcodegen generate), tap + → pick several audio files from Files → they appear in My Music with metadata and artwork, analyze in the background (BPM/key appear), play with full transitions, and get stems separated on demand. Confirm no YouTube URLs anywhere in the UI, share sheet no longer offers Continuity, and a fresh install seeds the demo playlists as before.🤖 Generated with Claude Code
https://claude.ai/code/session_013TJoWkqg8bzkGdzxWhWjWP
Generated by Claude Code