Commit Graph

1382 Commits

Author SHA1 Message Date
Element CI fd5b3813d4 Prepare next release 2026-07-15 06:36:17 -07:00
Doug a2ba9c4999 Update the SDK. (#5889) 2026-07-15 14:19:50 +01:00
Element CI 8bc676e2d0 Run XcodeGen, update Package.resolved and Settings.bundle 2026-07-15 14:07:27 +02:00
Element CI 6e3a6b986a Run XcodeGen, update Package.resolved and Settings.bundle 2026-07-15 12:18:46 +02:00
Matthew Hodgson 1062e2c6dd Add CurrentValuePublisherTests to the UnitTests target (#5884)
Regenerating the project with XcodeGen picks it up.
2026-07-15 07:48:00 +00:00
Mauro 39bd882a27 Fix for flaky tests (#5869)
* possible logging tests fix

* fix for flaky tests

* use timelimit for max test time

* pr suggestions

* remove comment
2026-07-14 18:01:36 +02:00
Doug 85f28d017d Update the SDK and handle API breaks. (#5871)
* Update the SDK and handle API breaks.

* Rename sdkUserThing to rustUserThing for consistency.

* Add user status ClientProxy methods.

* Rename UserStatus.UserSet to UserStatus.Raw.
2026-07-14 16:35:37 +01:00
Doug 97990b2877 Update the SDK and Compound tokens. (#5857)
* Update Compound Design Tokens.

No changes, just makes some new ones available.

* Update the SDK.
2026-07-13 09:49:15 +01:00
Element CI 5743f263b6 Prepare next release 2026-07-09 10:01:57 -07:00
Mauro 6bd8423675 Media Preview content scanning (#5851)
* implemented checkSourceSafetyIfNeeded in the timeline media preview

* added a subtitle to the spinner when scanning and an animated drag gesture for the error and loading states

* pr suggestions

* pr suggestions part 2
2026-07-09 18:46:14 +02:00
Mauro ee89f8846f Fix for the media browser showing also images and videos in file mode (#5853)
* fix for the bug that makes the images appear in the file list of the media browser

* pr suggestions
2026-07-09 15:51:46 +02:00
Doug 5915713a02 Introduce a build setting to detect Nightly builds. (#5852)
* Allow the AppIconBanner tool to be called with purely the build number.

And use that for the Element Pro Nightly.

* Use a build setting to determine Nightly builds.
2026-07-09 13:56:26 +01:00
Mauro 5fd4551099 Scanning states for the media events timeline screen (#5847)
* implemented the scanning states for the media events timeline screen

* add mock urls to the URL.mock...
2026-07-08 11:51:56 +02:00
Matthew Hodgson 834938f585 don't keep re-prompting the user to migrate if they get spontaneously logged out. (#5844) 2026-07-07 15:28:40 +02:00
renovate[bot] 1e451ac3e3 Update Project Dependencies (#5818)
* Update Project Dependencies

* Run XcodeGen, update Package.resolved and Settings.bundle

# Conflicts:
#	ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

* Run XcodeGen, update Package.resolved and Settings.bundle

* updated package

* Run XcodeGen, update Package.resolved and Settings.bundle

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Element CI <ci@element.io>
Co-authored-by: Mauro Romito <mauro.romito@element.io>
2026-07-06 18:01:05 +02:00
Mauro a2c1ca06dd Content Scanning View (#5831)
* implement a MediaView to delegate at the view level the usage of the content scanner service, to determine how to render the media.

* fix for a small design mismatch

* fix for greedy error state

* updated naming

* just making some screenshot that have been affected by a string change on Localazy

* pr suggestions + updated strings
2026-07-06 16:15:27 +02:00
Stefan Ceriu 000bf81f95 Bump the RustSDK to a new "apple-release" profile build distribution
and hopefuly a smaller binary size
2026-07-03 16:34:14 +03:00
Stefan Ceriu a433793418 Bump the RustSDK to v26.07.02 2026-07-03 13:39:45 +03:00
Element CI 9012161d9d Prepare next release 2026-07-03 02:24:32 -07:00
Mauro 5ea4b46604 Content Scanner Service (#5826)
* implemented the content scanner service with caching and a way to use in the state store context

* fix swiftformat comment enforcing

* pr suggestions
2026-07-02 17:12:39 +02:00
Doug 3ef66cdd05 Rename UserProfileProxy to UserProfile. It's a pure struct and proxies nothing.
Also remove the redundant `userID` property given `id` already exists (for Identifiable conformance).
2026-07-02 13:09:34 +01:00
Element CI 6aac3bc46e Prepare next release 2026-06-30 06:58:23 -07:00
Mauro Romito bed5e0c288 update sdk 26.06.30 2026-06-30 15:15:36 +02:00
Mauro 2d486ece33 Use iOS 26 Observation for Unit and Preview tests. (#5797)
* 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
2026-06-30 14:01:08 +02:00
Element CI 785193c2d8 Bump the calendar version ready for the next release 2026-06-30 08:04:54 +03:00
Doug 66de86b5d2 Merge the UserDefaultsStorage helpers into UserDefaultsProtocol. 2026-06-29 10:34:32 +01:00
Doug c53e0c1466 Add a new BuildExtensions package that contains a UserPreference macro.
The build extensions package can be used for both macros and plugins.
2026-06-29 10:34:32 +01:00
Doug f3da459d16 Ensure that the current user is the device owner before linking a new device. (#5773) 2026-06-26 16:24:18 +01:00
Mauro Romito a6384500c9 integration tests now use swift 6.2 2026-06-24 17:32:15 +02:00
Mauro Romito 1725f0d97b migrated a11y tests to swift 6.2 2026-06-24 17:31:58 +02:00
Mauro Romito 31a9f2c961 migrating ui tests using swift 6.2 2026-06-24 17:31:40 +02:00
Mauro 10b48d37ad Preview tests migration to swift 6.2 (#5786)
preview tests now use swift 6.2
2026-06-24 14:24:46 +02:00
Mauro c93d6e3265 Unit Tests migration to swift 6.2 (#5781) 2026-06-24 12:39:35 +02:00
Stefan Ceriu b9476f65a3 Bump the RustSDK to 26.06.23 2026-06-23 18:59:13 +03:00
svetoslav-sportinno 30e4e6339d Add max selections support for polls (#5726) 2026-06-22 13:39:12 +02:00
Stefan Ceriu 7f1b6086ae Search tab (#5754)
* Add a developer flag for the search tab
Introduces a globalSearchEnabled user preference (off by default) with a toggle in Developer Options, used to gate the new search experience.

* Support search role tabs in the tab coordinator
Migrates the NavigationTabCoordinator to SwiftUI's value-based Tab API and adds an isSearch option so a tab can adopt the iOS 26 .search role, which detaches it into the trailing search button in the tab bar.

* Moves room search to a new screen
Adds a new screen that filters the alternate room summary provider as you type, shows an empty state, and lists matching rooms with their matrix identifier. Supports hardware keyboard selection (arrow keys to move through results, return to open) by reaching into the system search field.

* Present search in a dedicated tab
Adds the search tab to the chats flow on iOS 26 when the flag is enabled, rendered as the detached .search role button. The Cmd+K shortcut now selects this tab, and the home screen's inline search is hidden while the tab is available.

* Remove the old global search screen
The dedicated search tab replaces the Cmd+K floating window, so the GlobalSearchScreen, its window plumbing in the WindowManager, and its presentation in the chats flow are all removed.
2026-06-19 13:50:17 +03:00
Mauro a520d94760 Swift 6 Migration (#5733)
* Enable Swift 6.2 with default main actor isolation for the app target

Turn on SWIFT_VERSION 6.2, SWIFT_APPROACHABLE_CONCURRENCY and SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor for the ElementX target, matching the NSE and Share Extension (which already use 6.2 without the main actor default).

# Conflicts:
#	ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

* Update the code generation templates for Swift 6

Emit nonisolated/@unchecked Sendable mocks and nonisolated string enums, and mark async mock methods @concurrent so they keep suspending like the real implementations (otherwise intermediate states are unobservable in tests). Includes the regenerated mocks and strings.

# Conflicts:
#	ElementX/Sources/Mocks/Generated/GeneratedMocks.swift

* Make the data layer and services nonisolated and Sendable

Annotate the value-type models, Rust SDK proxy wrappers, timeline item graph, settings, logging and NSE-shared types as nonisolated, and conform the service protocols to Sendable so their existentials can cross isolation boundaries. These types run off the main actor and no longer inherit the target's default main actor isolation.

* Adopt the new isolation across call sites, mocks and signatures

Update call sites, closure signatures and mock configuration helpers to match the nonisolated/Sendable data layer, including the main actor isolated mock inits and the @Sendable filter on recentlyVisitedRooms.

^ Conflicts:
^	ElementX/Sources/Services/SecureBackup/SecureBackupController.swift

* Remove redundant @MainActor annotations

With the app target defaulting to main actor isolation, the explicit @MainActor on view models, coordinators, views and their protocols is no longer required.

* Fix concurrency hotspots surfaced by the migration

Resolve the room summary main-thread deadlock by moving diff processing onto AsyncStreams, add the SDKListener.onMainActor FIFO bridge for SDK callbacks, hop KVO/timer/UIKit callbacks to the main actor via assumeIsolated, add isolated deinits, and apply the few justified nonisolated(unsafe) escapes for queue-confined Apple APIs.

* Fix the unit tests for Swift 6 concurrency

Hop the waitForConfirmation body onto the caller's actor (Swift Testing runs confirmation closures off-actor), and adjust the affected suites and async signatures.

* offload diffs on concurrent threads instead of main actor

* make room info protocols sendable

* use a task group for fetching data so that everything runs concurrently in the TextRoomTimelineView when getting the preview.

* use the generic onMainActor implementation, which already makes a stream and send the continuation on the main actor.

* small pr comments issues being addressed

* update enterprise

* Update StaticCode to 1.1.0 and specify the required Swift isolation.

* fix ElementCallServiceTests

* update enterprise

* re-generate mocks

* update enterprise

* enterprise new code conformed to swift 6

---------

Co-authored-by: Doug <douglase@element.io>
2026-06-18 17:55:31 +02:00
Michael 7edca8b5a1 Add a recovery key screen hook. (#5684)
update generateRecoveryKey to take a passphrase option

Wire up AppHooks with recovery key hook

Update xcodeproj

Review fixups

Review fixups

Make the `SecureBackupRecoveryState.viewMode` extension private

Bump the enterprise submodule
2026-06-18 13:28:57 +01:00
renovate[bot] 18fac944f5 Update Project Dependencies (#5750)
* Update Project Dependencies

* Run XcodeGen, update Package.resolved and Settings.bundle

* Run XcodeGen, update Package.resolved and Settings.bundle

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Element CI <ci@element.io>
2026-06-18 06:34:20 +00:00
Element CI 56536c0831 Prepare next release 2026-06-17 01:39:09 -07:00
Element CI cb491ab4ac Run XcodeGen, update Package.resolved and Settings.bundle 2026-06-17 08:52:00 +03:00
Doug 404efa0d66 Update the SDK. (#5743) 2026-06-16 16:27:42 +01:00
Stefan Ceriu 0ce7a5ea13 Log Sentry crash events through MXLog
Mirror crashes into our own logs via Sentry's beforeSend hook so the full crash
log ships with rageshakes. Adds a SentryEvent extension to extract the formatted
crash log from the event.
2026-06-16 12:13:10 +03:00
Mauro Romito c2909aa9b8 bump rte to 2.42.0 2026-06-11 11:42:40 +02:00
Mauro Romito 44284de1e7 migrate the share extension to swift 6 2026-06-08 16:01:54 +02:00
Doug 097d055dbe Some more tweaks to compound for User Status. (#5708)
* Add a plain list modifier to Compound.

* Move ElementTextFieldStyle into Compound and support more styles from the Figma

- More accurately reflects our Liquid Glass updates.
- Adds support for the .raised style.

* Update Element X snapshots.
2026-06-05 15:59:34 +01:00
Element CI e8d9420c3c Run XcodeGen, update Package.resolved and Settings.bundle 2026-06-04 09:21:55 +03:00
Stefan Ceriu 56d5f72f01 Rename RoomTimelineItemFixtures to just TimelineFixtures 2026-06-04 09:14:58 +03:00
Element CI d2f1e5caed Run XcodeGen, update Package.resolved and Settings.bundle 2026-06-03 17:19:09 +02:00
Element CI 1e303da17e Prepare next release 2026-06-03 04:23:15 -07:00