Skip to content

Commit 8f02dbb

Browse files
committed
Merge branch 'develop' into v5
# Conflicts: # .github/workflows/cron-checks.yml # .github/workflows/smoke-checks.yml # .swiftformat # DemoApp/Screens/UserProfile/UserProfileViewController.swift # Package.swift # Sources/StreamChat/Audio/AudioSessionConfiguring.swift # Sources/StreamChat/ChatClient+Environment.swift # Sources/StreamChat/WebSocketClient/Events/AITypingEvents.swift # Sources/StreamChat/WebSocketClient/Events/MemberEvents.swift # Sources/StreamChat/WebSocketClient/Events/MessageEvents.swift # Sources/StreamChat/WebSocketClient/Events/NotificationEvents.swift # Sources/StreamChat/WebSocketClient/WebSocketClient.swift # Sources/StreamChat/Workers/ChannelUpdater.swift # StreamChat-XCFramework.podspec # StreamChat.podspec # StreamChat.xcodeproj/project.pbxproj # StreamChatUI-XCFramework.podspec # StreamChatUI.podspec # Tests/StreamChatTests/Audio/StreamAudioSessionConfigurator_Tests.swift # Tests/StreamChatTests/Repositories/ChannelRepository_Tests.swift # Tests/StreamChatTests/WebSocketClient/WebSocketClient_Tests.swift # fastlane/Fastfile
2 parents ab527b3 + 7dda471 commit 8f02dbb

File tree

753 files changed

+2310
-601
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

753 files changed

+2310
-601
lines changed

.github/actions/xcode-cache/action.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,3 @@ runs:
1212
path: spm_cache
1313
key: ${{ env.IMAGE }}-spm-${{ hashFiles('**/Package.resolved') }}
1414
restore-keys: ${{ env.IMAGE }}-spm-
15-
- uses: mikehardy/buildcache-action@v2
16-
with:
17-
cache_key: ${{ env.IMAGE }}-buildcache-
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Backend Checks
2+
3+
on:
4+
workflow_dispatch:
5+
6+
concurrency:
7+
group: ${{ github.workflow }}-${{ github.ref }}
8+
cancel-in-progress: true
9+
10+
env:
11+
HOMEBREW_NO_INSTALL_CLEANUP: 1 # Disable cleanup for homebrew, we don't need it on CI
12+
IOS_SIMULATOR_DEVICE: "iPhone 16 Pro (18.5)"
13+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
14+
15+
jobs:
16+
test-backend-integration:
17+
name: Test Backend Integration
18+
runs-on: macos-15
19+
steps:
20+
- uses: actions/[email protected]
21+
- uses: ./.github/actions/bootstrap
22+
env:
23+
INSTALL_YEETD: true
24+
SKIP_SWIFT_BOOTSTRAP: true
25+
- name: Run UI Tests (Debug)
26+
run: bundle exec fastlane test_e2e device:"${{ env.IOS_SIMULATOR_DEVICE }}"
27+
timeout-minutes: 100
28+
- name: Parse xcresult
29+
if: failure()
30+
run: |
31+
brew install chargepoint/xcparse/xcparse
32+
xcparse logs fastlane/test_output/StreamChatUITestsApp.xcresult fastlane/test_output/logs/
33+
- uses: actions/upload-artifact@v4
34+
if: failure()
35+
with:
36+
name: Test Data Backend Integration
37+
path: |
38+
fastlane/recordings
39+
fastlane/sinatra_log.txt
40+
fastlane/test_output/logs/*/Diagnostics/**/*.txt
41+
fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/*

.github/workflows/cron-checks.yml

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,29 @@ jobs:
2121
strategy:
2222
matrix:
2323
include:
24-
- ios: 18.5
25-
os: macos-15
24+
- ios: "26.1"
25+
device: "iPhone 17 Pro"
26+
setup_runtime: false
27+
- ios: "18.5"
2628
device: "iPhone 16 Pro"
2729
setup_runtime: false
28-
- ios: 17.5
29-
os: macos-15
30+
- ios: "17.5"
3031
device: "iPhone 15 Pro"
3132
setup_runtime: true
32-
- ios: 16.4
33-
os: macos-15
33+
- ios: "16.4"
3434
device: "iPhone 14 Pro"
3535
setup_runtime: true
36-
- ios: 15.5
37-
os: macos-15
36+
- ios: "15.5"
3837
device: "iPhone 13 Pro"
3938
setup_runtime: true
4039
fail-fast: false
41-
runs-on: ${{ matrix.os }}
40+
runs-on: macos-15
4241
env:
4342
GITHUB_EVENT: ${{ toJson(github.event) }}
4443
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
4544
STREAM_DEMO_APP_SECRET: ${{ secrets.STREAM_DEMO_APP_SECRET }}
46-
XCODE_VERSION: "26.0.1"
47-
IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})" # For the Allure report
45+
XCODE_VERSION: "26.1.1"
46+
IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})"
4847
steps:
4948
- uses: actions/[email protected]
5049
- uses: ./.github/actions/bootstrap
@@ -90,27 +89,26 @@ jobs:
9089
strategy:
9190
matrix:
9291
include:
93-
- ios: 18.5
94-
os: macos-15
92+
- ios: "26.1"
93+
device: "iPhone 17 Pro"
94+
setup_runtime: false
95+
- ios: "18.5"
9596
device: "iPhone 16 Pro"
9697
setup_runtime: false
97-
- ios: 17.5
98-
xcode: 15.4
99-
os: macos-15
98+
- ios: "17.5"
10099
device: "iPhone 15 Pro"
101100
setup_runtime: true
102-
- ios: 16.4
103-
os: macos-15
101+
- ios: "16.4"
104102
device: "iPhone 14 Pro"
105103
setup_runtime: true
106-
- ios: 15.5
107-
os: macos-15
104+
- ios: "15.5"
108105
device: "iPhone 13 Pro"
109106
setup_runtime: true
110107
fail-fast: false
111-
runs-on: ${{ matrix.os }}
108+
runs-on: macos-15
112109
env:
113-
XCODE_VERSION: "26.0.1"
110+
XCODE_VERSION: "26.1.1"
111+
IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})"
114112
steps:
115113
- uses: actions/[email protected]
116114
- uses: ./.github/actions/bootstrap
@@ -124,7 +122,7 @@ jobs:
124122
version: ${{ matrix.ios }}
125123
device: ${{ matrix.device }}
126124
- name: Run LLC Tests (Debug)
127-
run: bundle exec fastlane test device:"${{ matrix.device }} (${{ matrix.ios }})" cron:true
125+
run: bundle exec fastlane test device:"${{ env.IOS_SIMULATOR_DEVICE }}" cron:true
128126
timeout-minutes: 100
129127
- name: Parse xcresult
130128
if: failure()
@@ -140,7 +138,7 @@ jobs:
140138
fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/*
141139
142140
build-old-xcode:
143-
name: Build SDKs (Old Xcode)
141+
name: Build LLC + UI (Old Xcode)
144142
runs-on: macos-14
145143
env:
146144
XCODE_VERSION: "16.1"
@@ -150,14 +148,15 @@ jobs:
150148
with:
151149
ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }}
152150
- uses: actions/[email protected]
151+
- uses: ./.github/actions/xcode-cache
153152
- uses: ./.github/actions/ruby-cache
154153
- name: List Xcode versions
155154
run: mdfind "kMDItemCFBundleIdentifier = 'com.apple.dt.Xcode'"
156155
- name: Build LLC
157-
run: bundle exec fastlane test device:"iPhone 8" build_for_testing:true
156+
run: bundle exec fastlane test device:"iPhone 16" build_for_testing:true
158157
timeout-minutes: 25
159158
- name: Build UI
160-
run: bundle exec fastlane test_ui device:"iPhone 8" build_for_testing:true
159+
run: bundle exec fastlane test_ui device:"iPhone 16" build_for_testing:true
161160
timeout-minutes: 25
162161
- name: Build XCFrameworks
163162
run: bundle exec fastlane build_xcframeworks
@@ -170,7 +169,7 @@ jobs:
170169
name: Automated Code Review
171170
runs-on: macos-14
172171
env:
173-
XCODE_VERSION: "15.4"
172+
XCODE_VERSION: "16.1"
174173
steps:
175174
- uses: actions/[email protected]
176175
- uses: ./.github/actions/bootstrap

.github/workflows/smoke-checks.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ concurrency:
2020

2121
env:
2222
HOMEBREW_NO_INSTALL_CLEANUP: 1 # Disable cleanup for homebrew, we don't need it on CI
23-
IOS_SIMULATOR_DEVICE: "iPhone 16 Pro (18.5)"
23+
IOS_SIMULATOR_DEVICE: "iPhone 17 Pro (26.1)"
2424
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2525
GITHUB_PR_NUM: ${{ github.event.pull_request.number }}
2626

@@ -48,7 +48,7 @@ jobs:
4848
name: Automated Code Review
4949
runs-on: macos-14
5050
env:
51-
XCODE_VERSION: "15.4"
51+
XCODE_VERSION: "16.1"
5252
if: ${{ github.event.inputs.record_snapshots != 'true' }}
5353
steps:
5454
- uses: actions/[email protected]
@@ -68,14 +68,15 @@ jobs:
6868
XCODE_VERSION: "16.1"
6969
steps:
7070
- uses: actions/[email protected]
71+
- uses: ./.github/actions/xcode-cache
7172
- uses: ./.github/actions/ruby-cache
7273
- name: List Xcode versions
7374
run: mdfind "kMDItemCFBundleIdentifier = 'com.apple.dt.Xcode'"
7475
- name: Build LLC
75-
run: bundle exec fastlane test device:"iPhone 16 (18.1)" build_for_testing:true
76+
run: bundle exec fastlane test device:"iPhone 16" build_for_testing:true
7677
timeout-minutes: 25
7778
- name: Build UI
78-
run: bundle exec fastlane test_ui device:"iPhone 16 (18.1)" build_for_testing:true
79+
run: bundle exec fastlane test_ui device:"iPhone 16" build_for_testing:true
7980
timeout-minutes: 25
8081

8182
test-llc-debug:

.swiftlint.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ file_name_no_space:
6767

6868
cyclomatic_complexity:
6969
ignores_case_statements: true
70-
warning: 25
71-
error: 30
70+
warning: 30
71+
error: 35
7272

7373
custom_rules:
7474
regular_constraints_forbidden:

CHANGELOG.md

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,48 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
33

44
# Upcoming
55

6+
## StreamChat
7+
### ✅ Added
8+
- Add `hideHistoryBefore` to add members for configuring the history visibility [#3892](https://github.com/GetStream/stream-chat-swift/pull/3892)
9+
## StreamChatUI
10+
### 🐞 Fixed
11+
- Fix reading messages from muted users [#3896](https://github.com/GetStream/stream-chat-swift/pull/3896)
12+
13+
# [4.94.0](https://github.com/GetStream/stream-chat-swift/releases/tag/4.94.0)
14+
_December 02, 2025_
15+
16+
## StreamChat
17+
### ✅ Added
18+
- Add `ChatClient.uploadAttachment(localUrl:progress:)` [#3883](https://github.com/GetStream/stream-chat-swift/pull/3883)
19+
- Add `ChatClient.deleteAttachment(remoteUrl:)` [#3883](https://github.com/GetStream/stream-chat-swift/pull/3883)
20+
- Add `CDNClient.deleteAttachment(remoteUrl:)` [#3883](https://github.com/GetStream/stream-chat-swift/pull/3883)
21+
- Add `heic`, `heif` and `svg` formats to the supported image file types [#3883](https://github.com/GetStream/stream-chat-swift/pull/3883)
22+
- Add `ChatChannelController.markUnread(from:completion:)` and `Chat.markUnread(from:)` where the from argument is `Date` [#3885](https://github.com/GetStream/stream-chat-swift/pull/3885)
23+
- Add support for filter tags in channels [#3886](https://github.com/GetStream/stream-chat-swift/pull/3886)
24+
- Add `ChatChannel.filterTags`
25+
- Add `filterTags` channel list filtering key
26+
- Add `filterTags` argument to `ChatChannelController` and `Chat` factory methods in `ChatClient`
27+
- Add `filterTags` argument to `ChatChannelController.updateChannel` and `ChatChannelController.partialUpdateChannel`
28+
- Add `filterTags` argument to `Chat.update` and `Chat.updatePartial`
29+
### 🐞 Fixed
30+
- Fix rare crash in `WebSocketClient.connectEndpoint` [#3882](https://github.com/GetStream/stream-chat-swift/pull/3882)
31+
- Fix audio recordings not playing from AirPods automatically [#3884](https://github.com/GetStream/stream-chat-swift/pull/3884)
32+
- Fix audio recordings not using AirPods mic automatically [#3884](https://github.com/GetStream/stream-chat-swift/pull/3884)
33+
34+
## StreamChatUI
35+
### 🐞 Fixed
36+
- Fix marking channel read when scrolling to the bottom without unread counts [#3881](https://github.com/GetStream/stream-chat-swift/pull/3881)
37+
38+
# [4.93.0](https://github.com/GetStream/stream-chat-swift/releases/tag/4.93.0)
39+
_November 18, 2025_
40+
41+
## StreamChat
42+
### ✅ Added
43+
- Add `ChatClientConfig.isAutomaticSyncOnReconnectEnabled` for toggling automatic syncing [#3879](https://github.com/GetStream/stream-chat-swift/pull/3879)
44+
### ⚡️ Performance
45+
- Reduce SDK size by converting Events from structs to classes [#3878](https://github.com/GetStream/stream-chat-swift/pull/3878)
646
### 🔄 Changed
47+
- Change Events from structs to classes [#3878](https://github.com/GetStream/stream-chat-swift/pull/3878)
748

849
# [4.92.0](https://github.com/GetStream/stream-chat-swift/releases/tag/4.92.0)
950
_November 05, 2025_
@@ -219,7 +260,7 @@ _June 17, 2025_
219260
- Add new `Filter.isNil` to make it easier to query by nil values [#3623](https://github.com/GetStream/stream-chat-swift/pull/3623)
220261
- Add Message Reminders [#3623](https://github.com/GetStream/stream-chat-swift/pull/3623)
221262
- Add `ChatMessageController.createReminder()`
222-
- Add `ChatMessageController.updateReminder()`
263+
- Add `ChatMessageController.updateReminder()`
223264
- Add `ChatMessageController.deleteReminder()`
224265
- Add `MessageReminderListController` and `MessageReminderListQuery`
225266

@@ -356,7 +397,7 @@ _February 27, 2025_
356397
- Add `CurrentUserController`:
357398
- `deleteDraft()`
358399
- `loadDraftMessages()`
359-
- `loadMoreDraftMessages()`
400+
- `loadMoreDraftMessages()`
360401

361402
### 🐞 Fixed
362403
- Update channel's preview message when coming back to online [#3574](https://github.com/GetStream/stream-chat-swift/pull/3574)

0 commit comments

Comments
 (0)