Releases: Abdullah00001/workly-contacts-server
v1.6.4
Release v1.6.4: Avatar Upload Worker Fix
Released: November 7, 2025
This is a hotfix to address a bug in the background avatar processing queue.
✅ Fixed
- Fixed a critical bug where the
AvatarUploadQueuewas initialized with the wrong queue name (account-deletion-queueinstead ofavatar-upload-queue). - This mismatch prevented the avatar worker from picking up any jobs, causing all background avatar uploads to fail silently.
- Avatars for new Google OAuth signups will now be processed and updated correctly.
What's Changed
- fix(auth): Prevent server crash from unhandled Google strategy errors by @Abdullah00001 in #60
- fix(avatar): Correct queue name for avatar uploads by @Abdullah00001 in #61
Full Changelog: v1.6.3...v1.6.4
v1.6.3
Release v1.6.3: Critical Auth Stability Fix
Released: November 7, 2025
This is a critical stability release, following up on v1.6.2.
This patch fixes a server crash and restart loop that occurred during the Google OAuth signup flow. Even after the OOM fix, an unhandled E11000 (duplicate key) database error was triggered when a second OAuth user (with a null password) attempted to sign up.
This unhandled error crashed the main application process, causing the server to restart.
✅ Fixed
- Critical Stability: The server will no longer crash when a database error occurs during the Google OAuth signup.
- Error Handling: The
passport-google-oauth20strategy is now wrapped in atry...catchblock. This ensures all database errors (like theE11000) are safely caught and handled, preventing the Node.js process from exiting.
What's Changed
- fix(auth): Prevent OOM crashes by making Google avatar upload asynchronous by @Abdullah00001 in #59
Full Changelog: v1.6.2...v1.6.3
v1.6.2
Release v1.6.2: Critical Stability & OAuth Performance Fix
Released: November 7, 2025
This is a critical stability and performance release.
It addresses a major issue where new user signups via Google OAuth were causing high API latency (>7s) and, more critically, leading to Out-of-Memory (OOM) crashes and frequent machine restarts on our production servers. 🚀
The root cause was a blocking, memory-intensive avatar upload process in the main application thread. This has been refactored to be fully asynchronous using a background job queue.
✅ Fixed
- Critical Stability: Resolved the bug causing frequent machine restarts (OOM crashes) during the Google OAuth signup flow. The memory-intensive avatar upload is no longer handled in the main application thread.
- Performance: Fixed the severe performance bottleneck where the Google OAuth signup endpoint would block for 7+ seconds. The response time is now near-instantaneous.
✨ New
- Avatar Upload Queue: Introduced a new
AvatarUploadQueue(BullMQ) to process avatar uploads asynchronously in the background. - Background Worker: Added a new worker process to consume the
AvatarUploadQueue. This worker is responsible for fetching the avatar from Google (using a memory-safe stream) and uploading it to Cloudinary. - Job Resilience: The new queue job is configured to retry 3 times with exponential backoff, improving the success rate of avatar uploads during temporary network or API failures.
🔧 Changed
- Google OAuth Flow: The
passport-google-oauth20strategy no longer waits for the avatar upload. It now creates the user with anullavatar and enqueues the background job, returning a response to the user immediately.
What's Changed
- fix: resolve production cookie and redirect issues, update changelog for v1.6.1 by @Abdullah00001 in #58
Full Changelog: v1.6.0...v1.6.2
v1.6.1
🚀 Release v1.6.1 — Hot-fix: Cookie & Deployment Patch
🧩 Overview
This release focuses on resolving critical issues related to cookie handling and redirect behavior in the production environment.
Additionally, a fix has been applied to the CI/CD deployment workflow to correct an invalid --region flag.
🐞 Fixes
- fix(cookie): resolved issue where cookies were not properly set in production
- fix(redirect): fixed redirect loop/handling issue after authentication
- fix(cd-pipeline): corrected invalid
--regionflag in deploy workflow
🧾 Documentation
- docs(CHANGELOG): updated changelog for
v1.6.1
🔧 Technical Notes
- Ensures stable authentication flow across environments
- Improves reliability of automated deployments
- No database or API schema changes introduced
✅ Summary
A stability-focused hot-fix ensuring consistent session handling and smoother deployment operations.
What's Changed
- fix: resolve production cookie and redirect issues, update changelog for v1.6.1 by @Abdullah00001 in #58
Full Changelog: v1.6.0...v1.6.1
v1.6.0
🚀 v1.6.0 - Workly Contacts Production Deployment & CI/CD
Overview
This release focuses on deploying Workly Contacts to production on Fly.io with full CI/CD integration. It also introduces major backend improvements, security enhancements, and new features for contact and account management.
✨ What's New
- Production Deployment & CI/CD: Application fully deployed to Fly.io with persistent storage. GitHub Actions automates Docker image build, push, and deployment on version tags.
- OAuth & Account Management Enhancements: Enforced OAuth password creation, automated account deletion workflow, and account unlock module implemented.
- Label System: Full CRUD operations for labels, with contact labeling and alphabetical sorting.
♻️ Improvements
- Import & Export Contacts: Endpoints added with file validation; removed Redis caching for reliability.
- Session Management & Security: Self-healing session in
checkSessionLimitmiddleware; refresh tokens aligned with session and cookie handling. - Contact Schema Updates: Added first and last name fields; fixed session and refresh token issues.
- Search & Feedback: Single contact export, improved search and feedback handling.
🛠 Fixes
- UI & Responsiveness: Improved mobile search, dashboard table, and UI responsiveness across pages.
- Contact Images: Removed discarded images from Cloudinary and reset payload state.
- Authentication & Middleware: Bug fixes for OAuth, local login, JWT utils, and activity queue handling.
✅ Stability & Testing
- Fully tested locally for stability with backend v1.6.0.
- Verified CI/CD pipeline and Fly.io deployment readiness.
- Security improvements validated for account and session flows.
Thanks for using Workly Contacts! This release ensures smoother deployments, better security, and an improved user experience.
🔖 Tagged as: v1.6.0
📅 Release Date: November 5, 2025
What's Changed
- feat(infra): Implement Fly.io production deployment and CI/CD by @Abdullah00001 in #57
- chore(release): merge release/v1.6.0 into main by @Abdullah00001 in #56
- refactor(login): add self-healing session in checkSessionLimit middleware and fix JWT utils tests by @Abdullah00001 in #55
- fix: enhance authentication security, enforce OAuth password creation, and implement automated account deletion workflow by @Abdullah00001 in #54
- feat(contacts): Add label management system with CRUD operations, contact labeling, and alphabetical sorting by @Abdullah00001 in #53
- fix(search & feedback): export single contact, improve search and feedback handling by @Abdullah00001 in #52
- feat(export): implement export endpoint to retrieve contact data for client-side export by @Abdullah00001 in #51
- feat(import/contacts): add import endpoint with validation, fix sessions & contact schema by @Abdullah00001 in #50
- feat(import): add contacts import endpoint with file validation and remove Redis caching by @Abdullah00001 in #49
- refactor(contact): add first and last name fields + fix session & refresh token issues by @Abdullah00001 in #48
- fix(auth): align refresh token expiry with session and cookie for OAuth and local login by @Abdullah00001 in #47
- feature(account-center): implement activity endpoints, refactor auth, and fix profile/refresh bugs by @Abdullah00001 in #46
Full Changelog: v1.6.0...v1.6.0
v1.5.0
🚀 v1.5.0 - Contact Management Enhancements
Overview
This release brings powerful updates to the contact management module, making it more efficient, user-friendly, and consistent. Users can now edit contacts directly, and backend logic has been optimized for better performance.
✨ What's New
- Edit Contact Support: Users can now edit their existing contact details including name, email, phone number, and image.
♻️ Improvements
- Favorite & Trash Query Optimized: Enhanced backend logic for fetching favorite and trashed contacts more efficiently and accurately.
- Single Trash Endpoint Introduced: Replaced multiple delete/trash endpoints with a unified, cleaner API route.
🛠 Fixes
- Image Upload Issue Resolved: Fixed a bug where contact image uploads were failing or not replacing correctly.
✅ Stability & Testing
- All changes were tested locally for stability.
- Minor refactors were done to prepare for upcoming features like pagination and advanced filters.
Thanks for using our app! More improvements and features coming in the next version.
🔖 Tagged as: v1.5.0
📅 Release Date: July 4, 2025
What's Changed
- Feature/contact by @Abdullah00001 in #23
Full Changelog: v1.4.0...v1.5.0
v1.4.0
📦 Release v1.4.0 – Image Upload & Delete Functionality
🚀 New Features
-
Image Module Setup
- Initialized the image module with route configuration and controller structure.
-
Upload Endpoint
POST /imageto handle image uploads via Multer and store them on Cloudinary.- Automatically deletes local temp files after a successful upload.
-
Delete Endpoint
DELETE /image/:public_idto remove uploaded images from Cloudinary using theirpublic_id.
🛠 Technical Notes
- Integrated Cloudinary for image storage.
- Used Multer middleware to handle
multipart/form-data. - Implemented auto-cleanup of local images post-upload.
✅ Tested
- Verified both endpoints through local testing.
- Added basic validations and error handling.
What's Changed
- Feature/image upload by @Abdullah00001 in #22
Full Changelog: v1.3.2...v1.4.0
v1.3.2
🛠️ Amar Contacts API - v1.3.2
This patch release addresses a critical issue with production deployments by updating and fixing the CI/CD pipeline configuration.
What’s Fixed
- Fixed the production deployment problem that was blocking releases.
- Improved the CI/CD pipeline to ensure smoother and more reliable automated deployments.
Thank you for your patience and support!
➡️ Next steps: Continuing to improve deployment automation and monitoring.
Full Changelog: v1.3.1...v1.3.2
v1.3.1
🚀 Release: v1.3.1 (2025-06-22)
This patch release addresses a CI/CD pipeline failure caused by missing test setup files during Docker builds. The issue was resolved by updating the .dockerignore configuration.
🐛 Bug Fixes
- Fixed test execution failure in CI/CD by ensuring
__tests__/jest.setup.tsis included during Docker builds. - Removed
__tests__from.dockerignore, allowing Jest to run setup scripts properly in containerized environments.
🛠 Maintenance
- Improved consistency and reliability of Docker-based CI/CD workflows.
✅ All tests are now running and passing successfully during CI builds.
📦 Docker image builds are now reproducible with full test coverage.
Full Changelog: v1.3.0...v1.3.1
v1.3.0
🚀 Amar Contacts API - v1.3.0
We’re excited to announce v1.3.0 of the Amar Contacts API!
This release brings full Swagger documentation, major upgrades in profile and contact management, and a robust testing infrastructure to ensure quality and reliability.
🔥 Highlights
- ✅ Swagger (OpenAPI) Documentation added for all endpoints.
- 👤 Profile Management:
- View & Update Profile
- Change Password
- Delete Account
- 📇 Contacts Enhancements:
- Create, Read, Update, Delete (CRUD)
- Add to Favorites & Trash
- Search and filter functionality
- 💬 Feedback Submission Endpoint added
🧪 Testing & Code Quality
- Comprehensive unit tests for:
- User repository
- Password and cookie utilities
- Mail options and environment config
- Edge case handling tested for key utilities
- Test environment setup and automated in the build pipeline
📝 Documentation & Maintenance
- Updated
README.md,SECURITY.md, andLICENSE - Enhanced build scripts with bash UI and test integration
- Removed incomplete tests and reorganized utils
📌 Contributors
Thanks to @Abdullah00001 for all contributions in this release 🙌
➡️ Next Up: Integration tests, performance improvements, and rate limiting!