Skip to content

Next Release#3735

Merged
isekovanic merged 9 commits into
mainfrom
develop
Jul 17, 2026
Merged

Next Release#3735
isekovanic merged 9 commits into
mainfrom
develop

Conversation

@isekovanic

Copy link
Copy Markdown
Contributor

🎯 Goal

πŸ›  Implementation details

🎨 UI Changes

iOS
Before After
Android
Before After

πŸ§ͺ Testing

β˜‘οΈ Checklist

  • I have signed the Stream CLA (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

isekovanic and others added 9 commits July 9, 2026 23:40
## 🎯 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
@isekovanic
isekovanic requested review from oliverlaz and szuperaz July 17, 2026 14:56
@github-actions

Copy link
Copy Markdown

Next releases

v9.7.0

9.7.0 (2026-07-17)

Bug Fixes

Features

sampleapp@v4.14.2

4.14.2 (2026-07-17)

@Stream-SDK-Bot

Copy link
Copy Markdown
Contributor

SDK Size

title develop branch diff status
js_bundle_size 1989 KB 1989 KB 0 B 🟒

@isekovanic
isekovanic merged commit c36f639 into main Jul 17, 2026
16 checks passed
@stream-ci-bot

Copy link
Copy Markdown
Contributor

πŸŽ‰ This PR is included in version 9.7.0 πŸŽ‰

The release is available on:

Your semantic-release bot πŸ“¦πŸš€

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants