Skip to content

Commit 8871a7e

Browse files
committed
Merge branch 'develop' into v5
2 parents b3dff04 + 0258f4d commit 8871a7e

File tree

127 files changed

+2257
-375
lines changed

Some content is hidden

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

127 files changed

+2257
-375
lines changed

β€Ž.github/actions/bootstrap/action.ymlβ€Ž

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,6 @@ runs:
55
steps:
66
- run: echo "IMAGE=${ImageOS}" >> $GITHUB_ENV
77
shell: bash
8-
- run: echo "$HOME/.mint/bin" >> $GITHUB_PATH
9-
shell: bash
10-
- name: Cache Mint
11-
uses: actions/cache@v4
12-
id: mint-cache
13-
with:
14-
path: ~/.mint
15-
key: ${{ env.IMAGE }}-mint-${{ hashFiles('**/Mintfile') }}
16-
restore-keys: ${{ env.IMAGE }}-mint-
178
- uses: ./.github/actions/ruby-cache
189
- uses: ./.github/actions/xcode-cache
1910
- run: ./Scripts/bootstrap.sh

β€Ž.github/actions/xcode-cache/action.ymlβ€Ž

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ runs:
55
steps:
66
- run: echo "IMAGE=${ImageOS}-${ImageVersion}" >> $GITHUB_ENV
77
shell: bash
8-
- run: echo "$HOME/.mint/bin" >> $GITHUB_PATH
9-
shell: bash
108
- uses: mikehardy/buildcache-action@v2
119
with:
1210
cache_key: ${{ env.IMAGE }}-buildcache-

β€Ž.github/workflows/cron-checks.ymlβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
INSTALL_ALLURE: true
5050
INSTALL_YEETD: true
5151
INSTALL_IPSW: true
52-
SKIP_MINT_BOOTSTRAP: true
52+
SKIP_SWIFT_BOOTSTRAP: true
5353
- uses: ./.github/actions/setup-ios-runtime
5454
if: ${{ matrix.setup_runtime }}
5555
timeout-minutes: 60

β€Ž.github/workflows/merge-main-to-develop.ymlβ€Ž

Lines changed: 0 additions & 32 deletions
This file was deleted.

β€Ž.github/workflows/release-merge.ymlβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
workflow_dispatch:
88

99
jobs:
10-
merge-comment:
10+
merge-release-to-main:
1111
name: Merge release to main
1212
runs-on: macos-15
1313
if: github.event_name == 'workflow_dispatch' || (github.event.issue.pull_request && github.event.issue.state == 'open' && github.event.comment.body == '/merge release')

β€Ž.github/workflows/release-publish.ymlβ€Ž

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,28 @@ jobs:
2626
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
2727
APPSTORE_API_KEY: ${{ secrets.APPSTORE_API_KEY }}
2828
run: bundle exec fastlane publish_release --verbose
29+
30+
merge-main-to-develop:
31+
name: Merge main to develop
32+
runs-on: ubuntu-latest
33+
needs: release
34+
steps:
35+
- uses: actions/checkout@v4.1.1
36+
with:
37+
token: ${{ secrets.ADMIN_API_TOKEN }}
38+
fetch-depth: 0
39+
40+
- uses: ./.github/actions/ruby-cache
41+
42+
- run: bundle exec fastlane merge_main
43+
env:
44+
GITHUB_TOKEN: ${{ secrets.ADMIN_API_TOKEN }}
45+
46+
- uses: 8398a7/action-slack@v3
47+
if: failure()
48+
with:
49+
status: ${{ job.status }}
50+
text: "⚠️ <!subteam^S030AAHLDLN>, the merge of `main` to `develop` failed on CI. Consider using this command locally: `bundle exec fastlane merge_main`"
51+
fields: repo,commit,author,workflow
52+
env:
53+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

β€Ž.github/workflows/smoke-checks.ymlβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ jobs:
171171
env:
172172
INSTALL_ALLURE: true
173173
INSTALL_YEETD: true
174-
SKIP_MINT_BOOTSTRAP: true
174+
SKIP_SWIFT_BOOTSTRAP: true
175175
- name: Run UI Tests (Debug)
176176
run: bundle exec fastlane test_e2e_mock device:"${{ env.IOS_SIMULATOR_DEVICE }}" batch:'${{ matrix.batch }}' test_without_building:true
177177
timeout-minutes: 100

β€Ž.github/workflows/sonar.ymlβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- uses: ./.github/actions/bootstrap
2222
env:
2323
INSTALL_SONAR: true
24-
SKIP_MINT_BOOTSTRAP: true
24+
SKIP_SWIFT_BOOTSTRAP: true
2525

2626
- uses: actions/github-script@v6
2727
id: get_pr_number

β€ŽAGENTS.mdβ€Ž

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
Guidance for AI coding agents (Copilot, Cursor, Aider, Claude, etc.) working in this repository. Human readers are welcome, but this file is written for tools.
2+
3+
### Repository purpose
4+
5+
This repo hosts Stream’s SwiftUI Chat SDK for iOS. It builds on the core client and provides SwiftUI-first chat components (views, view models, modifiers) for messaging apps.
6+
7+
Agents should optimize for API stability, backwards compatibility, accessibility, and high test coverage when changing code.
8+
9+
### Tech & toolchain
10+
β€’ Language: Swift (SwiftUI)
11+
β€’ Primary distribution: Swift Package Manager (SPM), secondary CocoaPods and XCFrameworks
12+
β€’ Xcode: 15.x or newer (Apple Silicon supported)
13+
β€’ Platforms / deployment targets: Use the values set in Package.swift/podspecs; do not lower targets without approval
14+
β€’ CI: GitHub Actions (assume PR validation for build + tests + lint)
15+
β€’ Linters & docs: SwiftLint and SwiftFormat
16+
17+
### Project layout (high level)
18+
19+
Sources/
20+
StreamChatSwiftUI/ # SwiftUI views, view models, theming, utils
21+
Tests/
22+
StreamChatSwiftUITests/ # Unit/UI tests for SwiftUI layer
23+
24+
When editing near other packages (e.g., StreamChat or StreamChatUI), prefer extending the SwiftUI layer rather than duplicating logic from dependencies.
25+
26+
### Local setup (SPM)
27+
1. Open the repository in Xcode (root contains Package.swift).
28+
2. Resolve packages.
29+
3. Choose an iOS Simulator (e.g., iPhone 15) and Build.
30+
31+
Optional: sample/demo app
32+
33+
If a sample app target exists in this repo, prefer running that to validate UI changes. Keep demo configs free of credentials and use placeholders like YOUR_STREAM_KEY.
34+
35+
### Schemes
36+
37+
Typical scheme names include:
38+
β€’ StreamChatSwiftUI
39+
β€’ StreamChatSwiftUITests
40+
41+
Agents must query existing schemes before invoking xcodebuild.
42+
43+
### Build & test commands (CLI)
44+
45+
Prefer Xcode for day-to-day work; use CLI for CI parity & automation.
46+
47+
Build (Debug):
48+
49+
```
50+
xcodebuild \
51+
-scheme StreamChatSwiftUI \
52+
-destination 'platform=iOS Simulator,name=iPhone 15' \
53+
-configuration Debug build
54+
```
55+
56+
Run tests:
57+
58+
```
59+
xcodebuild \
60+
-scheme StreamChatSwiftUI \
61+
-destination 'platform=iOS Simulator,name=iPhone 15' \
62+
-configuration Debug test
63+
```
64+
65+
If a Makefile or scripts exist (e.g., make build, make test, ./scripts/lint.sh), prefer those to keep parity with CI. Discover with make help and ls scripts/.
66+
67+
Linting & formatting
68+
β€’ SwiftLint (strict):
69+
70+
swiftlint --strict
71+
72+
β€’ Respect .swiftlint.yml and any repo-specific rules. Do not broadly disable rules; scope exceptions and justify in PRs.
73+
74+
Public API & SemVer
75+
β€’ Follow semantic versioning for the SwiftUI package.
76+
β€’ Any public API change must include updated docs and migration notes.
77+
β€’ Avoid source-breaking changes. If unavoidable, add deprecations first with a transition path.
78+
79+
Accessibility & UI quality
80+
β€’ Ensure components have accessibility labels, traits, and dynamic type support.
81+
β€’ Support both light/dark mode.
82+
β€’ When altering UI, attach before/after screenshots (or screen recordings) in PRs.
83+
84+
Testing policy
85+
β€’ Add/extend tests in StreamChatSwiftUITests/ for:
86+
β€’ View models and state handling

β€ŽCHANGELOG.mdβ€Ž

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,49 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
33

44
# Upcoming
55

6+
### βœ… Added
7+
- Add `toolbarThemed(content:)` for creating custom views with themed navigation bar [#953](https://github.com/GetStream/stream-chat-swiftui/pull/953)
8+
- Add support for downloading file attachments [#952](https://github.com/GetStream/stream-chat-swiftui/pull/952)
9+
### 🐞 Fixed
10+
- Fix updating back button tint with `ColorPalette.navigationBarTintColor` [#953](https://github.com/GetStream/stream-chat-swiftui/pull/953)
11+
- Fix swipe to reply enabled when quoting a message is disabled [#977](https://github.com/GetStream/stream-chat-swiftui/pull/957)
12+
- Fix composer not showing images in the composer when editing signed attachments [#956](https://github.com/GetStream/stream-chat-swiftui/pull/956)
13+
- Fix replacing an image while editing a message not showing the new image in the message list [#956](https://github.com/GetStream/stream-chat-swiftui/pull/956)
14+
- Improve precision when scrolling to the newest message with long text [#958](https://github.com/GetStream/stream-chat-swiftui/pull/958)
15+
- Fix draft attachments being sent with local file urls to the server [#964](https://github.com/GetStream/stream-chat-swiftui/pull/964)
16+
- Fix keyboard showing with attachment picker when editing a message [#965](https://github.com/GetStream/stream-chat-swiftui/pull/965)
17+
- Fix race condition when clearing text in a regular TextField [#955](https://github.com/GetStream/stream-chat-swiftui/pull/955)
18+
### πŸ”„ Changed
19+
- Change the gallery header view to show the message timestamp instead of online status [#962](https://github.com/GetStream/stream-chat-swiftui/pull/962)
20+
21+
# [4.88.0](https://github.com/GetStream/stream-chat-swiftui/releases/tag/4.88.0)
22+
_September 10, 2025_
23+
24+
### βœ… Added
25+
- Add `ColorPalette.navigationBarTitle`, `ColorPalette.navigationBarSubtitle`, `ColorPalette.navigationBarTintColor`, `ColorPalette.navigationBarBackground` [#939](https://github.com/GetStream/stream-chat-swiftui/pull/939)
26+
### 🐞 Fixed
27+
- Long message with a link preview was truncated sometimes [#940](https://github.com/GetStream/stream-chat-swiftui/pull/940)
28+
- Fix quoted message shown in the composer when editing a quoting message [#943](https://github.com/GetStream/stream-chat-swiftui/pull/943)
29+
- Fix pinned messages view not using relative time formatter [#946](https://github.com/GetStream/stream-chat-swiftui/pull/946)
30+
31+
# [4.87.0](https://github.com/GetStream/stream-chat-swiftui/releases/tag/4.87.0)
32+
_September 01, 2025_
33+
34+
### βœ… Added
35+
- Add option to scroll to and open a channel from the channel list [#932](https://github.com/GetStream/stream-chat-swiftui/pull/932)
36+
- Make `MediaItem` and `MediaAttachmentContentView` public to allow customization [#935](https://github.com/GetStream/stream-chat-swiftui/pull/935)
37+
38+
### 🐞 Fixed
39+
- Show attachment title instead of URL in the `FileAttachmentPreview` view [#930](https://github.com/GetStream/stream-chat-swiftui/pull/930)
40+
- Fix overriding title color in `ChannelTitleView` [#931](https://github.com/GetStream/stream-chat-swiftui/pull/931)
41+
- Use channel capabilities for validating delete message action [#933](https://github.com/GetStream/stream-chat-swiftui/pull/933)
42+
- Fix the video attachments now fetch the URL once on appear and pause when swiping to another item in the gallery [#934](https://github.com/GetStream/stream-chat-swiftui/pull/934)
43+
44+
# [4.86.0](https://github.com/GetStream/stream-chat-swiftui/releases/tag/4.86.0)
45+
_August 21, 2025_
46+
647
### 🐞 Fixed
7-
- Fix inconsistencies in gallery view displaying images and videos [927](https://github.com/GetStream/stream-chat-swiftui/pull/927)
48+
- Fix inconsistencies in gallery view displaying images and videos [#927](https://github.com/GetStream/stream-chat-swiftui/pull/927)
849
- Prevent audio messages increasing width in reply mode [#926](https://github.com/GetStream/stream-chat-swiftui/pull/926)
950

1051
# [4.85.0](https://github.com/GetStream/stream-chat-swiftui/releases/tag/4.85.0)

0 commit comments

Comments
Β (0)