Next Release#3735
Merged
Merged
Conversation
## π― Goal This PR fixes a regression introduced with [this change](#3717). Namely, restoring the functionality in #3717 essentially forced [this](e19a186) to happen as well. We in fact want this to only be the case whenever we release a new tarball to `npm` and not in every scenario. While bumping `version` is fine in `package.json`, workspace dependencies need to be resolved through the `workspace:^` protocol. ## π Implementation details <!-- Provide a description of the implementation --> ## π¨ UI Changes <!-- Add relevant screenshots --> <details> <summary>iOS</summary> <table> <thead> <tr> <td>Before</td> <td>After</td> </tr> </thead> <tbody> <tr> <td> <!--<img src="" /> --> </td> <td> <!--<img src="" /> --> </td> </tr> </tbody> </table> </details> <details> <summary>Android</summary> <table> <thead> <tr> <td>Before</td> <td>After</td> </tr> </thead> <tbody> <tr> <td> <!--<img src="" /> --> </td> <td> <!--<img src="" /> --> </td> </tr> </tbody> </table> </details> ## π§ͺ Testing <!-- Explain how this change can be tested (or why it can't be tested) --> ## βοΈ Checklist - [ ] I have signed the [Stream CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) (required) - [ ] PR targets the `develop` branch - [ ] Documentation is updated - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android
## π― Goal Restore the public download link for the SampleApp Android build: `https://getstream.io/downloads/rn-sample-app.apk`. This S3 upload was removed in #3334 ("chore: add android build and deploy workflows and improve ios workflow"), which replaced the S3-based Android job with Firebase App Distribution. Firebase serves internal QA testers, but it dropped the public, unauthenticated download link that lives on our own domain. This PR brings that link back **alongside** Firebase. ## π Implementation details Re-adds the S3 upload as two steps in the existing `build_and_deploy_android_firebase` job in [`sample-distribution.yml`](.github/workflows/sample-distribution.yml): - **Configure AWS credentials** β `aws-actions/configure-aws-credentials@v4` (the previous code used the now-EOL `v1`), authenticating with the `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` secrets. - **Upload APK to S3** β copies the APK to `rn-sample-app.apk` and runs `aws s3 cp ... --sse AES256`. Notable choices: - **No rebuild.** The upload reuses the APK the Fastlane step already produces at `examples/SampleApp/app-build/reactnativesampleapp.apk`, so the previous manual `react-native bundle` + `gradlew assembleRelease` steps are not reintroduced. - **Object key unchanged** (`rn-sample-app.apk`) so the existing public URL keeps working. - **`develop`-only**, matching the original behavior. - **Firebase distribution is kept** β this is additive. ## π¨ UI Changes N/A β CI/workflow-only change, no UI impact. ## π§ͺ Testing CI-only change; verified by the `develop` pipeline rather than the example apps: 1. On merge to `develop`, the `build_and_deploy_android_firebase` job runs the two new steps. 2. Confirm the `Upload APK to S3` step succeeds in the Actions logs. 3. Confirm `https://getstream.io/downloads/rn-sample-app.apk` downloads the latest build. ## βοΈ Checklist - [ ] I have signed the [Stream CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) (required) - [x] PR targets the `develop` branch - [ ] Documentation is updated - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android
## π― Goal Follow-up to #3725 (merged), which restored the SampleApp Android APK upload to S3 that powers `https://getstream.io/downloads/rn-sample-app.apk`. That upload fails on the self-hosted `public` runner because the AWS CLI is not installed there (the original S3 job ran on GitHub-hosted `ubuntu-latest`, where `aws` is preinstalled). This PR makes the job install the AWS CLI when it is missing so the upload can succeed. ## π Implementation details Adds an `Ensure AWS CLI is available` step to the `build_and_deploy_android_firebase` job in [`sample-distribution.yml`](.github/workflows/sample-distribution.yml), before the AWS credentials/upload steps: - No-op when `aws` is already on `PATH` (so it costs nothing if the runner image gains the CLI later). - Otherwise installs AWS CLI v2 from the official bundle, architecture-aware (`x86_64` / `aarch64`). - Installs to a user-writable location (`$HOME/.local/...`) with no `sudo`, then appends the bin dir to `$GITHUB_PATH` so the subsequent `Upload APK to S3` step picks it up. - Runs on `develop` only, matching the rest of the S3 flow. ## π¨ UI Changes N/A β CI/workflow-only change, no UI impact. ## π§ͺ Testing CI-only change; verified by the `develop` pipeline rather than the example apps: 1. On merge to `develop`, the `build_and_deploy_android_firebase` job runs the new install step and logs the resolved `aws --version`. 2. Confirm the `Upload APK to S3` step now succeeds in the Actions logs. 3. Confirm `https://getstream.io/downloads/rn-sample-app.apk` serves the latest build. ## βοΈ Checklist - [ ] I have signed the [Stream CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) (required) - [x] PR targets the `develop` branch - [ ] Documentation is updated - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android
## π― Goal Docs PR: GetStream/docs-content#1418 ## π Implementation details <!-- Provide a description of the implementation --> ## π¨ UI Changes <!-- Add relevant screenshots --> <details> <summary>iOS</summary> <table> <thead> <tr> <td>Before</td> <td>After</td> </tr> </thead> <tbody> <tr> <td> <!--<img src="" /> --> </td> <td> <!--<img src="" /> --> </td> </tr> </tbody> </table> </details> <details> <summary>Android</summary> <table> <thead> <tr> <td>Before</td> <td>After</td> </tr> </thead> <tbody> <tr> <td> <!--<img src="" /> --> </td> <td> <!--<img src="" /> --> </td> </tr> </tbody> </table> </details> ## π§ͺ Testing <!-- Explain how this change can be tested (or why it can't be tested) --> ## βοΈ Checklist - [ ] I have signed the [Stream CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) (required) - [ ] PR targets the `develop` branch - [ ] Documentation is updated - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android
## π― Goal Even though we had for reordering message content (text, gallery, poll etc) text had a fixed position. This PR enables updating text's position too. https://github.com/GetStream/docs-content/pull/1417/changes ## π Implementation details ## π¨ UI Changes No UI changes, the following URL contains before-after shots verifying no change: https://claude.ai/code/artifact/c071bb00-30f3-48ba-ac12-708204549007?via=auto_preview (if the link doesn't work, try the attached screenshots) [message-content-ordering-report.zip](https://github.com/user-attachments/files/29860209/message-content-ordering-report.zip) ## π§ͺ Testing Tested manually on android and ios too ## βοΈ Checklist - [ ] I have signed the [Stream CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) (required) - [ ] PR targets the `develop` branch - [ ] Documentation is updated - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android
β¦3728) ## π― Goal A few small fixes for issues spotted during AI skill tests: - `avatar` theming key wasn't used and had an outdated shape. It's technically a breaking change, but since the shape is broken currently, it should be fine - Adds theme keys to fully style the reaction pill's selected and pressed states (previously only the background could've been changed) - Two small fix for `forceAlignMessages="'left'"` setting ## π Implementation details <!-- Provide a description of the implementation --> ## π¨ UI Changes <!-- Add relevant screenshots --> <details> <summary>iOS</summary> <table> <thead> <tr> <td>Before</td> <td>After</td> </tr> </thead> <tbody> <tr> <td> <!--<img src="" /> --> </td> <td> <!--<img src="" /> --> </td> </tr> </tbody> </table> </details> <details> <summary>Android</summary> <table> <thead> <tr> <td>Before</td> <td>After</td> </tr> </thead> <tbody> <tr> <td> <!--<img src="" /> --> </td> <td> <!--<img src="" /> --> </td> </tr> </tbody> </table> </details> ## π§ͺ Testing <!-- Explain how this change can be tested (or why it can't be tested) --> ## βοΈ Checklist - [ ] I have signed the [Stream CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) (required) - [ ] PR targets the `develop` branch - [ ] Documentation is updated - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android
β¦ts (#3730) ## π― Goal Fix issues surfaced by a documentation audit of the RN v9 docs against the SDK source: several documented base-UI primitives were not exported from the package root, and a few source doc-comments were stale (and were the origin of doc errors). ## π Implementation details **Missing package-root exports** (documented components/hooks that failed to import from `stream-chat-react-native`): - `components/ui/index.ts` β export `Input`, `SpeedSettingsButton`, `GiphyChip` - `components/index.ts` β export `EmptyList`, `EmptySearchResult`, `SearchInput`, `SelectionCircle` (were in `UIComponents/index.ts` but never re-exported, since `components/index.ts` cherry-picks `UIComponents/*` rather than re-exporting the barrel), and `useCooldownRemaining` **Stale source doc-comments corrected** (each caused a corresponding docs bug): - `contexts/pollContext/pollContext.tsx` β `usePollContext` error message referenced a non-existent `useCreatePollContext` hook - `contexts/attachmentPickerContext/AttachmentPickerContext.tsx` β JSDoc referenced a non-existent `setBottomInset` setter (the context exposes only `topInset`/`bottomInset` values) - `components/Chat/Chat.tsx` β `useNativeMultipartUpload` JSDoc `@default true` β `@default false` (matches the runtime default) - `contexts/channelsContext/ChannelsContext.tsx` β `numberOfSkeletons` comment default `6` β `8` (matches the runtime default in `ChannelList.tsx`) ## π¨ UI Changes None β export additions and doc-comment corrections only. No runtime/UI behavior change. ## π§ͺ Testing - `tsc --noEmit -p package/tsconfig.json` passes clean (0 errors) β confirms all new exports resolve without name collisions. - No behavior changes; the exported symbols were already used internally. ## βοΈ Checklist - [ ] I have signed the [Stream CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) (required) - [x] PR targets the `develop` branch - [x] Documentation is updated (companion docs PR: GetStream/docs-content#1435) - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android
## π― Goal Allow providing custom icons Docs: GetStream/docs-content#1438 Fixes #3449 ## π Implementation details <!-- Provide a description of the implementation --> ## π¨ UI Changes <!-- Add relevant screenshots --> <details> <summary>iOS</summary> <table> <thead> <tr> <td>Before</td> <td>After</td> </tr> </thead> <tbody> <tr> <td> <!--<img src="" /> --> </td> <td> <!--<img src="" /> --> </td> </tr> </tbody> </table> </details> <details> <summary>Android</summary> <table> <thead> <tr> <td>Before</td> <td>After</td> </tr> </thead> <tbody> <tr> <td> <!--<img src="" /> --> </td> <td> <!--<img src="" /> --> </td> </tr> </tbody> </table> </details> ## π§ͺ Testing <!-- Explain how this change can be tested (or why it can't be tested) --> ## βοΈ Checklist - [ ] I have signed the [Stream CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) (required) - [ ] PR targets the `develop` branch - [ ] Documentation is updated - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android
## π― Goal
<!-- Describe why we are making this change -->
## π Implementation details
<!-- Provide a description of the implementation -->
## π¨ UI Changes
<!-- Add relevant screenshots -->
<details>
<summary>iOS</summary>
<table>
<thead>
<tr>
<td>Before</td>
<td>After</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<!--<img src="" /> -->
</td>
<td>
<!--<img src="" /> -->
</td>
</tr>
</tbody>
</table>
</details>
<details>
<summary>Android</summary>
<table>
<thead>
<tr>
<td>Before</td>
<td>After</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<!--<img src="" /> -->
</td>
<td>
<!--<img src="" /> -->
</td>
</tr>
</tbody>
</table>
</details>
## π§ͺ Testing
<!-- Explain how this change can be tested (or why it can't be tested)
-->
## βοΈ Checklist
- [ ] I have signed the [Stream
CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform)
(required)
- [ ] PR targets the `develop` branch
- [ ] Documentation is updated
- [ ] New code is tested in main example apps, including all possible
scenarios
- [ ] SampleApp iOS and Android
- [ ] Expo iOS and Android
Next releasesv9.7.09.7.0 (2026-07-17)Bug Fixes
Featuressampleapp@v4.14.24.14.2 (2026-07-17) |
Contributor
SDK Size
|
Contributor
|
π This PR is included in version 9.7.0 π The release is available on:
Your semantic-release bot π¦π |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
π― Goal
π Implementation details
π¨ UI Changes
iOS
Android
π§ͺ Testing
βοΈ Checklist
developbranch