chore: drop stray uid from new playback-system queues#14438
Merged
Conversation
The new playback system (playbackActions.playFrom + the PlaybackTrack queue) identifies tracks by queue index and (trackId, source) — PlaybackTrack has no uid field and nothing reads .uid off the queue. Several queue builders still passed a vestigial `uid: makeStableUid(...)` as an excess property; remove it. Cleans the PlaybackTrack[] builders in: - mobile: CollectionScreenDetailsTile (collection + track-list queues), TracksTab (saved tracks queue) - web: TrackTableLineup, useLibraryPage, HistoryPage (desktop), useCollectionPage Row/highlight uids (lineup entries, table rows, currentPlayingUid comparisons) are unchanged — those are still read for active-track styling. Drops now-unused Kind/makeStableUid imports where applicable. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Contributor
🌐 Web preview readyPreview URL: https://audius-web-preview-pr-14438.audius.workers.dev Unique preview for this PR (deployed from this branch). |
dylanjeffers
added a commit
that referenced
this pull request
Jun 2, 2026
## What Removes the dead, uid-based legacy lineup scaffolding. The lineup engine is **already fully migrated** to tan-query hooks (`useFeed`, `useTrending`, `useProfileTracks`, …) + the playback slice + `TrackLineup` — there were no legacy lineups left to migrate, only orphaned infrastructure. ## Why Investigation (follow-up to the playback-uid cleanup, [#14438](#14438)) showed the classic lineup system is gone: **zero** `makeLineupActions`/`LineupSagas` in source, and `common/store/lineup`'s reducer/registry is **not wired into any store**. The remaining surface had no live consumers. ## Changes - **Delete `packages/common/src/store/lineup/`** (`actions`, `reducer`, `selectors`, `registry`, `LineupBaseActions`) and drop its barrel re-export from `store/index.ts`. Verified: no direct-path imports, no symbol imports, not registered in any store. (`actionsMap` hits elsewhere are unrelated local reducer consts.) - **Delete `mobile/.../explore-screen/components/CollectionLineupCarousel.tsx`** — dead code (no source references anywhere), the only component still calling the legacy `actions.togglePlay(uid, id, source)`. Explore itself uses `useExploreContent`. - **Drop vestigial `LineupBaseActions` usage** from the mobile types: the `actions?: LineupBaseActions` prop on `lineup-tile/types.ts` (never read by `TrackTile`/`CollectionTile`) and the `actions: LineupBaseActions` fields on the unused legacy `Lineup*` prop types in `lineup/types.ts`. ## Verification - `tsc --noEmit` clean in **common**, **mobile**, and **web** (0 errors each) — the gate that confirms nothing leaned on the deleted module. - Changeset added (`@audius/common` patch) since this trims that package's exports. ## Not touched (out of scope) - A pre-existing roadmap TODO comment block in `common/store/sagas.ts` that lists old web saga paths (incl. `store/lineup/sagas.js`) — stale but unrelated. - Web card grids (`CardLineup`/`InfiniteCardLineup`) — presentational collection-card grids, not the uid/playback lineup system. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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
Removes vestigial
uidproperties from the new playback system's queue builders, across web and mobile.Why
The new playback system (
playbackActions.playFrom+ thePlaybackTrackqueue inpackages/common/src/store/playback) identifies tracks by queue index and(trackId, source).PlaybackTrackhas nouidfield, and nothing reads.uidoff the queue (verified across the common slice/selectors, the web playback saga, and the mobile playback path — zero.uidreads).Despite that, several
PlaybackTrack[]builders still constructed each entry with a deaduid: makeStableUid(...)excess property. This removes them so the queue construction matches the system's actual contract.Changes
PlaybackTrack[]builders cleaned:CollectionScreenDetailsTile(collection + track-list queues),TracksTab(saved-tracks queue)TrackTableLineup,useLibraryPage,HistoryPage(desktop),useCollectionPageLeft untouched (these
uids are still read for active-track highlighting): lineup entry objects, table row uids, and thecurrentPlayingUid/useCollectionTrackUidscomparison keys. Removed now-unusedKind/makeStableUidimports where the cleanup left them dangling.Verification
tsc --noEmitclean in bothpackages/webandpackages/mobile(0 errors).PlaybackTrack[]builder carriesuidanymore.Context
Follow-up to the collection-tile playback fix (#14435), which already dropped
uidfrom the mobile feed-lineup queue. This cleans up the remaining call sites.🤖 Generated with Claude Code