v1.4.0 – Changelog
Environmental & Configuration Updates
- Introduce advanced Redis setup (queue, cache, session) and switch to the predis client in 
.env.exampleby @theihasan - Add failover mailer configuration and environment vars for BREVO, ZEPTO and RESEND email providers by @theihasan
 
Documentation Improvements
- Expand README.md with an “Email Communications” section detailing registration, password resets, and weekly job alerts by @theihasan
 
Caching Layer
- Add 
JobFilterCacheclass to cache job categories, publishers, and countries (with keys invalidation) by @theihasan 
Console Commands & Events
- Add 
TestWelcomeNotificationartisan command to send a test welcome email to any user by @theihasan - Introduce 
SendWelcomeEmailevent listener that logs and dispatches the real welcome notification after user registration by @theihasan 
AI & Exception Handling
- Add 
OpenAPICreditExceedExceptionto better handle and report when AI‐service credits are exhausted by @theihasan - Enhance the Livewire 
GenerateCoverLettercomponent to support “regenerate with feedback” flows and more robust error messages by @theihasan 
Job Dispatching & Processing
- Delay each 
GetJobDatadispatch by 5 seconds inDispatchJobCategoriesand improve exception logging for chunked dispatching by @theihasan - Update 
GetJobDatajob to import Carbon and record the API rate‐limit reset timestamp in the database by @theihasan 
User Notifications
- 
Refactor
NotifyUserAboutNewJobsjob to:- Send country‐specific digests based on each user’s 
countrycode - Use the Laravel 
Notificationfacade for cleaner dispatching
by @theihasan 
 - Send country‐specific digests based on each user’s 
 
Logging & Error Handling
- Improve error‐message formatting in 
StoreJobsjob to consistently log array- or string-based exceptions by @theihasan - Add 
UpdateUserCountryFromCloudflarejob to record theCF-IPCountryheader into each user’scountryfield by @theihasan 
Full Changelog: v1.3.0...v1.4.0