Skip to content

chore: drop stray uid from new playback-system queues#14438

Merged
dylanjeffers merged 1 commit into
mainfrom
chore/drop-stray-playback-uids
Jun 2, 2026
Merged

chore: drop stray uid from new playback-system queues#14438
dylanjeffers merged 1 commit into
mainfrom
chore/drop-stray-playback-uids

Conversation

@dylanjeffers
Copy link
Copy Markdown
Contributor

What

Removes vestigial uid properties from the new playback system's queue builders, across web and mobile.

Why

The new playback system (playbackActions.playFrom + the PlaybackTrack queue in packages/common/src/store/playback) identifies tracks by queue index and (trackId, source). PlaybackTrack has no uid field, and nothing reads .uid off the queue (verified across the common slice/selectors, the web playback saga, and the mobile playback path — zero .uid reads).

Despite that, several PlaybackTrack[] builders still constructed each entry with a dead uid: makeStableUid(...) excess property. This removes them so the queue construction matches the system's actual contract.

Changes

PlaybackTrack[] builders cleaned:

  • mobile: CollectionScreenDetailsTile (collection + track-list queues), TracksTab (saved-tracks queue)
  • web: TrackTableLineup, useLibraryPage, HistoryPage (desktop), useCollectionPage

Left untouched (these uids are still read for active-track highlighting): lineup entry objects, table row uids, and the currentPlayingUid/useCollectionTrackUids comparison keys. Removed now-unused Kind/makeStableUid imports where the cleanup left them dangling.

Verification

  • tsc --noEmit clean in both packages/web and packages/mobile (0 errors).
  • Final sweep confirms no PlaybackTrack[] builder carries uid anymore.

Context

Follow-up to the collection-tile playback fix (#14435), which already dropped uid from the mobile feed-lineup queue. This cleans up the remaining call sites.

🤖 Generated with Claude Code

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>
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Jun 2, 2026

⚠️ No Changeset found

Latest commit: ef0275d

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

🌐 Web preview ready

Preview URL: https://audius-web-preview-pr-14438.audius.workers.dev

Unique preview for this PR (deployed from this branch).
Workflow run

@dylanjeffers dylanjeffers merged commit caad27b into main Jun 2, 2026
13 checks passed
@dylanjeffers dylanjeffers deleted the chore/drop-stray-playback-uids branch June 2, 2026 20:10
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant