Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
a15bbea
ci(mobile): cache deps + parallelize OTA + decouple lint to speed up …
dylanjeffers May 15, 2026
342a671
chore: remove solana-relay and relay from monorepo (#14312)
dylanjeffers May 15, 2026
54a23d4
feat(mobile): port feed filter button to native app (#14332)
dylanjeffers May 15, 2026
c11bb00
fix(mobile): point SOLANA_RELAY_ENDPOINT to dedicated solana-relay ho…
dylanjeffers May 15, 2026
8c7fd58
fix(mobile): commenting fails on tracks with zero existing comments (…
dylanjeffers May 15, 2026
5632898
chore(web): remove dead staging environment artifacts (#14325)
dylanjeffers May 15, 2026
6a175ac
fix(web): contest cards open in new tab on cmd/middle-click (#14333)
dylanjeffers May 15, 2026
b5817fc
fix(feed): anchor filter button to the right side, match Trending pat…
dylanjeffers May 15, 2026
0f9d73a
feat(mobile): chronological feed filter button uses drawer pattern (#…
dylanjeffers May 15, 2026
3f4eac3
fix(mobile): contest followers screen blank when limit exceeds 100 (#…
dylanjeffers May 15, 2026
28293fd
ci(mobile): stop OTA workflow from wiping CodePush release history (#…
dylanjeffers May 15, 2026
a2018a1
[codex] Fix Android profile header dimming (#14341)
dylanjeffers May 15, 2026
09a9e8b
feat(mobile): add queue icon to mini player (#14340)
dylanjeffers May 15, 2026
18a1aab
fix: mobile contest cards too narrow in Explore carousel (#14338)
dylanjeffers May 15, 2026
2a4dd72
fix(mobile): comment kebab menu desyncs after close (#14342)
dylanjeffers May 15, 2026
5153b2b
chore: remove Sentry from the entire monorepo (#14336)
dylanjeffers May 16, 2026
dfe47b7
fix(mobile): use ContestCardSkeleton in explore contests carousel (#1…
dylanjeffers May 18, 2026
c93a265
fix(mobile): wire mirror retry to drawer profile picture (#14349)
raymondjacobson May 18, 2026
de7e3f9
fix(protocol-dashboard): fetch latest validator version via getNumber…
raymondjacobson May 19, 2026
380e538
fix(web): trigger lineup next-page fetch before user scrolls past ske…
raymondjacobson May 19, 2026
2e77a41
fix(protocol-dashboard): remove '1.0.0' validator-version fallback so…
raymondjacobson May 19, 2026
d7d7b51
Fix app delegate metro config (#14359)
raymondjacobson May 20, 2026
ee1362d
feat: redesign cast UX with unified Connect drawer (#14357)
raymondjacobson May 20, 2026
87badc2
feat(web): replace quick-create playlist flow with a modal (#14318)
dylanjeffers May 20, 2026
da014df
feat(web): add duplicate playlist flow under the New nav button (#14319)
dylanjeffers May 20, 2026
a30a875
Remove FingerprintJS from all systems (#14362)
dylanjeffers May 20, 2026
9f75330
Chore/upgrade node 24 rn 79 (#14303)
raymondjacobson May 20, 2026
a80d544
Fix lint (#14364)
raymondjacobson May 20, 2026
6bd5c27
fix(notifications): personalize embedded users in related response (#…
raymondjacobson May 20, 2026
be0537f
fix(cache-prime): personalize embedded users on three more endpoints …
raymondjacobson May 20, 2026
58de216
fix: optimistic delete for developer apps (#14350)
dylanjeffers May 21, 2026
f3d55fa
Remove FingerprintJS from all systems (#14360)
dylanjeffers May 21, 2026
8f27fa6
feat(mobile): now playing indicator with animated eq bars (#14369)
dylanjeffers May 21, 2026
c5a95ac
fix(web): seed contest source track from URL when permalink resolves …
dylanjeffers May 21, 2026
6c05553
feat(protocol-dashboard): show validator stats from /health-check and…
raymondjacobson May 21, 2026
a6e8c2e
Fix login prompt for contest comments (#14368)
cursor[bot] May 21, 2026
51cf0b2
chore(mobile): resolve react-native to 0.79.5 in lockfile + pods (#14…
raymondjacobson May 21, 2026
32c0ca9
feat(web): paginate the audio transactions page (#14381)
rickyrombo May 21, 2026
b803e5e
chore: point anti-abuse oracle endpoint at anti-abuse-oracle.audius.e…
dylanjeffers May 22, 2026
e2a1e25
fix(web): use relative paths when navigating after contest submit (#1…
dylanjeffers May 22, 2026
b242e13
feat(web): inline-edit playlist title and description on collection p…
dylanjeffers May 22, 2026
802487b
fix(mobile): remove duplicate analytics import in ContestScreen (#14386)
raymondjacobson May 22, 2026
3080531
ci(mobile): symlink react-native CLI for CodePush OTA bundling (#14387)
raymondjacobson May 22, 2026
4d4d8ec
fix(mobile): comment kebab swallowed by redundant CommentSectionProvi…
dylanjeffers May 22, 2026
f5b09c6
fix(mobile): route all contest notifications to Contest screen (#14384)
dylanjeffers May 22, 2026
02e7aa0
Save Draft / restore flow for Create Contest page (#14371)
dylanjeffers May 22, 2026
bb5bdee
chore(mobile): bump versions for release + restore Node in Android CI…
raymondjacobson May 22, 2026
5612392
fix(mobile): render DrawerPortal inside BottomSheetModalProvider so c…
dylanjeffers May 22, 2026
57bf817
feat(for-you): switch useForYouFeed to dedicated /users/{id}/feed/for…
dylanjeffers May 22, 2026
f950823
fix(mobile): stop cold-launch keyboard flash on explore search (#14395)
dylanjeffers May 23, 2026
06420ca
fix(mobile): unblock release flow — Android Hermes entryFile + iOS fa…
raymondjacobson May 23, 2026
fa4a923
fix(mobile): Xcode 26 SDK for iOS upload + hermesc path for Android (…
raymondjacobson May 23, 2026
3068f5b
feat(web): add tracks to a playlist by pasting Audius URLs
dylanjeffers May 15, 2026
b4c3cea
feat(web): copy source tracks when duplicating a playlist
dylanjeffers May 15, 2026
8698579
feat(web): inline edit mode on playlist detail page with staged Apply
dylanjeffers May 15, 2026
61f40bb
feat(web): bulk track actions toolbar (select-all, copy URLs, remove,…
dylanjeffers May 15, 2026
2f1607b
feat(web): row-click selection on playlist tracks in edit mode
dylanjeffers May 15, 2026
865bd00
feat(web): highlight selected playlist rows while in edit mode
dylanjeffers May 15, 2026
eaac6cb
fix(web): polish playlist edit-mode shift+click range selection
dylanjeffers May 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .changeset/aao-endpoint-engineering.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@audius/sdk': patch
---

Point the production anti-abuse oracle endpoint at `https://anti-abuse-oracle.audius.engineering`, replacing the old `https://discoveryprovider.audius.co` host in the SDK services config and supporting clients/services.
22 changes: 22 additions & 0 deletions .changeset/notifications-path-id-rename.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
'@audius/sdk': major
---

Rename the path field on `getNotifications` and `getPlaylistUpdates` from `userId` to `id`, matching the convention used by every `/users/{id}/…` method. Add an optional `userId` query field that carries the requester id for personalization of embedded `related.users` (e.g. `does_current_user_follow`).

**Migration:**

```ts
// Before
sdk.notifications.getNotifications({ userId: 'aE9MA' })
sdk.notifications.getPlaylistUpdates({ userId: 'aE9MA' })

// After
sdk.notifications.getNotifications({
id: 'aE9MA', // notifications owner (was `userId`)
userId: 'aE9MA' // requester id, for personalization of related.users
})
sdk.notifications.getPlaylistUpdates({ id: 'aE9MA', userId: 'aE9MA' })
```

The two ids differ only when a manager reads a managed user's notifications; in the normal flow they're the same value. The wire format and server URL are unchanged — only the request type shape was renamed to remove a collision between the path and the new query parameter.
13 changes: 13 additions & 0 deletions .changeset/personalization-three-endpoints.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
'@audius/sdk': minor
---

Add an optional `userId?: string` query parameter to three endpoints so the backend can personalize embedded users in `related.users` / collection owners (`does_current_user_follow`, etc.):

- `events.getRemixContests`
- `users.getContestsByUser`
- `playlists.getPlaylistsNewReleases`

Without this, the endpoints' handlers (`app.getMyId(c)`) resolved the requester id from the missing `?user_id=` query and got `0`, so embedded user objects came back with `does_current_user_follow: false` for everyone. Clients that primed those into a shared cache (e.g. via `primeRelatedData` / `primeCollectionData`) silently poisoned follow state for the surfaced artists.

Existing callers continue to work unchanged — the field is optional. Pass `Id.parse(currentUserId)` (or whichever id your app treats as "me") to opt in.
8 changes: 8 additions & 0 deletions .changeset/remove-fingerprintjs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
'@audius/common': patch
'@audius/sdk-legacy': patch
'@audius/web': patch
'@audius/mobile': patch
---

Remove FingerprintJS from all clients and services. Sign-in no longer collects a `visitorId`, the identity service's fingerprint-based OTP bypass is gone (new devices always require OTP), and the anti-abuse-oracle drops the per-fingerprint device-count scoring and UI section.
1 change: 0 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ jobs:
- ./packages/ddex-entrypoint/node_modules
- ./packages/create-audius-app/node_modules
- ./packages/dotenv-linter/bin
- ./packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules

generate-release-branch:
working_directory: ~/apps
Expand Down
1 change: 0 additions & 1 deletion .circleci/scripts/docker-tag-images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ discovery=(
discovery-provider-notifications
discovery-provider-openresty
es-indexer
solana-relay
staking
anti-abuse
archiver
Expand Down
5 changes: 0 additions & 5 deletions .circleci/src/commands/@mobile-commands.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,6 @@ mobile-prepare-ios:
command: |
cd packages/mobile/ios
bundle exec pod install
- run:
name: Install Sentry CLI
command: |
curl -sL https://sentry.io/get-cli/ | bash
echo export SENTRY_BINARY=/usr/local/bin/sentry-cli >> "$BASH_ENV"
- run:
name: Build dependencies
no_output_timeout: 60m
Expand Down
1 change: 0 additions & 1 deletion .circleci/src/jobs/@integration-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ e2e-init:
- packages/libs/dist
- packages/sdk/node_modules
- packages/sdk/dist
- packages/discovery-provider/plugins/pedalboard/apps/solana-relay/node_modules

e2e-test:
machine: true
Expand Down
24 changes: 0 additions & 24 deletions .circleci/src/jobs/@web-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,30 +143,6 @@ web-deploy-production-cloudflare:
copy-robots: true
# - web-deploy-sourcemaps-s3

web-deploy-sentry-sourcemaps:
working_directory: ~/apps
docker:
- image: cimg/node:20.19
steps:
- checkout
- attach_workspace:
at: ./
- run:
name: cut-sentry-release
command: |
cd packages/web
../../node_modules/.bin/sentry-cli --auth-token ${SENTRY_AUTH_TOKEN} releases --org audius --project audius-client new ${CIRCLE_SHA1}
- run:
name: upload-sourcemaps
command: |
cd packages/web
../../node_modules/.bin/sentry-cli --auth-token ${SENTRY_AUTH_TOKEN} releases --org audius --project audius-client files ${CIRCLE_SHA1} upload-sourcemaps --no-rewrite build-production/static/js
- run:
name: finalize-release
command: |
cd packages/web
../../node_modules/.bin/sentry-cli --auth-token ${SENTRY_AUTH_TOKEN} releases --org audius --project audius-client finalize ${CIRCLE_SHA1}

web-dist-mac-production:
working_directory: ~/apps
# run on macos so dmg can be created and signed.
Expand Down
2 changes: 1 addition & 1 deletion .circleci/src/workflows/discovery.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ jobs:
- push-docker-image:
name: push-discovery-provider
context: [Vercel, dockerhub]
service: discovery-provider discovery-provider-openresty discovery-provider-notifications staking solana-relay es-indexer anti-abuse archiver
service: discovery-provider discovery-provider-openresty discovery-provider-notifications staking es-indexer anti-abuse archiver
filters:
branches:
only: main
Expand Down
2 changes: 1 addition & 1 deletion .circleci/src/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
- push-docker-image:
name: push-discovery-provider
context: [Vercel, dockerhub, slack-secrets]
service: discovery-provider discovery-provider-notifications discovery-provider-openresty solana-relay staking es-indexer anti-abuse archiver
service: discovery-provider discovery-provider-notifications discovery-provider-openresty staking es-indexer anti-abuse archiver
notify_slack_on_failure: true
- commit-audius-docker-compose-and-notify:
context: [slack-secrets, github]
Expand Down
8 changes: 0 additions & 8 deletions .circleci/src/workflows/web.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,6 @@ jobs:
filters:
branches:
only: /^main$/
- web-deploy-sentry-sourcemaps:
context: Audius Client
requires:
- web-hold-production
filters:
branches:
only: /^main$/

# Distribute production desktop binaries on main.
- web-hold-dist-mac-production:
type: approval
Expand Down
Loading
Loading