🔖(minor) release version 0.3.0#562
Conversation
📝 WalkthroughWalkthroughRelease prep: bumped package versions to 0.3.0, removed two i18n pre-generation steps from the Crowdin download workflow, updated CHANGELOG for 0.3.0, and applied multiple locale additions/removals across Dutch, Russian, and Ukrainian files. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
9ec632c to
5ac310f
Compare
We recently remove backend translation but this script still tries to create a empty django.pot in an folder that does not existe anymore and compile .mo files
5ac310f to
c752c6a
Compare
Update translated files with new translations
Added - Add configurable help center button in header #537 - Add outbound message recipients throttling #506 - Add webhook and logging for selfchecks, replacing pushgateway #550 - Add mailbox export in mbox format with labels #553 - Add PST import support and streaming for mbox #544 - Add denylist for personal mailbox prefixes #540 - Add multi-column layout block for signature editor #551 - Add celery task events for worker monitoring #549 - Add image block in template, signature and message composers - Add storage usage metrics API endpoint #538 - Add conditional outbox folder - Add stronger DNS checks with configurable records #522 - Add print button in messages context menu #518 - Add autofocus option to message, template and signature composers - Add arm64 platform support for Docker image builds #554 Changed - Replace queue-based save/send orchestration with async promise ref - Use display_name for labels and auto-unfold active parents #547 - Optimize MessageTemplate serialization and body handling #545 - Defer HTML/text body export to send/save time - Add composer tools (text color, side menu and drag block handle) - Improve outbox wording #539 - Replace nginx with Caddy for frontend reverse proxy and Scalingo deployment #556 - Replace MinIO with RustFS for object storage in development #556 - Migrate Python packaging from Poetry to uv #556 - Standardize and rename Makefile targets #556 - Remove Django i18n and backend translation catalogs #556 Fixed - Delete orphan attachments when removed from draft #532 - Fix cursor position when clicking in combobox input #534 - Close left panel when clicking active folder on mobile - Close thread after send only if needed Security - Prevent IDOR on ThreadAccess thread and mailbox fields #557 - Add defense in-depth for XSS vulnerabilities #520
c752c6a to
eb58da7
Compare
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@CHANGELOG.md`:
- Line 33: Update the changelog sentence that currently reads "Update the Drive
third party api logic..." by replacing the phrase "third party api" with the
correctly hyphenated and capitalized "third-party API" so the entry becomes
"Update the Drive third-party API logic..." (locate the exact string "Update the
Drive third party api logic" in CHANGELOG.md and make the substitution).
- Line 44: Update the changelog entry "Upgrade Python to 3.14 `#556`" to state
Python 3.13 instead (e.g., "Upgrade Python to 3.13 `#556`"), since project
components like src/mta-out, src/backend, and src/mta-in target requires-python
= ">=3.13,<4.0"; ensure the corrected text replaces the 3.14 mention exactly in
that entry.
In `@src/frontend/public/locales/common/ru-RU.json`:
- Around line 20-21: The pluralization keys "{{count}} messages imported_one"
and "{{count}} messages imported_other" currently have the same Russian string;
update the "_one" variant to use the nominative/accusative singular form:
replace the value for "{{count}} messages imported_one" with "Импортировано
{{count}} сообщение" so singular (n=1) is correct while leaving "{{count}}
messages imported_other" as the genitive plural "Импортировано {{count}}
сообщений".
In `@src/frontend/public/locales/common/uk-UA.json`:
- Line 374: Update the Ukrainian translation for the key "Personal mailboxes
cannot be created when identity synchronization is disabled." to include the
missing qualifier for "identity" (e.g., use "синхронізації ідентичностей" or
"синхронізації ідентичності" / "синхронізації особистості") so it accurately
mirrors the English phrase; locate that exact key in
src/frontend/public/locales/common/uk-UA.json and replace the current value "Не
можна створювати особисті поштові скриньки, коли синхронізація відключена." with
a version that explicitly mentions identity synchronization.
- Around line 20-21: The two plural keys "{{count}} messages imported_one" and
"{{count}} messages imported_other" currently share the same Ukrainian string;
update the "_one" variant to the correct singular/genitive form so the
translations differ: change the value for "{{count}} messages imported_one" to
"Імпортовано {{count}} повідомлення" while keeping "{{count}} messages
imported_other" as "Імпортовано {{count}} повідомлень" to reflect Ukrainian
pluralization rules.
ℹ️ Review info
Configuration used: defaults
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (5)
src/backend/uv.lockis excluded by!**/*.locksrc/e2e/package-lock.jsonis excluded by!**/package-lock.jsonsrc/frontend/package-lock.jsonis excluded by!**/package-lock.jsonsrc/mta-in/uv.lockis excluded by!**/*.locksrc/mta-out/uv.lockis excluded by!**/*.lock
📒 Files selected for processing (10)
.github/workflows/crowdin_download.ymlCHANGELOG.mdsrc/backend/pyproject.tomlsrc/e2e/package.jsonsrc/frontend/package.jsonsrc/frontend/public/locales/common/nl-NL.jsonsrc/frontend/public/locales/common/ru-RU.jsonsrc/frontend/public/locales/common/uk-UA.jsonsrc/mta-in/pyproject.tomlsrc/mta-out/pyproject.toml
💤 Files with no reviewable changes (2)
- .github/workflows/crowdin_download.yml
- src/frontend/public/locales/common/nl-NL.json
🚧 Files skipped from review as they are similar to previous changes (4)
- src/backend/pyproject.toml
- src/e2e/package.json
- src/frontend/package.json
- src/mta-in/pyproject.toml
| ### Changed | ||
|
|
||
| - Bump keycloak to 26.5.3 #543 | ||
| - **❗ BREAKING**: Update the Drive third party api logic to comply with the new Drive logic. Messages now interops with [Drive >= 0.13.0](https://github.com/suitenumerique/drive/releases/tag/v0.13.0) |
There was a problem hiding this comment.
Hyphenate "third-party" as a compound modifier.
"third party api" → "third-party API" (both the hyphen and capitalisation of the acronym).
✏️ Proposed fix
-- **❗ BREAKING**: Update the Drive third party api logic to comply with the new Drive logic. Messages now interops with [Drive >= 0.13.0](...)
+- **❗ BREAKING**: Update the Drive third-party API logic to comply with the new Drive logic. Messages now interops with [Drive >= 0.13.0](...)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - **❗ BREAKING**: Update the Drive third party api logic to comply with the new Drive logic. Messages now interops with [Drive >= 0.13.0](https://github.com/suitenumerique/drive/releases/tag/v0.13.0) | |
| - **❗ BREAKING**: Update the Drive third-party API logic to comply with the new Drive logic. Messages now interops with [Drive >= 0.13.0](https://github.com/suitenumerique/drive/releases/tag/v0.13.0) |
🧰 Tools
🪛 LanguageTool
[grammar] ~33-~33: Use a hyphen to join words.
Context: ...- ❗ BREAKING: Update the Drive third party api logic to comply with the new D...
(QB_NEW_EN_HYPHEN)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CHANGELOG.md` at line 33, Update the changelog sentence that currently reads
"Update the Drive third party api logic..." by replacing the phrase "third party
api" with the correctly hyphenated and capitalized "third-party API" so the
entry becomes "Update the Drive third-party API logic..." (locate the exact
string "Update the Drive third party api logic" in CHANGELOG.md and make the
substitution).
| "{{count}} messages imported_one": "Импортировано {{count}} сообщений", | ||
| "{{count}} messages imported_other": "Импортировано {{count}} сообщений", |
There was a problem hiding this comment.
Same plural form issue as uk-UA: _one and _other are identical.
For Russian, n=1 requires the nominative/accusative singular "сообщение", not the genitive plural "сообщений".
✏️ Proposed fix
- "{{count}} messages imported_one": "Импортировано {{count}} сообщений",
+ "{{count}} messages imported_one": "Импортировано {{count}} сообщение",
"{{count}} messages imported_other": "Импортировано {{count}} сообщений",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "{{count}} messages imported_one": "Импортировано {{count}} сообщений", | |
| "{{count}} messages imported_other": "Импортировано {{count}} сообщений", | |
| "{{count}} messages imported_one": "Импортировано {{count}} сообщение", | |
| "{{count}} messages imported_other": "Импортировано {{count}} сообщений", |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@src/frontend/public/locales/common/ru-RU.json` around lines 20 - 21, The
pluralization keys "{{count}} messages imported_one" and "{{count}} messages
imported_other" currently have the same Russian string; update the "_one"
variant to use the nominative/accusative singular form: replace the value for
"{{count}} messages imported_one" with "Импортировано {{count}} сообщение" so
singular (n=1) is correct while leaving "{{count}} messages imported_other" as
the genitive plural "Импортировано {{count}} сообщений".
| "{{count}} messages imported_one": "Імпортовано {{count}} повідомлень", | ||
| "{{count}} messages imported_other": "Імпортовано {{count}} повідомлень", |
There was a problem hiding this comment.
Plural forms _one and _other have identical Ukrainian translations.
Ukrainian distinguishes at least two forms here: _one (count = 1) should use the genitive singular form ("повідомлення"), while _other keeps the genitive plural ("повідомлень"). Both currently use "повідомлень".
✏️ Proposed fix
- "{{count}} messages imported_one": "Імпортовано {{count}} повідомлень",
+ "{{count}} messages imported_one": "Імпортовано {{count}} повідомлення",
"{{count}} messages imported_other": "Імпортовано {{count}} повідомлень",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "{{count}} messages imported_one": "Імпортовано {{count}} повідомлень", | |
| "{{count}} messages imported_other": "Імпортовано {{count}} повідомлень", | |
| "{{count}} messages imported_one": "Імпортовано {{count}} повідомлення", | |
| "{{count}} messages imported_other": "Імпортовано {{count}} повідомлень", |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@src/frontend/public/locales/common/uk-UA.json` around lines 20 - 21, The two
plural keys "{{count}} messages imported_one" and "{{count}} messages
imported_other" currently share the same Ukrainian string; update the "_one"
variant to the correct singular/genitive form so the translations differ: change
the value for "{{count}} messages imported_one" to "Імпортовано {{count}}
повідомлення" while keeping "{{count}} messages imported_other" as "Імпортовано
{{count}} повідомлень" to reflect Ukrainian pluralization rules.
| "Password reset successfully!": "Пароль успішно скинуто!", | ||
| "Personal mailbox": "Особиста скринька", | ||
| "Personal mailboxes cannot be created when identity synchronization is disabled.": "Особисті поштові скриньки не можуть бути створені, коли синхронізацію ідентифікації вимкнено.", | ||
| "Personal mailboxes cannot be created when identity synchronization is disabled.": "Не можна створювати особисті поштові скриньки, коли синхронізація відключена.", |
There was a problem hiding this comment.
Translation drops "identity" from "identity synchronization".
The English reads "identity synchronization is disabled" but the Ukrainian renders as "синхронізація відключена" (omitting "ідентичності" / "особистості"). Consider adding the qualifier for accuracy.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@src/frontend/public/locales/common/uk-UA.json` at line 374, Update the
Ukrainian translation for the key "Personal mailboxes cannot be created when
identity synchronization is disabled." to include the missing qualifier for
"identity" (e.g., use "синхронізації ідентичностей" or "синхронізації
ідентичності" / "синхронізації особистості") so it accurately mirrors the
English phrase; locate that exact key in
src/frontend/public/locales/common/uk-UA.json and replace the current value "Не
можна створювати особисті поштові скриньки, коли синхронізація відключена." with
a version that explicitly mentions identity synchronization.
Upgrade to 0.3.0
Added
Changed
Fixed
Security
Summary by CodeRabbit
New Features
Bug Fixes & Security
Chores