Commit Graph

6729 Commits

Author SHA1 Message Date
Todd Martin
5cd2c19f55
chore(tech-debt): [PM-33963] Remove legacy Duo Web SDK v2 from desktop
* Remove legacy Duo Web SDK v2

* Removed #duo-frame references.
2026-04-03 17:04:06 -04:00
Bryan Cunningham
5d530adc2a
remove base directive import (#19978)
* remove base directive import

* remove unused icon button import
2026-04-03 16:36:37 -04:00
Jordan Aasen
2aff7f7640
[PM-33426 ] - add popup focus wrap directive (#19666)
* add popup focus wrap directive

* fix comment
2026-04-03 12:39:13 -07:00
rr-bw
4a196a533b
fix(sso-callback-server-host) [Auth/PM-32604] Specify argument in listen method (#19766)
Specifies localhost in the `callbackServer.listen()` method in `LoginCommand` (CLI) and `SSOLocalhostCallbackService` (Desktop)
2026-04-03 10:56:08 -07:00
Leslie Tilton
4c3cf00a5a
[PM-33928] Fix: Can view MyItems Passwords in Org Vault Health Reports (#19874)
* fix(bug): Admin/Owner viewing and editing ciphers from within health reports

* Change check for unassigned ciphers to include default collection check

* Remove unnecessary typecasting
2026-04-03 12:45:48 -05:00
Vicki League
3751227752
[CL-958] Update avatar component to new styles (#18975) 2026-04-03 10:24:46 -04:00
bw-ghapp[bot]
d9e4271a78
Autosync the updated translations (#19958)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-04-03 12:03:59 +02:00
Bernd Schoolmann
97329383a1
[PM-33173] Use unlock service for password login strategy (#19371)
Some checks failed
Scan / Check PR run (push) Has been cancelled
Testing / Run typechecking (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-browser junit:junit-browser.xml name:Browser paths:apps/browser bitwarden_license/bit-browser]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-cli junit:junit-cli.xml name:CLI paths:apps/cli bitwarden_license/bit-cli]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-desktop junit:junit-desktop.xml name:Desktop paths:apps/desktop]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-libs junit:junit-libs.xml name:Libs paths:libs bitwarden_license/bit-common]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-web junit:junit-web.xml name:Web paths:apps/web bitwarden_license/bit-web]) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (macos-14) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-22.04) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (windows-2022) (push) Has been cancelled
Testing / Rust Coverage (push) Has been cancelled
Scan / Checkmarx (push) Has been cancelled
Scan / Sonar (push) Has been cancelled
Testing / Upload to Codecov (push) Has been cancelled
Testing / Run tests (push) Has been cancelled
* Use unlock service for login

* Fix build

* Apply feedback to move more logic behind feature flag, and use newer unlock service

* Fix types

* Fix type

* Fix test

* Fix dependencies on cli

* Cleanup

* Fix types

* Fix imports

* Fix eslint

* Prettier

* Address feedback

* Eslint

* Move unlockServiceForPasswordLogin to passwordloginstrategydata

* Eslint
2026-04-03 12:42:17 +09:00
Todd Martin
8a260537e4
fix(secure-storage): [PM-33582] Remove obsolete secure storage code
* Remove obsolete JSON value parsing.

* Remove obsolete method.
2026-04-02 19:41:28 -04:00
blackwood
6380248ce9
Share inline menu qualification service implementation of keyword matching with autofill service (#19263) 2026-04-02 14:56:59 -04:00
Leslie Xiong
5010c47864
fixed avatar color syncing between client apps (#19943) 2026-04-02 14:24:30 -04:00
Github Actions
dd2c8765d6 Bumped Desktop client to 2026.4.0 2026-04-02 16:05:27 +00:00
Daniel Riera
1f3b479d47
[PM-22406]Setting Bitwarden to default browser fails after accepting permission prompt (#19813)
* preserve make default toggle when permission modal closes popup

* wire runtime
2026-04-02 09:48:30 -05:00
bmbitwarden
d91328cf89
PM-33577 added email validation (#19707) 2026-04-01 21:21:14 -04:00
bmbitwarden
73c79c4178
PM-30340 implemented upgrade button on desktop navbar (#19708) 2026-04-01 21:19:01 -04:00
Vicki League
f8cd437503
[CL-1105] Ensure hover and focus states match spec (#19638) 2026-04-01 14:39:55 -04:00
Conner Turnbull
a5db8ef2d8
Remove pm-23341-milestone-2 flagged logic from user-subscription component (#19867)
Remove the enableDiscountDisplay$ feature flag observable and collapse the
ngIf/else template to always show the discount badge. The badge handles
null/no-discount gracefully.
2026-04-01 12:58:56 -05:00
BitToby
e96a0c5309
[PM-32584] fix: warn user about unsaved changes before applying desktop update (#19147)
* fix: warn user about unsaved changes before applying desktop update

* fix: update dialog

* fix: update restart to properly clean up IPC listeners on timeout and warn about unsaved Send forms

* revert: Revert AddEditComponent changes

* fix: solve type error

* fix: warn user about unsaved chagnes

* fix: use FormGroupDirective in DirtyFormService to detect dirty forms after form reassignment

---------

Co-authored-by: bittoby <bittoby@users.noreply.github.com>
2026-04-01 15:33:26 +02:00
Bernd Schoolmann
7a624abcbd
[no ticket] Improve matching of dev extension (#19880)
* Improve matching of dev extension

* Eslint

* Prettier
2026-04-01 07:15:39 +09:00
Alex
b85e096b49
[PM-33067] Fix false success toast when mark/unmark critical apps API fails (#19344)
* fix(dirt): check response.error before showing success toast for critical apps

The orchestrator's catchError converts API failures into next emissions
with response.error set. The component's next handler was unconditionally
showing a success toast without checking this field.

Now checks response.error and shows an error toast when the API call
failed. Selection is preserved on error so users can retry.

Also ensures updatingCriticalApps signal is reset on all paths (success,
caught error, and uncaught error).

[PM-33067]

* test(dirt): add tests for mark/unmark critical apps error handling

Tests verify that:
- Success toast shown when response.error is null
- Error toast shown when response.error is non-null
- Selection preserved on error, cleared on success

[PM-33067]

* fix(dirt): use specific error toast for unmark critical apps failure

Replace generic "An unexpected error has occurred" with
"Failed to unmark applications as critical" for consistency
with the mark-as-critical error toast.

* fix(dirt): check response.error in Review New Applications mark critical

The AllApplicationsComponent (Review New Applications widget) had the
same false success toast bug as the All Applications tab. The next
handler ignored the response parameter entirely, showing a success
toast even when response.error was set by the orchestrator's catchError.

Now checks response.error before showing toast. On error: shows
"Failed to mark applications as critical" and preserves selection.
Also resets markingAsCritical on all paths.

Adds unit tests for mark success and error paths.

[PM-33067]

* Revert "fix(dirt): check response.error in Review New Applications mark critical"

This reverts commit b646598613.

* fix(dirt): check response.error in application review dialog before showing success toast

The saveApplicationReviewStatus$ orchestrator method uses catchError
to convert API failures into next emissions with response.error set.
The dialog used firstValueFrom inside try/catch, but since catchError
prevents the Observable from erroring, firstValueFrom resolves
successfully and the catch block never fires.

Now checks response.error on the resolved value before showing the
success toast. On error: shows "Error saving review status" and
stays on the dialog so the user can retry.

[PM-33067]
2026-03-31 14:53:36 -07:00
neuronull
4d7ed035e6
Bump Rust version to 1.94.1 (#19888) 2026-03-31 15:01:08 -06:00
John Harrington
3f39b88b4c
[PM-31885] Consolidate all Send policies to a single policy (#19314) 2026-03-31 13:57:01 -07:00
Jordan Aasen
6ee1f7eba5
[PM-32085] - popup width migration (#19408)
* add popup width migration

* fix width names

* add type guard for popupWidthOption
2026-03-31 12:45:09 -07:00
Daniel James Smith
e014042087
[PM-33167] Replace img with TwoFactorIcon component (#19865)
* Replace usage of two factor images with TwoFactorIcon component

* Delete web scss and now unused two-factor images

* Remove mfaType from eslint whitelist

* Delete unused mfaType scss entries on browser and desktop

* Fix linting issue

* Remove icons from two factor setup dialogs

* Delete unused images on browser and desktop

* Remove mfaLogoSuffix

* Remove paragraph

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2026-03-31 20:22:55 +02:00
Jackson Engstrom
6980030a36
adds check for login cipher type in the more options autofill (#19712) 2026-03-30 15:06:05 -07:00
Jared Snider
011c750b9b
Auth/PM-33261 - Desktop - Change password dialog location fix (#19875)
* PM-33261 - Desktop Change Password Dialog - put into correct auth owned folder

* PM-33261 - Fix import
2026-03-30 17:41:33 -04:00
rr-bw
6a858b64f8
fix(multi-client-change-password): [Auth/PM-34199] [Extension] Change Password Routing Fix (#19794)
Makes a distinct `"settings-change-password"` route on Extension - to be used when the user initiates changing their password by navigating to Settings > Account Recovery. This route uses the `ChangePasswordPageComponent` (unlike the "change-password" route, which uses the `ExtensionAnonLayoutWrapperComponent`).

Feature flag: `pm-32413-multi-client-password-management`
2026-03-30 11:00:18 -07:00
Brandon Treston
303f242034
[PM-32096] Collection name style fix (#19809)
* fix style

* add cursor
2026-03-30 13:10:21 -04:00
Leslie Xiong
9b859bbdaf
[CL-1136] Updated disabled org trailing icon color (#19755)
* updated disabled org trailing icon color

* added `aria-label` and `appA11yTitle` back in to icon

* updated `attr.aria-label` to `ariaLabel`
2026-03-30 12:45:57 -04:00
Daniel García
4d62a123cc
[PM-14166] Add brave and vivaldi to NMHs (#16705)
* [PM-14166] Add brave and vivaldi to NMHs

* Revert mac brave

* Update apps/desktop/src/main/native-messaging.main.ts

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-03-30 18:34:27 +02:00
Daniel Riera
4363c538e3
[PM-31331] Incorrect data shown in notification bar after consecutive logins with new ciphers (#19711)
* re init notification bar in overlay

* overlay tests

* update notification background to verify the tabs current url matches the domain which the notification was queued for, improve guard in cipher queue message

* use example sites in testing
2026-03-30 11:23:47 -05:00
Nick Krantz
30ab005da5
[PM-19168] Remove Archive Feature Flag (#19829)
* remove archive feature flag

* fix dependency within services module
2026-03-30 10:23:38 -05:00
Jared
6cdbd80057
[PM-33372] hide prompt if org does not use my items (#19475)
* Enhance policy management by adding organization input to policy edit components and dialogs. Update edit method to include organization context, enabling feature entitlements based on organization settings. Adjust templates to conditionally render options based on organization properties.

* Refactor PolicyEditDialogComponent to change access modifiers for properties. Update policyType and saveDisabled$ to protected and instance variables respectively, enhancing encapsulation and consistency in the component's structure.

* Refactor PolicyEditDialogComponent to change property access modifiers from readonly to instance variables for loading, saveDisabled$, and policyComponent, improving flexibility in component state management.

* Refactor PoliciesComponent tests to use property accessors and improve type definitions

- Updated mockPolicyResponse and mockPolicyResponsesData to include explicit type definitions.
- Changed direct property access to bracket notation for organizationId$, organization$, policies$, and policiesEnabledMap$ observables.
- Enhanced edit method calls to include organization parameter in tests.
- Added new tests for conditional behavior based on organization.useMyItems in vNextOrganizationDataOwnershipPolicyComponent.
- Implemented logic to enable/disable controls based on policy and organization state.

* Refactor PolicyEditDialogComponent to use Angular signals for state management

- Updated loading state and saveDisabled properties to use signals instead of traditional variables.
- Modified template bindings to reflect changes in loading state and save button disable logic.
- Enhanced component initialization to ensure proper handling of policy component and its state.
- Improved observables management with takeUntilDestroyed for better resource cleanup.

* Refactor Policy Edit Dialogs to use Angular signals for loading state management

- Updated loading state bindings in HTML templates to call loading() as a function.
- Refactored TypeScript components to utilize typed accessors for policy components.
- Enhanced observables for save button disable logic to ensure proper state handling.
- Improved error handling and initialization checks for policy components.

* Fix test setup for AutoConfirmPolicyDialogComponent by updating policyComponent initialization to use bracket notation for better type handling.

* Refactor policy components to remove organization ID references and utilize organization objects directly. Update related dialog components and tests to ensure consistency with the new structure. This change enhances clarity and reduces redundancy in policy management.

* Refactor policy components to improve organization handling. Update policies component to directly use organization objects instead of IDs. Adjust related components and services for consistency, enhancing clarity in policy management.

* Refactor PoliciesComponent tests to eliminate organization ID references and directly use organization objects. Update related test cases for consistency and clarity in policy management.

* Refactor policy dialog components to enhance type safety by checking component instances instead of using type assertions. This change improves code clarity and maintainability.

* Enhance unit tests for policy dialog and vault services by improving mock implementations and ensuring accurate date calculations. Update organization references to use object structures for better clarity and maintainability in policy management.

* fix(tests): Update date calculation in WebVaultExtensionPromptService tests for clarity
2026-03-30 10:35:32 -04:00
Jared McCannon
2c011fcf69
[PM-30614] - Fix double event log in browser ext popup (#19657)
* Moved the task scheduler registration to the init method to ensure we're not re-registering it. Also made a no-op upload service for when the extension is popped out so we don't push events from both threads.
2026-03-30 09:33:54 -05:00
Brandon Treston
ee08880372
[PM-30190] Add validator for revoked emails when inviting users (#19815)
* add validator for revoked emails when inviting users

* remove unneeded emails propertly
2026-03-30 10:13:44 -04:00
Vicki League
66c203ea3d
[CL-1049] Make fallback autofocus approach for dialogs (#19561)
Co-authored-by: Will Martin <contact@willmartian.com>
2026-03-27 16:02:17 -04:00
Leslie Xiong
e563c2d185
fixed desktop nav group anchor link color and cipher name styles (#19820) 2026-03-27 13:51:09 -04:00
Todd Martin
8896dc738a
fix(nx): [PM-33529] Update web nx serve configuration names to match CLI and docs 2026-03-27 13:05:10 -04:00
Jordan Aasen
526202add7
add missing i18n key (#19743) 2026-03-27 16:01:39 +01:00
Ben Brooks
190997c4a4
[PM-33459] fix(autofill): exclude username-only scenario from new cipher save notification (#19733)
* [pm-33459] fix: exclude username-only input from new cipher notification trigger in triggerCipherNotification

Signed-off-by: Ben Brooks <bbrooks@bitwarden.com>
2026-03-27 07:38:48 -07:00
neuronull
50cf5bde99
SSH Agent v2: add v1 deprecation note (#19780) 2026-03-27 07:30:40 -06:00
bw-ghapp[bot]
448848dd6b
Autosync the updated translations (#19799)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-03-27 12:01:22 +01:00
bw-ghapp[bot]
7509df68d9
Autosync the updated translations (#19800)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-03-27 11:58:00 +01:00
bw-ghapp[bot]
a91129852f
Autosync the updated translations (#19801)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-03-27 11:32:25 +01:00
Oscar Hinton
e6e821395b
[CL-1137] Remove unecessary side-nav component (#19782) 2026-03-26 18:15:41 -04:00
Nick Krantz
ad7864084f
[PM-24476] At Risk Password setting (#19557)
* add setting to toggle the visibility of at-risk password settings

* add comments surrounding why/when notification setting is applicable
2026-03-26 08:58:43 -07:00
Jared
a517b121cb
[PM-31426] add categories to policy page (#19151) 2026-03-26 10:51:49 -04:00
aj-bw
2e6cbf4be1
[bre-1650] update electron-builder and update MacOS installer UI background (#19558)
* add updated background and background2x images, remove old image

* update build instructions with background file location

* test bumping electron-builder version to resolve bug

* drop electron-builder version to earliest with the background fix, newer version had breakage

* attempt to resolve build errors due to dep changes including prebuild files to be bundled with other platform types

* fix macos universal build conflicts due electron builder bump

* simplify approach, push to ci for further testing after local tests hit some arch friction

* pulling in @abergs change from PR#18474 to fix the same issue

* add identifier name, add desktop_napi version to see if that resolve it not being found during ci build

* address changes in getTreeFromWorkspaces in electron-builder

* bump electron-builder version further up to resolve dep getTreeFromWorkspaces resolution issue

* update pack script to work around bug during intermediate signing process for mac MAS app

* updated background resources, arrow moved up slightly. assets provided by design team

* electron-builder 26.8.2's collector only bundles modules found in _dependencies (from npm list). Workspace members must be explicitly declared as dependencies to appear there — the workspaces array alone is not sufficient. Without this, desktop-napi is silently missing from the asar on all platforms.

* filter by platform and arch

* update before pack script

* revert before-pack change, update x64 arch files in EB json

* fix linting fail due to missing dep, fix matching logic
2026-03-26 08:59:46 -04:00
Brandon Treston
473929f0d8
remove feature flagged logic (#19718) 2026-03-25 14:09:55 -04:00
Will Martin
c7544e40c2
[CL-980] update icon tile (#19063)
* created tests, matched tw classes to Figma vals

* removed class/css/overkill based unit tests

* updated <bit-icon-tile instance

* remove shape, updated docs & test, fix build err

* corrections to documentation and type issue

* updated large->lg on IconTile usage

Co-authored-by: Isaac Ivins <iivins@livefront.com>
2026-03-25 13:20:24 -04:00