Skip to content

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Jul 11, 2025

This is an automated pull request to deploy the staging branch to production.
Please review the pull request and comment /deploy to merge this PR and deploy to production.


Summary by cubic

Updated Gmail API requests to use a new quota user format that includes both the user email and environment name. This helps prevent quota issues when using the same Google account across different environments.

  • Refactors
    • Added a getQuotaUser() method to generate environment-specific quota user identifiers.
    • Updated all relevant API calls to use this method.

# Refactor Google Mail Manager quota user handling

## Description

Added a new `getQuotaUser()` method to the GoogleMailManager class that combines the user's email with the current environment (`NODE_ENV`). Updated all Google API calls to use this method instead of directly using the email as the quota user.

This change helps prevent quota limit issues by creating environment-specific quota user identifiers, which is particularly useful when running multiple environments (development, staging, production) with the same Google account.

---

## Type of Change

- [x] ⚡ Performance improvement

## Areas Affected

- [x] Email Integration (Gmail, IMAP, etc.)

## Testing Done

- [x] Manual testing performed

## Checklist

- [x] I have performed a self-review of my code
- [x] My changes generate no new warnings

## Additional Notes

This change helps prevent hitting Google API quota limits by differentiating quota usage across different environments.

---

_By submitting this pull request, I confirm that my contribution is made under the terms of the project's license._

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

* **Refactor**
  * Improved handling of user identification for Gmail API requests to enhance consistency across different environments.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@github-actions github-actions bot added the production-deploy This PR is meant to update production label Jul 11, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 11, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Join our Discord community for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@graphite-app graphite-app bot requested a review from MrgSub July 11, 2025 20:01
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Summary

Enhanced Google API quota management in apps/server/src/lib/driver/google.ts by implementing environment-aware request throttling.

  • Added getQuotaUser method that combines user email and NODE_ENV for unique request identification
  • Modified API methods (list, get, getThreadMetadata) to utilize quota user identifiers
  • Improved request distribution across different environments to prevent quota exhaustion

1 file reviewed, no comments
Edit PR Review Bot Settings | Greptile

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jul 11, 2025

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
zero-server-production d9db7a4 Jul 21 2025, 08:44 PM

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jul 11, 2025

Deploying zero-staging with  Cloudflare Pages  Cloudflare Pages

Latest commit: d9db7a4
Status: ✅  Deploy successful!
Preview URL: https://2cf575c4.zero-staging-c02.pages.dev

View logs

@graphite-app
Copy link
Contributor

graphite-app bot commented Jul 11, 2025

Graphite Automations

"Deploy to Production Helper" took an action on this PR • (07/11/25)

1 reviewer was added to this PR based on Rahul Mishra's automation.

cursor[bot]

This comment was marked as outdated.

abhix4 and others added 7 commits July 11, 2025 13:16
# Prevent users from deleting their last connection

## Description

Added a validation check before deleting a connection to ensure users always maintain at least one connection. The system now throws an error if a user attempts to delete their last remaining connection.

---

## Type of Change

- [x] 🐛 Bug fix (non-breaking change which fixes an issue)

## Areas Affected

- [x] Data Storage/Management
- [x] API Endpoints

## Testing Done

- [x] Manual testing performed

## Security Considerations

- [x] No sensitive data is exposed
- [x] Input validation is implemented

## Checklist

- [x] I have performed a self-review of my code
- [x] My changes generate no new warnings

## Additional Notes

This change prevents users from getting into a state where they have no connections, which could lead to unexpected behavior in the application.

---

_By submitting this pull request, I confirm that my contribution is made under the terms of the project's license._
# Email Content Prefetching and Processing Optimization

## Description

This PR improves email loading performance by implementing prefetching and caching of processed email HTML content. It splits the email processing logic into two parts:

1. Server-side preprocessing that handles sanitization and structure
2. Client-side processing that applies theme-specific styling and image loading preferences

The changes also add prefetching of the latest message in a thread to improve perceived loading speed when users open emails.

---

## Type of Change

- [x] ⚡ Performance improvement
- [x] 🎨 UI/UX improvement

## Areas Affected

- [x] Email Integration (Gmail, IMAP, etc.)
- [x] User Interface/Experience
- [x] Performance Optimization

## Testing Done

- [x] Manual testing performed
- [x] Cross-browser testing (if UI changes)

## Checklist

- [x] I have performed a self-review of my code
- [x] My changes generate no new warnings
- [x] My code follows the project's style guidelines

## Additional Notes

The email processing logic has been refactored to:
1. Separate heavy sanitization work (which can be done once) from theme/preference application
2. Cache processed content with a 30-minute stale time and 1-hour garbage collection time
3. Respect user preferences for external image loading and trusted senders
4. Apply theme-specific styling based on user settings or system preference

This should significantly improve the perceived performance when opening emails, especially for threads with complex HTML content.

---

_By submitting this pull request, I confirm that my contribution is made under the terms of the project's license._

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **New Features**
  * Improved email thread view by displaying the latest non-draft message.
  * Enhanced email content processing to apply user settings and theme preferences, including external image loading and dark/light mode support.

* **Bug Fixes**
  * More accurate handling of external images and theme styling in emails based on user preferences.

* **Chores**
  * Updated internal configuration for local development environment.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Hey team,

[**Lingo.dev**](https://lingo.dev) here with fresh translations!

### In this update

- Added missing translations
- Performed brand voice, context and glossary checks
- Enhanced translations using Lingo.dev Localization Engine

### Next Steps

- [ ] Review the changes
- [ ] Merge when ready
    
<!-- This is an auto-generated description by cubic. -->
---

## Summary by cubic
Updated translations for all supported languages in the mail app to improve clarity and consistency, including better pluralization and more accurate search placeholders.

<!-- End of auto-generated description by cubic. -->
cursor[bot]

This comment was marked as outdated.

## Description

Refactored the AI chat component and email assistant to improve performance, reliability, and user experience. This PR introduces a new `inboxRag` tool for natural language email search, replaces the previous `listThreads` implementation, and enhances the prompt design for more efficient inbox management.

---

## Type of Change

- ✨ New feature (non-breaking change which adds functionality)
- ⚡ Performance improvement

## Areas Affected

- [x] Email Integration (Gmail, IMAP, etc.)
- [x] User Interface/Experience
- [x] API Endpoints

## Testing Done

- [x] Manual testing performed

## Checklist

- [x] I have performed a self-review of my code
- [x] My changes generate no new warnings

## Additional Notes

Key improvements:
- Added `ThreadPreview` component to replace the previous thread rendering approach
- Refactored `ToolResponse` to use specialized subcomponents for different tool types
- Updated AI prompts with better instructions for multi-step and parallel operations
- Switched backend models to Claude 3.5 for improved reasoning capabilities
- Fixed key prop issues in attachment rendering to prevent React warnings
- Increased agent max steps from 5 to 10 for more complex operations
- Added better markdown styling support for lists and other elements

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **New Features**
  * Introduced advanced AI-powered inbox search and organization with new tools and richer assistant guidance.
  * Added support for Anthropic AI models for chat and search tasks.
  * Enabled new streaming tool for natural language inbox search.

* **Improvements**
  * Enhanced AI assistant prompt with detailed instructions, expanded use cases, and improved communication style.
  * Modularized and streamlined AI chat component for clearer tool response rendering and better markdown styling.
  * Increased chat step limit in the AI sidebar for longer conversations.
  * Improved uniqueness of attachment keys to prevent display issues.

* **Bug Fixes**
  * Corrected parameter naming for thread and draft listing to ensure accurate pagination.

* **Chores**
  * Updated dependencies and environment variables for improved configuration and model support.
  * Cleaned up unused code and imports for better maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
cursor[bot]

This comment was marked as outdated.

ahmetskilinc and others added 3 commits July 14, 2025 00:39
## Description

Added specific styling to the BimiAvatar component in the mail display to ensure consistent sizing and proper vertical alignment. The avatar now has a fixed height and width of 8 units and a top margin of 3 units.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **Style**
  * Updated the avatar in mail display with improved spacing and consistent sizing for a more polished appearance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
cursor[bot]

This comment was marked as outdated.

retrogtx and others added 3 commits July 15, 2025 10:21
# Keyboard Layout Detection and Mapping for Shortcuts

## Description

Added keyboard layout detection and mapping to ensure keyboard shortcuts work correctly across different keyboard layouts. The implementation supports QWERTY, Dvorak, Colemak, AZERTY, and QWERTZ layouts, with automatic detection based on browser APIs and fallback methods. Also added a keyboard layout indicator component to show the current detected layout in the UI.

## Type of Change

- ✨ New feature (non-breaking change which adds functionality)
- 🎨 UI/UX improvement
- ⚡ Performance improvement

## Areas Affected

- [x] User Interface/Experience

## Testing Done

- [x] Manual testing performed
- [x] Cross-browser testing (if UI changes)

## Checklist

- [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in complex areas
- [x] My changes generate no new warnings

## Additional Notes

The implementation uses the KeyboardLayoutMap API when available, with fallbacks to language detection and predefined mappings. The keyboard layout indicator only appears when a non-QWERTY layout is detected.

Also includes some code quality improvements:
- Enhanced error handling in Gmail API interactions
- Simplified optimistic action refresh logic
- Improved rate limit handling on the server side

## Screenshots/Recordings

N/A

---

_By submitting this pull request, I confirm that my contribution is made under the terms of the project's license._

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **New Features**
  * Added dynamic keyboard layout detection and mapping, supporting QWERTY, Dvorak, Colemak, Azerty, and QWERTZ.
  * Introduced a keyboard layout indicator to display the current layout in the mail app.
  * Enhanced keyboard shortcuts to display and map keys according to the detected keyboard layout.
  * Added a utility to convert key names to keyboard event codes for consistent shortcut handling.

* **Refactor**
  * Updated keyboard shortcut handling throughout the mail app to use layout-aware shortcuts.
  * Simplified optimistic action refresh logic and removed unused parameters.
  * Refactored internal retry logic for server-side Gmail API calls.
  * Replaced promise handling with Effect abstractions in server thread label modifications.

* **Style**
  * Cleaned up whitespace and reordered import statements in several components.

* **Chores**
  * Added additional logging for debugging and removed unnecessary log statements.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
cursor[bot]

This comment was marked as outdated.

# READ CAREFULLY THEN REMOVE

Remove bullet points that are not relevant.

PLEASE REFRAIN FROM USING AI TO WRITE YOUR CODE AND PR DESCRIPTION. IF YOU DO USE AI TO WRITE YOUR CODE PLEASE PROVIDE A DESCRIPTION AND REVIEW IT CAREFULLY. MAKE SURE YOU UNDERSTAND THE CODE YOU ARE SUBMITTING USING AI.

- Pull requests that do not follow these guidelines will be closed without review or comment.
- If you use AI to write your PR description your pr will be close without review or comment.
- If you are unsure about anything, feel free to ask for clarification.

## Description

Please provide a clear description of your changes.

---

## Type of Change

Please delete options that are not relevant.

- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature with breaking changes)
- [ ] 📝 Documentation update
- [ ] 🎨 UI/UX improvement
- [ ] 🔒 Security enhancement
- [ ] ⚡ Performance improvement

## Areas Affected

Please check all that apply:

- [ ] Email Integration (Gmail, IMAP, etc.)
- [ ] User Interface/Experience
- [ ] Authentication/Authorization
- [ ] Data Storage/Management
- [ ] API Endpoints
- [ ] Documentation
- [ ] Testing Infrastructure
- [ ] Development Workflow
- [ ] Deployment/Infrastructure

## Testing Done

Describe the tests you've done:

- [ ] Unit tests added/updated
- [ ] Integration tests added/updated
- [ ] Manual testing performed
- [ ] Cross-browser testing (if UI changes)
- [ ] Mobile responsiveness verified (if UI changes)

## Security Considerations

For changes involving data or authentication:

- [ ] No sensitive data is exposed
- [ ] Authentication checks are in place
- [ ] Input validation is implemented
- [ ] Rate limiting is considered (if applicable)

## Checklist

- [ ] I have read the [CONTRIBUTING](https://github.com/Mail-0/Zero/blob/staging/.github/CONTRIBUTING.md) document
- [ ] My code follows the project's style guidelines
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in complex areas
- [ ] I have updated the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix/feature works
- [ ] All tests pass locally
- [ ] Any dependent changes are merged and published

## Additional Notes

Add any other context about the pull request here.

## Screenshots/Recordings

Add screenshots or recordings here if applicable.

---

_By submitting this pull request, I confirm that my contribution is made under the terms of the project's license._

    
<!-- This is an auto-generated description by cubic. -->
---

## Summary by cubic
Added a Privacy link to the navigation menu and updated language files for improved privacy labeling and consistency across all supported languages.

<!-- End of auto-generated description by cubic. -->



<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

* **New Features**
  * Added a "Privacy" menu item to both desktop and mobile navigation in the mail app.

* **Style**
  * Increased the maximum width of the desktop navigation header and adjusted padding for improved layout.
  * Updated responsive breakpoints for navigation visibility to enhance display across devices.

* **Localization**
  * Simplified the search placeholder text in the command palette across all supported languages.
  * Reformatted pluralization entries for better readability in localization files.
  * Standardized pluralization placeholders for notes and replies, replacing variable placeholders with a "#" symbol.
  * Removed the "Open in New Tab" translation key from all language files.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
cursor[bot]

This comment was marked as outdated.

# Gmail Search Query Builder and MCP Tool Registration Improvements

## Description

This PR adds a dedicated Gmail search query builder tool and improves the Model Context Protocol (MCP) agent implementation. The changes include:

1. Added a new `BuildGmailSearchQuery` tool that leverages AI to help users construct effective Gmail search queries
2. Migrated MCP agent tools to use the newer `registerTool` method with proper descriptions and input schemas
3. Added initial message handling for AI sidebar component
4. Reduced thread sync max count from 40 to 5 to improve performance during development

## Type of Change

- [x] ✨ New feature (non-breaking change which adds functionality)
- [x] ⚡ Performance improvement

## Areas Affected

- [x] Email Integration (Gmail, IMAP, etc.)
- [x] User Interface/Experience
- [x] API Endpoints

## Testing Done

- [x] Manual testing performed

## Checklist

- [x] I have performed a self-review of my code
- [x] My changes generate no new warnings

## Additional Notes

The Gmail search query builder tool helps users construct more effective search queries by translating natural language requests into Gmail's search syntax. This should improve the user experience when trying to find specific emails.

The MCP tool registration improvements provide better documentation and type safety for the available tools.
cursor[bot]

This comment was marked as outdated.

github-actions bot and others added 5 commits July 15, 2025 20:11
Hey team,

[**Lingo.dev**](https://lingo.dev) here with fresh translations!

### In this update

- Added missing translations
- Performed brand voice, context and glossary checks
- Enhanced translations using Lingo.dev Localization Engine

### Next Steps

- [ ] Review the changes
- [ ] Merge when ready
    
<!-- This is an auto-generated description by cubic. -->
---

## Summary by cubic
Updated translations for all supported languages in the mail app to add missing phrases, improve consistency, and align with brand voice.

- **Dependencies**
  - Updated i18n.lock to reflect new and changed translation keys.

<!-- End of auto-generated description by cubic. -->
## Description

Integrated Dub Analytics into the application to track user interactions and improve analytics capabilities. This PR adds the Dub Analytics component to the mail application layout and configures the analytics plugin in the authentication system.

---

## Type of Change

- [x] ✨ New feature (non-breaking change which adds functionality)
- [x] ⚡ Performance improvement

## Areas Affected

- [x] Authentication/Authorization
- [x] User Interface/Experience
- [x] Data Storage/Management

## Testing Done

- [x] Manual testing performed

## Security Considerations

- [x] No sensitive data is exposed
- [x] Authentication checks are in place

## Checklist

- [x] I have performed a self-review of my code
- [x] My changes generate no new warnings
- [x] I have updated the documentation

## Additional Notes

The Dub Analytics integration provides better insights into user behavior while maintaining privacy standards. The implementation includes:

1. Added Dub Analytics component to the mail application layout with domain configuration
2. Integrated Dub analytics plugin into the authentication system
3. Added required dependencies (@dub/analytics, @dub/better-auth, and dub) to the project
# Add email sequence templates for user onboarding and feature announcements

## Description

Added a new set of React Email templates for our email sequence system. These templates include:

- Welcome email for new signups
- Mail0 Pro introduction (day 1)
- Auto-labeling feature announcement (day 2)
- AI Writing Assistant introduction (day 3)
- Keyboard shortcuts guide (day 4)
- Categories feature announcement (day 5)
- Super Search feature announcement (day 6)
- Pro subscription welcome email
- Cancellation follow-up email

All emails maintain consistent styling with personalization options and clear calls-to-action, including calendar booking links with gift card incentives for user feedback.

## Type of Change

- [x] ✨ New feature (non-breaking change which adds functionality)
- [x] 🎨 UI/UX improvement

## Areas Affected

- [x] Email Integration (Gmail, IMAP, etc.)
- [x] User Interface/Experience

## Testing Done

- [x] Manual testing performed

## Checklist

- [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in complex areas
- [x] My changes generate no new warnings

## Additional Notes

These email templates use React Email components for consistent rendering across email clients. Each template includes preview text and responsive styling with a clean, professional design that matches our brand voice.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **New Features**
  * Introduced a series of personalized email templates for various user engagement stages, including welcome, feature announcements, upgrade prompts, and cancellation notices.
  * Each email highlights product features, benefits, and includes invitations to book calls with incentives.
  * Emails are designed with consistent styling and support personalized greetings.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
# READ CAREFULLY THEN REMOVE

Remove bullet points that are not relevant.

PLEASE REFRAIN FROM USING AI TO WRITE YOUR CODE AND PR DESCRIPTION. IF YOU DO USE AI TO WRITE YOUR CODE PLEASE PROVIDE A DESCRIPTION AND REVIEW IT CAREFULLY. MAKE SURE YOU UNDERSTAND THE CODE YOU ARE SUBMITTING USING AI.

- Pull requests that do not follow these guidelines will be closed without review or comment.
- If you use AI to write your PR description your pr will be close without review or comment.
- If you are unsure about anything, feel free to ask for clarification.

## Description

Please provide a clear description of your changes.

---

## Type of Change

Please delete options that are not relevant.

- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature with breaking changes)
- [ ] 📝 Documentation update
- [ ] 🎨 UI/UX improvement
- [ ] 🔒 Security enhancement
- [ ] ⚡ Performance improvement

## Areas Affected

Please check all that apply:

- [ ] Email Integration (Gmail, IMAP, etc.)
- [ ] User Interface/Experience
- [ ] Authentication/Authorization
- [ ] Data Storage/Management
- [ ] API Endpoints
- [ ] Documentation
- [ ] Testing Infrastructure
- [ ] Development Workflow
- [ ] Deployment/Infrastructure

## Testing Done

Describe the tests you've done:

- [ ] Unit tests added/updated
- [ ] Integration tests added/updated
- [ ] Manual testing performed
- [ ] Cross-browser testing (if UI changes)
- [ ] Mobile responsiveness verified (if UI changes)

## Security Considerations

For changes involving data or authentication:

- [ ] No sensitive data is exposed
- [ ] Authentication checks are in place
- [ ] Input validation is implemented
- [ ] Rate limiting is considered (if applicable)

## Checklist

- [ ] I have read the [CONTRIBUTING](https://github.com/Mail-0/Zero/blob/staging/.github/CONTRIBUTING.md) document
- [ ] My code follows the project's style guidelines
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in complex areas
- [ ] I have updated the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix/feature works
- [ ] All tests pass locally
- [ ] Any dependent changes are merged and published

## Additional Notes

Add any other context about the pull request here.

## Screenshots/Recordings

Add screenshots or recordings here if applicable.

---

_By submitting this pull request, I confirm that my contribution is made under the terms of the project's license._

    
<!-- This is an auto-generated description by cubic. -->
---

## Summary by cubic
Updated pluralization logic for attachment, file, note, and reply counts across all supported languages in the mail app translation files. This improves accuracy and consistency for count-based labels in different languages.

<!-- End of auto-generated description by cubic. -->
# READ CAREFULLY THEN REMOVE

Remove bullet points that are not relevant.

PLEASE REFRAIN FROM USING AI TO WRITE YOUR CODE AND PR DESCRIPTION. IF YOU DO USE AI TO WRITE YOUR CODE PLEASE PROVIDE A DESCRIPTION AND REVIEW IT CAREFULLY. MAKE SURE YOU UNDERSTAND THE CODE YOU ARE SUBMITTING USING AI.

- Pull requests that do not follow these guidelines will be closed without review or comment.
- If you use AI to write your PR description your pr will be close without review or comment.
- If you are unsure about anything, feel free to ask for clarification.

## Description

Please provide a clear description of your changes.

---

## Type of Change

Please delete options that are not relevant.

- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature with breaking changes)
- [ ] 📝 Documentation update
- [ ] 🎨 UI/UX improvement
- [ ] 🔒 Security enhancement
- [ ] ⚡ Performance improvement

## Areas Affected

Please check all that apply:

- [ ] Email Integration (Gmail, IMAP, etc.)
- [ ] User Interface/Experience
- [ ] Authentication/Authorization
- [ ] Data Storage/Management
- [ ] API Endpoints
- [ ] Documentation
- [ ] Testing Infrastructure
- [ ] Development Workflow
- [ ] Deployment/Infrastructure

## Testing Done

Describe the tests you've done:

- [ ] Unit tests added/updated
- [ ] Integration tests added/updated
- [ ] Manual testing performed
- [ ] Cross-browser testing (if UI changes)
- [ ] Mobile responsiveness verified (if UI changes)

## Security Considerations

For changes involving data or authentication:

- [ ] No sensitive data is exposed
- [ ] Authentication checks are in place
- [ ] Input validation is implemented
- [ ] Rate limiting is considered (if applicable)

## Checklist

- [ ] I have read the [CONTRIBUTING](https://github.com/Mail-0/Zero/blob/staging/.github/CONTRIBUTING.md) document
- [ ] My code follows the project's style guidelines
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in complex areas
- [ ] I have updated the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix/feature works
- [ ] All tests pass locally
- [ ] Any dependent changes are merged and published

## Additional Notes

Add any other context about the pull request here.

## Screenshots/Recordings

Add screenshots or recordings here if applicable.

---

_By submitting this pull request, I confirm that my contribution is made under the terms of the project's license._

    
<!-- This is an auto-generated description by cubic. -->
---

## Summary by cubic
Cleaned up JSON formatting for pluralization rules and added the "Open in new tab" label to support deployment.

<!-- End of auto-generated description by cubic. -->
cursor[bot]

This comment was marked as outdated.

# READ CAREFULLY THEN REMOVE

Remove bullet points that are not relevant.

PLEASE REFRAIN FROM USING AI TO WRITE YOUR CODE AND PR DESCRIPTION. IF YOU DO USE AI TO WRITE YOUR CODE PLEASE PROVIDE A DESCRIPTION AND REVIEW IT CAREFULLY. MAKE SURE YOU UNDERSTAND THE CODE YOU ARE SUBMITTING USING AI.

- Pull requests that do not follow these guidelines will be closed without review or comment.
- If you use AI to write your PR description your pr will be close without review or comment.
- If you are unsure about anything, feel free to ask for clarification.

## Description

Please provide a clear description of your changes.

---

## Type of Change

Please delete options that are not relevant.

- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature with breaking changes)
- [ ] 📝 Documentation update
- [ ] 🎨 UI/UX improvement
- [ ] 🔒 Security enhancement
- [ ] ⚡ Performance improvement

## Areas Affected

Please check all that apply:

- [ ] Email Integration (Gmail, IMAP, etc.)
- [ ] User Interface/Experience
- [ ] Authentication/Authorization
- [ ] Data Storage/Management
- [ ] API Endpoints
- [ ] Documentation
- [ ] Testing Infrastructure
- [ ] Development Workflow
- [ ] Deployment/Infrastructure

## Testing Done

Describe the tests you've done:

- [ ] Unit tests added/updated
- [ ] Integration tests added/updated
- [ ] Manual testing performed
- [ ] Cross-browser testing (if UI changes)
- [ ] Mobile responsiveness verified (if UI changes)

## Security Considerations

For changes involving data or authentication:

- [ ] No sensitive data is exposed
- [ ] Authentication checks are in place
- [ ] Input validation is implemented
- [ ] Rate limiting is considered (if applicable)

## Checklist

- [ ] I have read the [CONTRIBUTING](https://github.com/Mail-0/Zero/blob/staging/.github/CONTRIBUTING.md) document
- [ ] My code follows the project's style guidelines
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in complex areas
- [ ] I have updated the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix/feature works
- [ ] All tests pass locally
- [ ] Any dependent changes are merged and published

## Additional Notes

Add any other context about the pull request here.

## Screenshots/Recordings

Add screenshots or recordings here if applicable.

---

_By submitting this pull request, I confirm that my contribution is made under the terms of the project's license._

    
<!-- This is an auto-generated description by cubic. -->
---

## Summary by cubic
Disabled the thread sync loop and reduced the max thread sync count from 40 to 20 in the staging environment to limit background processing.

<!-- End of auto-generated description by cubic. -->
cursor[bot]

This comment was marked as outdated.

Hey team,

[**Lingo.dev**](https://lingo.dev) here with fresh translations!

### In this update

- Added missing translations
- Performed brand voice, context and glossary checks
- Enhanced translations using Lingo.dev Localization Engine

### Next Steps

- [ ] Review the changes
- [ ] Merge when ready
    
<!-- This is an auto-generated description by cubic. -->
---

## Summary by cubic
Updated translations for 20 languages in the mail app, adding missing entries and improving pluralization handling for attachment, file, note, and reply counts. This makes the translation files more consistent and easier to maintain.

<!-- End of auto-generated description by cubic. -->
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Incorrect Tool Processing in Orchestrator

The ToolOrchestrator.processTools method is incorrectly called with an empty object ({}) instead of the rawTools object. This bypasses the orchestrator's processing logic, which is essential for tools requiring special handling (e.g., streaming tools like WebSearch), even though the unprocessed rawTools are subsequently passed to streamText.

apps/server/src/routes/chat.ts#L394-L401

}
const orchestrator = new ToolOrchestrator(dataStream, connectionId);
// const mcpTools = await this.mcp.unstable_getAITools();
const rawTools = {
...(await authTools(this, connectionId)),
};
const tools = orchestrator.processTools({});

Fix in CursorFix in Web


Bug: UI Data Stale After `refreshData` Refactor

The refreshData function was refactored to only refetch global mail counts and labels, removing its previous capability to refresh specific threads or folder lists. This results in stale UI data, as optimistic updates for threads or folders are no longer reconciled with the server state after an action completes.

apps/mail/hooks/use-optimistic-actions.ts#L54-L60

const refreshData = useCallback(async () => {
return await Promise.all([
queryClient.refetchQueries({ queryKey: trpc.mail.count.queryKey() }),
queryClient.refetchQueries({ queryKey: trpc.labels.list.queryKey() }),
]);
}, [queryClient]);

Fix in CursorFix in Web


Was this report helpful? Give feedback by reacting with 👍 or 👎

@MrgSub
Copy link
Collaborator

MrgSub commented Jul 16, 2025

/deploy

@github-actions github-actions bot merged commit d9db7a4 into main Jul 16, 2025
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

production-deploy This PR is meant to update production

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants