Skip to content

Conversation

@bmbitwarden
Copy link

@bmbitwarden bmbitwarden commented Nov 11, 2025

Relates to: PM-27628

🎟️ Tracking

https://bitwarden.atlassian.net/browse/PM-27628
https://bitwarden.atlassian.net/browse/PM-7853

πŸ“” Objective

Rename Remove individual vault export policy to Remove export

⏰ Reminders before review

  • Contributor guidelines followed
  • All formatters and local linters executed and passed
  • Written new unit and / or integration tests where applicable
  • Protected functional changes with optionality (feature flags)
  • Used internationalization (i18n) for all UI strings
  • CI builds passed
  • Communicated to DevOps any deployment requirements
  • Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team

@bmbitwarden bmbitwarden requested a review from a team as a code owner November 11, 2025 18:42
@bmbitwarden bmbitwarden requested a review from vleague2 November 11, 2025 18:42
@github-actions
Copy link
Contributor

github-actions bot commented Nov 11, 2025

Logo
Checkmarx One – Scan Summary & Details – f3de6b40-b86c-4ca7-9b17-26005365f1b8

Great job! No new security vulnerabilities introduced in this pull request

willmartian
willmartian previously approved these changes Nov 11, 2025
Copy link
Contributor

@willmartian willmartian left a comment

Choose a reason for hiding this comment

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

Perhaps a PolicyService.policyAppliesToActiveUser$ helper method would be an appropriate addition given how often we combine it with AccountService.activeAccount$

@willmartian willmartian requested a review from a team November 11, 2025 19:33
@willmartian
Copy link
Contributor

Oh, welcome to Bitwarden! Happy first PR in clients. πŸŽ‰

@claude
Copy link

claude bot commented Nov 11, 2025

Claude finished @bmbitwarden's task β€”β€” View job


Code Review

I've analyzed the PR and djsmith85's concern is partially valid. The situation requires clarification:


Summary

The PR changes both the i18n key (disablePersonalVaultExport β†’ disableExport) and the message ("Remove individual vault export" β†’ "Remove export"). This creates a critical incomplete migration issue.


Findings

❌ Finding 1: Incomplete i18n key migration will break translations

The change renames the key in en/messages.json, but this key exists in 68 translation files (one per locale). All 67 non-English translations still use the old key name, which means:

  • Non-English users will see outdated text or missing translations
  • The app's i18n system won't find the new disableExport key in other locales

Current state:

  • English (en/messages.json): Uses new key disableExport βœ“
  • 67 other locales: Still use old key disablePersonalVaultExport βœ—
Affected locale files (67 total)

All locale files under apps/web/src/locales/*/messages.json except en/messages.json contain the old disablePersonalVaultExport key and need updating.


⚠️ Finding 2: Message content changed, so key change is justified

djsmith85 stated "if the message is not changed, then please don't replace the key." However, the message was changed:

  • Before: "Remove individual vault export"
  • After: "Remove export"

This is a semantic change that removes "individual vault", making it shorter and potentially broader in meaning. This justifies creating a new key to signal translators that retranslation is needed.

Clarification needed: Is the key change intentional given the message change, or should we keep the old key?


Recommendations

Option 1: Complete the key migration (if rename is intentional)

  1. Rename disablePersonalVaultExport β†’ disableExport in all 67 remaining locale files
  2. Keep existing translated messages unchanged (translators will update them later when they see the new English text)
  3. This prevents breaking non-English locales immediately

Option 2: Revert key change (if broader impact isn't desired)

  1. Keep key as disablePersonalVaultExport
  2. Only update the English message to "Remove export"
  3. Simpler change with less risk of breaking translations

Given this PR's scope ("Rename Remove individual vault export policy"), Option 1 better aligns with the intent but requires updating 67 additional files.


Review Complete

Summary: The key change is justified by the message change, but the implementation is incomplete. 67 locale files need the same key rename to prevent breaking non-English translations.

@codecov
Copy link

codecov bot commented Nov 11, 2025

Codecov Report

❌ Patch coverage is 0% with 1 line in your changes missing coverage. Please review.
βœ… Project coverage is 41.25%. Comparing base (e23b2d0) to head (51ef141).
βœ… All tests successful. No failed tests found.

Files with missing lines Patch % Lines
...nitions/disable-personal-vault-export.component.ts 0.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main   #17335   +/-   ##
=======================================
  Coverage   41.25%   41.25%           
=======================================
  Files        3546     3546           
  Lines      102040   102040           
  Branches    15308    15308           
=======================================
+ Hits        42095    42099    +4     
+ Misses      58180    58177    -3     
+ Partials     1765     1764    -1     

β˜” View full report in Codecov by Sentry.
πŸ“’ Have feedback on the report? Share it here.

πŸš€ New features to boost your workflow:
  • πŸ“¦ JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

harr1424
harr1424 previously approved these changes Nov 11, 2025
Copy link
Member

@Hinton Hinton left a comment

Choose a reason for hiding this comment

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

Putting a hold on this until the discussion in jira are resolved. Browser and desktop should probably also be updated since the jira ticket contains figma designs of the browser extension.

@bmbitwarden bmbitwarden added the needs-qa Marks a PR as requiring QA approval label Nov 13, 2025
Copy link
Member

@Hinton Hinton left a comment

Choose a reason for hiding this comment

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

Can you please update the PR title and description to reflect the new scope.

@bmbitwarden bmbitwarden changed the title PM-27628 conditions for send and export links in left navbar PM-27628 Rename Remove individual vault export policy Nov 20, 2025
@bmbitwarden bmbitwarden requested a review from a team as a code owner November 20, 2025 14:40
@bmbitwarden bmbitwarden requested a review from BTreston November 20, 2025 14:40
Hinton
Hinton previously approved these changes Nov 20, 2025
Copy link
Member

@Hinton Hinton left a comment

Choose a reason for hiding this comment

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

  • I18n keys changed βœ…
  • All usages updated βœ…

@Hinton Hinton removed the request for review from vleague2 November 20, 2025 14:59
},
"disablePersonalVaultExport": {
"message": "Remove individual vault export"
"disableExport": {
Copy link

Choose a reason for hiding this comment

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

❌ Finding 1: Key renamed but 67 other locale files not updated

Renaming this key from disablePersonalVaultExport to disableExport will break translations in all non-English locales. The old key still exists in 67 other messages.json files:

apps/web/src/locales/ar/messages.json
apps/web/src/locales/de/messages.json
apps/web/src/locales/es/messages.json
... (64 more files)

Options:

  1. Update all 68 locale files - Rename the key in every messages.json file (keep existing translations)
  2. Revert key change - Keep disablePersonalVaultExport as the key, only update the English message

Since the message content changed ("Remove individual vault export" β†’ "Remove export"), Option 1 is more appropriate as it signals to translators that retranslation is needed.

@Hinton Hinton requested a review from djsmith85 November 21, 2025 11:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-qa Marks a PR as requiring QA approval

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants