Skip to content

Release v1.0: Final Merge of Development Branch into Main - #195

Merged
Abasy714 merged 929 commits into
mainfrom
development
May 3, 2026
Merged

Abasy714 merged 929 commits into
mainfrom
development

Conversation

@OmarHamza22

Copy link
Copy Markdown
Contributor

No description provided.

nourabosaif and others added 30 commits April 25, 2026 09:08
feat: implement track radio, saved stations, mix safeguards, and album previews
feat(subscriptions): implement subscription runtime and enforce track upload limits
Add cover image field to track metadata
feat: add Firebase Cloud Messaging environment variables to CI/CD wor…
changing the cover image is now updated in the database itself not just in the playlists' endpoints
…ike.model.js

The albums table uses artist_id as the owner column, not user_id.
Two queries in album-like.model.js incorrectly referenced user_id
on the albums table, causing Postgres to reject the query with a
500 before the response even formed.

Root cause: album-like.model.js assumed the albums owner column
was user_id, matching the pattern used in tracks and playlists.
Albums uses artist_id instead.

Affected queries:
  - Like album query (~line 107): SELECT id, user_id FROM albums
    → fixed to: SELECT id, artist_id FROM albums
  - getUserLikedAlbums: JOIN users u ON a.user_id = u.id
    → fixed to: JOIN users u ON a.artist_id = u.id

User-facing impact of the bug:
  - Liking an album returned 500
  - Viewing liked albums in library returned 500
  - Home screen for authenticated users could return 500
    if albums_for_you triggered the same code path

No schema changes. No migration needed.
Only album-like.model.js was modified.
…nd add new limits for track, playback, subscription, download, and public read requests
Removed duplicate notifications to prevent with same resource,action,user,action user to:
  like:   2 minute
  repost: 2 minute
  follow: 1 hour
  new_post_by_followed: null
  comment: null
…s for share link, visibility update, and delete operations
-added a migration to backfill playlists cover images
Switch follower count in users suggestion queries from cached users.followers_count to live follows-based counting (excluding deleted follower accounts), and update ordering/grouping accordingly. This makes /users/suggested and /users/suggested/artists consistent with /users/:user_id/followers results.
test: reorganize test suite architecture and resolve suite-wide failures
@OmarHamza22
OmarHamza22 requested a review from a team as a code owner May 2, 2026 20:50
Beshoy205 and others added 3 commits May 3, 2026 00:34
…for suspended users with Run prettier

- Added real-time suspension checks to both REST and Socket.IO authentication middleware.
- Configured automatic session cookie clearing when suspended users attempt to access the platform.
- Centralized refresh cookie security options and ensured immediate WebSocket disconnection upon admin suspension.
refactor(admin): implement immediate session invalidation and logout the user
…and utilities

Broadened Jest coverage across the backend’s highest-risk paths with new branch-focused tests for auth flows, refresh-token handling, middleware validation and error mapping, messaging, playlists, tracks, follows/blocks, admin workflows, and shared utilities. Also repaired the broken messages controller test suite and tightened a few controller/service branches so the suite could run cleanly end to end.
test: expand backend coverage across auth, messaging, social, media, …
@Abasy714
Abasy714 merged commit a21ee53 into main May 3, 2026
2 checks passed

This branch was previously deployed

1 inactive deployment
development — 30ed76b5 Deployed May 2, 2026 by OmarHamza22 via Build, Push & Deploy to VM1 #119
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants