KM Koushik
e246d32ef9
fix: prevent duplicate notification emails via atomic Redis SET NX ( #346 )
...
The warning and limit-reached notification emails were being sent
multiple times because of a race condition: concurrent workers could
both read the Redis cooldown key as empty (GET), both send emails,
then both set the key (SETEX). Replaced the non-atomic GET + SETEX
pattern with a single atomic SET ... NX EX that claims the cooldown
slot before any emails are sent. Also increased cooldown from 6 hours
to 24 hours so each notification is sent at most once per day.
https://claude.ai/code/session_01VBYXi5e64Vtq1cXWsfTYTw
Co-authored-by: Claude <noreply@anthropic.com >
2026-02-01 07:24:02 +11:00
KM Koushik
eed37d09c6
fix build
2026-01-18 21:44:25 +11:00
KM Koushik
8676965019
feat: add webhooks ( #334 )
2026-01-18 20:50:54 +11:00
KM Koushik
f40a311cc9
fix: enforce contact book ownership ( #341 )
2026-01-17 18:08:05 +11:00
Dave Stockley
6786ff003e
feat: contact books public api ( #336 )
...
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-17 17:24:25 +11:00
Thiago Praxedes
83119f97c8
Refine suppression list to include only affected recipients ( #339 )
2026-01-17 17:00:43 +11:00
Dave Stockley
68d951c55a
feat: v1/campaign public api endpoint ( #335 )
...
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-01-11 09:37:57 +11:00
KM Koushik
95dfa6b532
Upgrade Next.js to 15.5.9 ( #326 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-12-18 06:48:24 +11:00
KM Koushik
bef580ff92
use turbo in dev mode ( #321 )
2025-12-14 20:29:53 +11:00
KM Koushik
11b5ac1bf7
Fix bar chart hover on zero delivery days ( #320 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-12-14 10:27:28 +11:00
KM Koushik
1e79f13bd4
add export contact book option ( #318 )
2025-12-14 10:08:54 +11:00
KM Koushik
461cd949e5
Fix Infinity% display bug in email chart ( #319 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-12-14 09:35:05 +11:00
KM Koushik
fd3c600b2e
add upload contacts support ( #314 )
2025-12-13 08:15:42 +11:00
Vincent Vu
9c1c6f3538
fix(security): CVE-2025-55184, CVE-2025-55183 ( #313 )
2025-12-12 10:11:43 +11:00
KM Koushik
3e3f6d521a
Display Docker image version in sidebar ( #304 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-12-07 22:18:56 +11:00
KM Koushik
693ec9c0ce
bump nextjx version ( #301 )
2025-12-07 07:41:15 +11:00
KM Koushik
e1b64d0d7b
Add feedback dialog for cloud dashboard ( #293 )
2025-11-29 10:22:12 +11:00
Deepak S
357d561a8e
"[feat] Emails retention periods/cleanup #158 " ( #286 )
2025-11-29 08:13:41 +11:00
KM Koushik
cb489654b5
idempotency ( #282 )
2025-11-17 11:42:09 +11:00
KM Koushik
f525381fb9
send free limit reached email for inactive plans
2025-10-26 11:05:51 +11:00
KM Koushik
7edff5b783
Add subscription ID search to admin team lookup ( #284 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-26 09:40:11 +11:00
KM Koushik
4fe354b85a
Fix free limits and email notifications for inactive users ( #283 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-26 07:52:44 +11:00
KM Koushik
8e569f886e
fix build
2025-10-25 05:43:00 +11:00
KM Koushik
1c9056ba75
Configure Email Usage Alert Logic ( #278 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-25 05:37:46 +11:00
KM Koushik
374f173a09
add delete resource modal ( #280 )
2025-10-25 05:37:16 +11:00
KM Koushik
f1e63b6c46
add team ID column to email analytics page ( #279 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-25 04:49:45 +11:00
KM Koushik
77b0239b92
add contact to users on waitlist removal ( #276 )
2025-10-19 15:08:33 +11:00
KM Koushik
189b44bc1e
fix campaign update not working
2025-10-19 07:14:03 +11:00
KM Koushik
a5ca3b2f87
add campaign api ( #274 )
2025-10-18 10:31:43 +11:00
KM Koushik
e631f16c85
feat: batch campaigns ( #227 )
2025-10-12 22:43:16 +11:00
KM Koushik
159b15e37e
queue bulk contacts ( #273 )
2025-10-12 06:18:04 +11:00
KM Koushik
2fe2d5cdab
update package version and response return tyupe for delete domain api ( #272 )
2025-10-11 06:37:24 +11:00
Kuntal Majee
3f6a02ac56
delete-domain route added ( #267 )
2025-10-11 05:56:45 +11:00
Vamsi Sai
3388426929
fix: template-edit-page-responsiveness ( #268 )
2025-10-11 05:08:11 +11:00
Vamsi Sai
1216b8085e
fix: contact update mutation ( #265 )
2025-10-03 04:32:09 +10:00
Vamsi Sai
42849cd9f9
feat: add streaming(loading) for smtp settings page navigation ( #264 )
...
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-10-02 06:45:16 +10:00
Vamsi Sai
9c813c7409
fix: email list page responsiveness ( #263 )
2025-10-01 05:21:59 +10:00
KM Koushik
890ad72057
feat: add custom email headers ( #260 )
2025-09-28 21:33:45 +10:00
KM Koushik
1a00999bf0
feat: add waitlist rejection email ( #257 )
2025-09-27 09:41:47 +10:00
KM Koushik
76fdad6c81
feat: expose domain dns records via api ( #259 )
2025-09-27 09:40:14 +10:00
KM Koushik
014199201b
fix: clear email attachments after send ( #258 )
2025-09-27 06:30:33 +10:00
Alen Abraham
10fc285dcb
fix:ui suppresion page ( #252 )
2025-09-27 05:40:08 +10:00
Ashin T V
42377b5041
ui-fix ReputationMetrics ( #249 )
2025-09-21 17:48:00 +10:00
Ashin T V
c6405b47d2
ui-fix topbar ( #245 )
2025-09-21 06:21:38 +10:00
Ashin T V
cb79be68c7
ui-fix emailchart ( #244 )
2025-09-21 06:19:06 +10:00
KM Koushik
5780177d26
fix: send founder email on first paid subscription ( #247 )
2025-09-21 06:18:16 +10:00
KM Koushik
2fa8c1b600
fix build
2025-09-19 08:24:08 +10:00
KM Koushik
81faba2aba
add admin mail analytics ( #240 )
2025-09-19 08:18:23 +10:00
KM Koushik
62a15ef811
add waitlist confirmation ( #239 )
2025-09-19 07:26:38 +10:00
KM Koushik
87c772dcc4
add waitlist submission form ( #238 )
2025-09-18 21:00:59 +10:00