* use observation in unit and preview tests instead of the async stream
* use a parsing approach that is independent of the sourcery annotation
* Fix observation deferred fulfillments not receiving the initial value
Observation's observe only emits transitions, not the value present at subscription time. Drop the leading initial value from the affected transitionValues sequences and assert it directly with #expect instead.
* improved docs
* replace NavigationStack with ElementNavigationStack to allow the content to be rendered without a NavigationStack in a11y tests
* fix a11y tests
* update xcodeproject
* swiftformat fix
* use iOS 26.1 for CI
* use a wrapper to solve the issue for a11y tests
* ElementNavigationStack only uses the trick in DEBUG mode, and added a swiftlint rule to prevent the usage of NavigationStack
* Remove `eraseToStream` now that `any AsyncSequence` is available to us.
* Remove the now unnecessary backport of Mutex.
* Silence a couple more deprecation warnings.
* Move the AuthenticationStartScreen into the Authentication directory.
* Commit the updated Sentry license.
No idea why they dropped the 2024 🤷♂️
* Use StateStoreViewModelV2 in BugReportScreen.
* Use StateStoreViewModelV2 in UserDetailsEditScreen.
* Use StateStoreViewModelV2 in NotificationSettingsScreen.
* Use StateStoreViewModelV2 in NotificationSettingsEditScreen.
* Use StateStoreViewModelV2 in LegalInformationScreen.
* Use StateStoreViewModelV2 in LogViewerScreen.
* Use StateStoreViewModelV2 in AnalyticsSettingsScreen.
* Rename AdvancedSettingsScreen directory.
* Use StateStoreViewModelV2 in EncryptionResetScreen.
* Use StateStoreViewModelV2 in EncryptionResetPasswordScreen.
* Use StateStoreViewModelV2 in SecureBackup…Screens.
* Use StateStoreViewModelV2 in LoginScreen.
Seems this one was ignored waiting on the fulfillment transitionValues implementation.
* Use StateStoreViewModelV2 in DeactivateAccountScreen.
* Move DeactivateAccountScreen into the Settings directory.
* Retrofit `deferFulfillment` onto snapshot tests.
* Convert a bunch of preview tests to the new fulfillment publisher
* Convert more tests
* Remove unneeded delays from the remaining tests
* Remove snapshotting delay option.
* Manage the secure backup screens with flow coordinators.
* Add UI tests for the EncryptionSettingsFlowCoordinator.
* Realise that the settings flow can't reset anymore and remove the sub-flow 🤦♂️
* Add UI tests for the EncryptionResetFlowCoordinator.
* Refactor RoundedLabelItem into the Compound VisualListItem component.
* Update the design of SecureBackupKeyBackupScreen.
* Add a hint to the key storage toggle when disabled.
* Replace Prefire with a very similar but simpler and more direct approach
* Move PreviewTest snapshots to their new location (snapshotting default, mirrors UITests)
* Update acknowledgements
* Switch snapshot configuration extensions to a custom version
* Exclude snapshots from the PreviewTests target
* Fix acknowledgements
* Rename snapshotting preference keys
* Remove `skipPackagePluginValidation`
* Show recovery instead of verification if this is the last session and recovery is set up
* Rename `recoveryKeyState` to `recoveryState`
* Remove duplicates on session security state changes.
* Fix missing "Save recovery key" button
* Fix unit tests
* Rename `isLastDevice` to `isOnlyDeviceLeft`
* Address PR comments
* Make sure the indicator for disabling backups is dismissed together with the screen
* Get rid of the .disabled key backup state as it has no correspondant on the rust side and is confusing
* Remove superflous BackupState extensions, add more logs
* Show the recovery section if key backup is anything **but** disabled
* Don't show an action on secure backup if its current state is unknown
* Do not show a badge on the home screen avatar while the recovery state is unknown
* Do not assume key backup is disabled when its state is unknown. If the state is unknown, check if a backup exists remotely.
* Dedupe remote backup state requests and handle task cancellations
* Use Compound List in room member details, secure backup, notification settings.
* Use ListRow in CreateRoomScreen.
* Fix ListRow layout when isWaiting && !isSelected.
* Adopt Rust side secure backup APIs (incomplete, based on poljar/backup-pr)
* Implement the home screen recovery key confirmation banner.
* Update with the latest Rust changes.
The loading button for .unknown was incorrect. It should be treated as disabled.
---------
Co-authored-by: Doug <douglase@element.io>