fix: clear email attachments after send - #258

Merged
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service
Sep 26, 2025
Merged

fix: clear email attachments after send#258
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service

Conversation

@KMKoushik

@KMKoushikKMKoushik commented Sep 26, 2025

Copy link
Copy Markdown
Member

Summary

  • ensure sent emails clear their attachments column by persisting null
  • remove the unused Prisma import from the email queue service

Linked Issues

  • N/A

Screenshots

  • N/A (not a UI change)

Migration Notes

  • N/A

Verification

  • pnpm lint(fails: repository currently has lint warnings in other packages)
  • pnpm --filter web lint(fails: repository currently has lint warnings across the web app)

https://chatgpt.com/codex/tasks/task_e_68d1c8f91be88329bb94c6856a3fba42

Summary by CodeRabbit

  • Bug Fixes
    • Improved handling of sent emails by consistently setting the attachments status, preventing inconsistencies in email history and integrations.

@vercel

vercelBot commented Sep 26, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
unsend-marketingReadyReadyPreviewCommentSep 26, 2025 7:53pm

@coderabbitai

coderabbitaiBot commented Sep 26, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This change updates apps/web/src/server/service/email-queue-service.ts by removing the unused Prisma import (@prisma/client). It also modifies the post-send email update logic to set the attachments field to null instead of undefined in the database update call. No exported or public entity declarations were altered.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title Check✅ PassedThe title succinctly describes the primary change of clearing email attachments after sending and aligns with the PR’s main objective while remaining concise and clear.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/update-attachments-handling-in-email-queue-service

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10fc285 and ac74490.

📒 Files selected for processing (1)
  • apps/web/src/server/service/email-queue-service.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/general.mdc)

Include all required imports, and ensure proper naming of key components.

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use TypeScript with 2-space indentation and semicolons (enforced by Prettier)
ESLint must pass with zero warnings using @usesend/eslint-config
Do not use dynamic imports (avoid import() and dynamic loading)

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx,md}

📄 CodeRabbit inference engine (AGENTS.md)

Format code and docs with Prettier 3

Files:

  • apps/web/src/server/service/email-queue-service.ts
apps/web/**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

apps/web/**/*.{ts,tsx}: In apps/web, use the "/" alias for src imports (e.g., import { x } from "/utils/x")
Prefer using tRPC for API calls unless explicitly instructed otherwise

Files:

  • apps/web/src/server/service/email-queue-service.ts
🧠 Learnings (1)
📓 Common learnings
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project, Prisma's findUnique method works with composite where clauses including id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project using Prisma Client 6.6.0, findUnique works with composite where clauses containing id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts, as confirmed by the project maintainer KMKoushik.
🔇 Additional comments (1)
apps/web/src/server/service/email-queue-service.ts (1)

418-421: Attachments column now cleared correctly

Persisting null ensures the attachments column is actually cleared after the send instead of leaving stale JSON behind. Looks good.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying usesend with Cloudflare Pages Cloudflare Pages

Latest commit:ac74490
Status: ✅ Deploy successful!
Preview URL:https://0224b978.usesend.pages.dev
Branch Preview URL:https://codex-update-attachments-han.usesend.pages.dev

View logs

@KMKoushik
KMKoushik merged commit 0141992 into mainSep 26, 2025
5 checks passed
@KMKoushik
KMKoushik deleted the codex/update-attachments-handling-in-email-queue-service branch September 26, 2025 20:30
@coderabbitaicoderabbitaiBot mentioned this pull request May 18, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@KMKoushik
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix: clear email attachments after send - #258

Merged
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service
Sep 26, 2025
Merged

fix: clear email attachments after send#258
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service

Conversation

@KMKoushik

@KMKoushikKMKoushik commented Sep 26, 2025

Copy link
Copy Markdown
Member

Summary

  • ensure sent emails clear their attachments column by persisting null
  • remove the unused Prisma import from the email queue service

Linked Issues

  • N/A

Screenshots

  • N/A (not a UI change)

Migration Notes

  • N/A

Verification

  • pnpm lint(fails: repository currently has lint warnings in other packages)
  • pnpm --filter web lint(fails: repository currently has lint warnings across the web app)

https://chatgpt.com/codex/tasks/task_e_68d1c8f91be88329bb94c6856a3fba42

Summary by CodeRabbit

  • Bug Fixes
    • Improved handling of sent emails by consistently setting the attachments status, preventing inconsistencies in email history and integrations.

@vercel

vercelBot commented Sep 26, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
unsend-marketingReadyReadyPreviewCommentSep 26, 2025 7:53pm

@coderabbitai

coderabbitaiBot commented Sep 26, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This change updates apps/web/src/server/service/email-queue-service.ts by removing the unused Prisma import (@prisma/client). It also modifies the post-send email update logic to set the attachments field to null instead of undefined in the database update call. No exported or public entity declarations were altered.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title Check✅ PassedThe title succinctly describes the primary change of clearing email attachments after sending and aligns with the PR’s main objective while remaining concise and clear.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/update-attachments-handling-in-email-queue-service

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10fc285 and ac74490.

📒 Files selected for processing (1)
  • apps/web/src/server/service/email-queue-service.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/general.mdc)

Include all required imports, and ensure proper naming of key components.

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use TypeScript with 2-space indentation and semicolons (enforced by Prettier)
ESLint must pass with zero warnings using @usesend/eslint-config
Do not use dynamic imports (avoid import() and dynamic loading)

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx,md}

📄 CodeRabbit inference engine (AGENTS.md)

Format code and docs with Prettier 3

Files:

  • apps/web/src/server/service/email-queue-service.ts
apps/web/**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

apps/web/**/*.{ts,tsx}: In apps/web, use the "/" alias for src imports (e.g., import { x } from "/utils/x")
Prefer using tRPC for API calls unless explicitly instructed otherwise

Files:

  • apps/web/src/server/service/email-queue-service.ts
🧠 Learnings (1)
📓 Common learnings
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project, Prisma's findUnique method works with composite where clauses including id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project using Prisma Client 6.6.0, findUnique works with composite where clauses containing id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts, as confirmed by the project maintainer KMKoushik.
🔇 Additional comments (1)
apps/web/src/server/service/email-queue-service.ts (1)

418-421: Attachments column now cleared correctly

Persisting null ensures the attachments column is actually cleared after the send instead of leaving stale JSON behind. Looks good.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying usesend with Cloudflare Pages Cloudflare Pages

Latest commit:ac74490
Status: ✅ Deploy successful!
Preview URL:https://0224b978.usesend.pages.dev
Branch Preview URL:https://codex-update-attachments-han.usesend.pages.dev

View logs

@KMKoushik
KMKoushik merged commit 0141992 into mainSep 26, 2025
5 checks passed
@KMKoushik
KMKoushik deleted the codex/update-attachments-handling-in-email-queue-service branch September 26, 2025 20:30
@coderabbitaicoderabbitaiBot mentioned this pull request May 18, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@KMKoushik
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: clear email attachments after send - #258

Merged
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service
Sep 26, 2025
Merged

fix: clear email attachments after send#258
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service

Conversation

@KMKoushik

@KMKoushikKMKoushik commented Sep 26, 2025

Copy link
Copy Markdown
Member

Summary

  • ensure sent emails clear their attachments column by persisting null
  • remove the unused Prisma import from the email queue service

Linked Issues

  • N/A

Screenshots

  • N/A (not a UI change)

Migration Notes

  • N/A

Verification

  • pnpm lint(fails: repository currently has lint warnings in other packages)
  • pnpm --filter web lint(fails: repository currently has lint warnings across the web app)

https://chatgpt.com/codex/tasks/task_e_68d1c8f91be88329bb94c6856a3fba42

Summary by CodeRabbit

  • Bug Fixes
    • Improved handling of sent emails by consistently setting the attachments status, preventing inconsistencies in email history and integrations.

@vercel

vercelBot commented Sep 26, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
unsend-marketingReadyReadyPreviewCommentSep 26, 2025 7:53pm

@coderabbitai

coderabbitaiBot commented Sep 26, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This change updates apps/web/src/server/service/email-queue-service.ts by removing the unused Prisma import (@prisma/client). It also modifies the post-send email update logic to set the attachments field to null instead of undefined in the database update call. No exported or public entity declarations were altered.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title Check✅ PassedThe title succinctly describes the primary change of clearing email attachments after sending and aligns with the PR’s main objective while remaining concise and clear.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/update-attachments-handling-in-email-queue-service

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10fc285 and ac74490.

📒 Files selected for processing (1)
  • apps/web/src/server/service/email-queue-service.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/general.mdc)

Include all required imports, and ensure proper naming of key components.

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use TypeScript with 2-space indentation and semicolons (enforced by Prettier)
ESLint must pass with zero warnings using @usesend/eslint-config
Do not use dynamic imports (avoid import() and dynamic loading)

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx,md}

📄 CodeRabbit inference engine (AGENTS.md)

Format code and docs with Prettier 3

Files:

  • apps/web/src/server/service/email-queue-service.ts
apps/web/**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

apps/web/**/*.{ts,tsx}: In apps/web, use the "/" alias for src imports (e.g., import { x } from "/utils/x")
Prefer using tRPC for API calls unless explicitly instructed otherwise

Files:

  • apps/web/src/server/service/email-queue-service.ts
🧠 Learnings (1)
📓 Common learnings
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project, Prisma's findUnique method works with composite where clauses including id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project using Prisma Client 6.6.0, findUnique works with composite where clauses containing id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts, as confirmed by the project maintainer KMKoushik.
🔇 Additional comments (1)
apps/web/src/server/service/email-queue-service.ts (1)

418-421: Attachments column now cleared correctly

Persisting null ensures the attachments column is actually cleared after the send instead of leaving stale JSON behind. Looks good.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying usesend with Cloudflare Pages Cloudflare Pages

Latest commit:ac74490
Status: ✅ Deploy successful!
Preview URL:https://0224b978.usesend.pages.dev
Branch Preview URL:https://codex-update-attachments-han.usesend.pages.dev

View logs

@KMKoushik
KMKoushik merged commit 0141992 into mainSep 26, 2025
5 checks passed
@KMKoushik
KMKoushik deleted the codex/update-attachments-handling-in-email-queue-service branch September 26, 2025 20:30
@coderabbitaicoderabbitaiBot mentioned this pull request May 18, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@KMKoushik
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: clear email attachments after send - #258

Merged
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service
Sep 26, 2025
Merged

fix: clear email attachments after send#258
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service

Conversation

@KMKoushik

@KMKoushikKMKoushik commented Sep 26, 2025

Copy link
Copy Markdown
Member

Summary

  • ensure sent emails clear their attachments column by persisting null
  • remove the unused Prisma import from the email queue service

Linked Issues

  • N/A

Screenshots

  • N/A (not a UI change)

Migration Notes

  • N/A

Verification

  • pnpm lint(fails: repository currently has lint warnings in other packages)
  • pnpm --filter web lint(fails: repository currently has lint warnings across the web app)

https://chatgpt.com/codex/tasks/task_e_68d1c8f91be88329bb94c6856a3fba42

Summary by CodeRabbit

  • Bug Fixes
    • Improved handling of sent emails by consistently setting the attachments status, preventing inconsistencies in email history and integrations.

@vercel

vercelBot commented Sep 26, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
unsend-marketingReadyReadyPreviewCommentSep 26, 2025 7:53pm

@coderabbitai

coderabbitaiBot commented Sep 26, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This change updates apps/web/src/server/service/email-queue-service.ts by removing the unused Prisma import (@prisma/client). It also modifies the post-send email update logic to set the attachments field to null instead of undefined in the database update call. No exported or public entity declarations were altered.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title Check✅ PassedThe title succinctly describes the primary change of clearing email attachments after sending and aligns with the PR’s main objective while remaining concise and clear.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/update-attachments-handling-in-email-queue-service

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10fc285 and ac74490.

📒 Files selected for processing (1)
  • apps/web/src/server/service/email-queue-service.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/general.mdc)

Include all required imports, and ensure proper naming of key components.

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use TypeScript with 2-space indentation and semicolons (enforced by Prettier)
ESLint must pass with zero warnings using @usesend/eslint-config
Do not use dynamic imports (avoid import() and dynamic loading)

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx,md}

📄 CodeRabbit inference engine (AGENTS.md)

Format code and docs with Prettier 3

Files:

  • apps/web/src/server/service/email-queue-service.ts
apps/web/**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

apps/web/**/*.{ts,tsx}: In apps/web, use the "/" alias for src imports (e.g., import { x } from "/utils/x")
Prefer using tRPC for API calls unless explicitly instructed otherwise

Files:

  • apps/web/src/server/service/email-queue-service.ts
🧠 Learnings (1)
📓 Common learnings
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project, Prisma's findUnique method works with composite where clauses including id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project using Prisma Client 6.6.0, findUnique works with composite where clauses containing id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts, as confirmed by the project maintainer KMKoushik.
🔇 Additional comments (1)
apps/web/src/server/service/email-queue-service.ts (1)

418-421: Attachments column now cleared correctly

Persisting null ensures the attachments column is actually cleared after the send instead of leaving stale JSON behind. Looks good.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying usesend with Cloudflare Pages Cloudflare Pages

Latest commit:ac74490
Status: ✅ Deploy successful!
Preview URL:https://0224b978.usesend.pages.dev
Branch Preview URL:https://codex-update-attachments-han.usesend.pages.dev

View logs

@KMKoushik
KMKoushik merged commit 0141992 into mainSep 26, 2025
5 checks passed
@KMKoushik
KMKoushik deleted the codex/update-attachments-handling-in-email-queue-service branch September 26, 2025 20:30
@coderabbitaicoderabbitaiBot mentioned this pull request May 18, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@KMKoushik
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix: clear email attachments after send - #258

Merged
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service
Sep 26, 2025
Merged

fix: clear email attachments after send#258
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service

Conversation

@KMKoushik

@KMKoushikKMKoushik commented Sep 26, 2025

Copy link
Copy Markdown
Member

Summary

  • ensure sent emails clear their attachments column by persisting null
  • remove the unused Prisma import from the email queue service

Linked Issues

  • N/A

Screenshots

  • N/A (not a UI change)

Migration Notes

  • N/A

Verification

  • pnpm lint(fails: repository currently has lint warnings in other packages)
  • pnpm --filter web lint(fails: repository currently has lint warnings across the web app)

https://chatgpt.com/codex/tasks/task_e_68d1c8f91be88329bb94c6856a3fba42

Summary by CodeRabbit

  • Bug Fixes
    • Improved handling of sent emails by consistently setting the attachments status, preventing inconsistencies in email history and integrations.

@vercel

vercelBot commented Sep 26, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
unsend-marketingReadyReadyPreviewCommentSep 26, 2025 7:53pm

@coderabbitai

coderabbitaiBot commented Sep 26, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This change updates apps/web/src/server/service/email-queue-service.ts by removing the unused Prisma import (@prisma/client). It also modifies the post-send email update logic to set the attachments field to null instead of undefined in the database update call. No exported or public entity declarations were altered.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title Check✅ PassedThe title succinctly describes the primary change of clearing email attachments after sending and aligns with the PR’s main objective while remaining concise and clear.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/update-attachments-handling-in-email-queue-service

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10fc285 and ac74490.

📒 Files selected for processing (1)
  • apps/web/src/server/service/email-queue-service.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/general.mdc)

Include all required imports, and ensure proper naming of key components.

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use TypeScript with 2-space indentation and semicolons (enforced by Prettier)
ESLint must pass with zero warnings using @usesend/eslint-config
Do not use dynamic imports (avoid import() and dynamic loading)

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx,md}

📄 CodeRabbit inference engine (AGENTS.md)

Format code and docs with Prettier 3

Files:

  • apps/web/src/server/service/email-queue-service.ts
apps/web/**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

apps/web/**/*.{ts,tsx}: In apps/web, use the "/" alias for src imports (e.g., import { x } from "/utils/x")
Prefer using tRPC for API calls unless explicitly instructed otherwise

Files:

  • apps/web/src/server/service/email-queue-service.ts
🧠 Learnings (1)
📓 Common learnings
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project, Prisma's findUnique method works with composite where clauses including id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project using Prisma Client 6.6.0, findUnique works with composite where clauses containing id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts, as confirmed by the project maintainer KMKoushik.
🔇 Additional comments (1)
apps/web/src/server/service/email-queue-service.ts (1)

418-421: Attachments column now cleared correctly

Persisting null ensures the attachments column is actually cleared after the send instead of leaving stale JSON behind. Looks good.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying usesend with Cloudflare Pages Cloudflare Pages

Latest commit:ac74490
Status: ✅ Deploy successful!
Preview URL:https://0224b978.usesend.pages.dev
Branch Preview URL:https://codex-update-attachments-han.usesend.pages.dev

View logs

@KMKoushik
KMKoushik merged commit 0141992 into mainSep 26, 2025
5 checks passed
@KMKoushik
KMKoushik deleted the codex/update-attachments-handling-in-email-queue-service branch September 26, 2025 20:30
@coderabbitaicoderabbitaiBot mentioned this pull request May 18, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@KMKoushik
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: clear email attachments after send - #258

Merged
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service
Sep 26, 2025
Merged

fix: clear email attachments after send#258
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service

Conversation

@KMKoushik

@KMKoushikKMKoushik commented Sep 26, 2025

Copy link
Copy Markdown
Member

Summary

  • ensure sent emails clear their attachments column by persisting null
  • remove the unused Prisma import from the email queue service

Linked Issues

  • N/A

Screenshots

  • N/A (not a UI change)

Migration Notes

  • N/A

Verification

  • pnpm lint(fails: repository currently has lint warnings in other packages)
  • pnpm --filter web lint(fails: repository currently has lint warnings across the web app)

https://chatgpt.com/codex/tasks/task_e_68d1c8f91be88329bb94c6856a3fba42

Summary by CodeRabbit

  • Bug Fixes
    • Improved handling of sent emails by consistently setting the attachments status, preventing inconsistencies in email history and integrations.

@vercel

vercelBot commented Sep 26, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
unsend-marketingReadyReadyPreviewCommentSep 26, 2025 7:53pm

@coderabbitai

coderabbitaiBot commented Sep 26, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This change updates apps/web/src/server/service/email-queue-service.ts by removing the unused Prisma import (@prisma/client). It also modifies the post-send email update logic to set the attachments field to null instead of undefined in the database update call. No exported or public entity declarations were altered.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title Check✅ PassedThe title succinctly describes the primary change of clearing email attachments after sending and aligns with the PR’s main objective while remaining concise and clear.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/update-attachments-handling-in-email-queue-service

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10fc285 and ac74490.

📒 Files selected for processing (1)
  • apps/web/src/server/service/email-queue-service.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/general.mdc)

Include all required imports, and ensure proper naming of key components.

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use TypeScript with 2-space indentation and semicolons (enforced by Prettier)
ESLint must pass with zero warnings using @usesend/eslint-config
Do not use dynamic imports (avoid import() and dynamic loading)

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx,md}

📄 CodeRabbit inference engine (AGENTS.md)

Format code and docs with Prettier 3

Files:

  • apps/web/src/server/service/email-queue-service.ts
apps/web/**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

apps/web/**/*.{ts,tsx}: In apps/web, use the "/" alias for src imports (e.g., import { x } from "/utils/x")
Prefer using tRPC for API calls unless explicitly instructed otherwise

Files:

  • apps/web/src/server/service/email-queue-service.ts
🧠 Learnings (1)
📓 Common learnings
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project, Prisma's findUnique method works with composite where clauses including id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project using Prisma Client 6.6.0, findUnique works with composite where clauses containing id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts, as confirmed by the project maintainer KMKoushik.
🔇 Additional comments (1)
apps/web/src/server/service/email-queue-service.ts (1)

418-421: Attachments column now cleared correctly

Persisting null ensures the attachments column is actually cleared after the send instead of leaving stale JSON behind. Looks good.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying usesend with Cloudflare Pages Cloudflare Pages

Latest commit:ac74490
Status: ✅ Deploy successful!
Preview URL:https://0224b978.usesend.pages.dev
Branch Preview URL:https://codex-update-attachments-han.usesend.pages.dev

View logs

@KMKoushik
KMKoushik merged commit 0141992 into mainSep 26, 2025
5 checks passed
@KMKoushik
KMKoushik deleted the codex/update-attachments-handling-in-email-queue-service branch September 26, 2025 20:30
@coderabbitaicoderabbitaiBot mentioned this pull request May 18, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@KMKoushik
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: clear email attachments after send - #258

Merged
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service
Sep 26, 2025
Merged

fix: clear email attachments after send#258
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service

Conversation

@KMKoushik

@KMKoushikKMKoushik commented Sep 26, 2025

Copy link
Copy Markdown
Member

Summary

  • ensure sent emails clear their attachments column by persisting null
  • remove the unused Prisma import from the email queue service

Linked Issues

  • N/A

Screenshots

  • N/A (not a UI change)

Migration Notes

  • N/A

Verification

  • pnpm lint(fails: repository currently has lint warnings in other packages)
  • pnpm --filter web lint(fails: repository currently has lint warnings across the web app)

https://chatgpt.com/codex/tasks/task_e_68d1c8f91be88329bb94c6856a3fba42

Summary by CodeRabbit

  • Bug Fixes
    • Improved handling of sent emails by consistently setting the attachments status, preventing inconsistencies in email history and integrations.

@vercel

vercelBot commented Sep 26, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
unsend-marketingReadyReadyPreviewCommentSep 26, 2025 7:53pm

@coderabbitai

coderabbitaiBot commented Sep 26, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This change updates apps/web/src/server/service/email-queue-service.ts by removing the unused Prisma import (@prisma/client). It also modifies the post-send email update logic to set the attachments field to null instead of undefined in the database update call. No exported or public entity declarations were altered.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title Check✅ PassedThe title succinctly describes the primary change of clearing email attachments after sending and aligns with the PR’s main objective while remaining concise and clear.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/update-attachments-handling-in-email-queue-service

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10fc285 and ac74490.

📒 Files selected for processing (1)
  • apps/web/src/server/service/email-queue-service.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/general.mdc)

Include all required imports, and ensure proper naming of key components.

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use TypeScript with 2-space indentation and semicolons (enforced by Prettier)
ESLint must pass with zero warnings using @usesend/eslint-config
Do not use dynamic imports (avoid import() and dynamic loading)

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx,md}

📄 CodeRabbit inference engine (AGENTS.md)

Format code and docs with Prettier 3

Files:

  • apps/web/src/server/service/email-queue-service.ts
apps/web/**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

apps/web/**/*.{ts,tsx}: In apps/web, use the "/" alias for src imports (e.g., import { x } from "/utils/x")
Prefer using tRPC for API calls unless explicitly instructed otherwise

Files:

  • apps/web/src/server/service/email-queue-service.ts
🧠 Learnings (1)
📓 Common learnings
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project, Prisma's findUnique method works with composite where clauses including id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project using Prisma Client 6.6.0, findUnique works with composite where clauses containing id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts, as confirmed by the project maintainer KMKoushik.
🔇 Additional comments (1)
apps/web/src/server/service/email-queue-service.ts (1)

418-421: Attachments column now cleared correctly

Persisting null ensures the attachments column is actually cleared after the send instead of leaving stale JSON behind. Looks good.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying usesend with Cloudflare Pages Cloudflare Pages

Latest commit:ac74490
Status: ✅ Deploy successful!
Preview URL:https://0224b978.usesend.pages.dev
Branch Preview URL:https://codex-update-attachments-han.usesend.pages.dev

View logs

@KMKoushik
KMKoushik merged commit 0141992 into mainSep 26, 2025
5 checks passed
@KMKoushik
KMKoushik deleted the codex/update-attachments-handling-in-email-queue-service branch September 26, 2025 20:30
@coderabbitaicoderabbitaiBot mentioned this pull request May 18, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@KMKoushik
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix: clear email attachments after send - #258

Merged
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service
Sep 26, 2025
Merged

fix: clear email attachments after send#258
KMKoushik merged 1 commit into
mainfrom
codex/update-attachments-handling-in-email-queue-service

Conversation

@KMKoushik

@KMKoushikKMKoushik commented Sep 26, 2025

Copy link
Copy Markdown
Member

Summary

  • ensure sent emails clear their attachments column by persisting null
  • remove the unused Prisma import from the email queue service

Linked Issues

  • N/A

Screenshots

  • N/A (not a UI change)

Migration Notes

  • N/A

Verification

  • pnpm lint(fails: repository currently has lint warnings in other packages)
  • pnpm --filter web lint(fails: repository currently has lint warnings across the web app)

https://chatgpt.com/codex/tasks/task_e_68d1c8f91be88329bb94c6856a3fba42

Summary by CodeRabbit

  • Bug Fixes
    • Improved handling of sent emails by consistently setting the attachments status, preventing inconsistencies in email history and integrations.

@vercel

vercelBot commented Sep 26, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
unsend-marketingReadyReadyPreviewCommentSep 26, 2025 7:53pm

@coderabbitai

coderabbitaiBot commented Sep 26, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This change updates apps/web/src/server/service/email-queue-service.ts by removing the unused Prisma import (@prisma/client). It also modifies the post-send email update logic to set the attachments field to null instead of undefined in the database update call. No exported or public entity declarations were altered.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title Check✅ PassedThe title succinctly describes the primary change of clearing email attachments after sending and aligns with the PR’s main objective while remaining concise and clear.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/update-attachments-handling-in-email-queue-service

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10fc285 and ac74490.

📒 Files selected for processing (1)
  • apps/web/src/server/service/email-queue-service.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/general.mdc)

Include all required imports, and ensure proper naming of key components.

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use TypeScript with 2-space indentation and semicolons (enforced by Prettier)
ESLint must pass with zero warnings using @usesend/eslint-config
Do not use dynamic imports (avoid import() and dynamic loading)

Files:

  • apps/web/src/server/service/email-queue-service.ts
**/*.{ts,tsx,md}

📄 CodeRabbit inference engine (AGENTS.md)

Format code and docs with Prettier 3

Files:

  • apps/web/src/server/service/email-queue-service.ts
apps/web/**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

apps/web/**/*.{ts,tsx}: In apps/web, use the "/" alias for src imports (e.g., import { x } from "/utils/x")
Prefer using tRPC for API calls unless explicitly instructed otherwise

Files:

  • apps/web/src/server/service/email-queue-service.ts
🧠 Learnings (1)
📓 Common learnings
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project, Prisma's findUnique method works with composite where clauses including id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts
Learnt from: KMKoushik
PR: usesend/useSend#224
File: apps/web/src/server/public-api/api/emails/get-email.ts:63-74
Timestamp: 2025-09-10T12:33:42.667Z
Learning: In the useSend project using Prisma Client 6.6.0, findUnique works with composite where clauses containing id, teamId, and optional domainId fields in apps/web/src/server/public-api/api/emails/get-email.ts, as confirmed by the project maintainer KMKoushik.
🔇 Additional comments (1)
apps/web/src/server/service/email-queue-service.ts (1)

418-421: Attachments column now cleared correctly

Persisting null ensures the attachments column is actually cleared after the send instead of leaving stale JSON behind. Looks good.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying usesend with Cloudflare Pages Cloudflare Pages

Latest commit:ac74490
Status: ✅ Deploy successful!
Preview URL:https://0224b978.usesend.pages.dev
Branch Preview URL:https://codex-update-attachments-han.usesend.pages.dev

View logs

@KMKoushik
KMKoushik merged commit 0141992 into mainSep 26, 2025
5 checks passed
@KMKoushik
KMKoushik deleted the codex/update-attachments-handling-in-email-queue-service branch September 26, 2025 20:30
@coderabbitaicoderabbitaiBot mentioned this pull request May 18, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@KMKoushik