Repository navigation
Next Release - #3899
Merged
Merged
Next Release#3899
Conversation
## π― Goal This PR bumps `react-native-gesture-handler` to version `3.4` on our sample apps. It resolves an extremely critical issue with the library's `ReanimatedSwipable` component that would happen when it is rendered inside of any type of `ScrollView`, essentially hijacking the native swipe gestures entirely (making scrolling virtually impossible). The issue was introduced in version `3.3` of RNGH (I believe), to which we bumped with the `react-native` upgrade to `0.88`. [Here](software-mansion/react-native-gesture-handler#4581) is the upstream issue for reference. ## π 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
fix: channel list swipable stuck state after unmount
## π― Goal Make commits fast. The pre-commit hook ran the full `yarn lint` on every commit, so even a README-only commit took ~20s, and ~40s when anything failed (it then ran a full `lint-fix` too). It also failed with `env: python: No such file or directory` in GUI git clients (e.g. Fork) that don't have pyenv shims on `PATH`. ## π Implementation details - `dotgit/hooks/pre-commit-format.sh` now checks only the staged files: - Prettier on the staged files (`--ignore-unknown`; `.prettierignore` still applies) - ESLint on the staged JS/TS files, with `--cache` (`node_modules/.cache/eslint/`) and `--no-warn-ignored` - `validate-translations` and `validate-entry-isolation` only when something under `package/` is staged (both only read the SDK package) - on failure, fixes just those files and aborts with the same message as before - `dotgit/hooks/pre-commit-reject-binaries.py`: shebang `python` β `python3` (present on macOS via the Xcode CLT and on current Linux distros) - `AGENTS.md`: documents what the hook checks CI is unchanged: `check-pr.yml` still runs the full `yarn lint`. Known limitation, same as before: the hook checks the working-tree version of each staged file, so with partial staging the unstaged lines are checked too. ## π¨ UI Changes None. ## π§ͺ Testing Ran the hook against a temporary index (`GIT_INDEX_FILE`) for each case: | Case | Before | After | | -------------------------------------- | --------------- | ------------------------------------- | | Nothing staged | ~20s | 0.2s | | README only | ~20s | 0.3s | | TS file in `package/` (validators run) | ~20s | 2.9s (2.1s with a warm ESLint cache) | | Prettier violation | ~40s (full fix) | 0.9s, file auto-fixed, commit aborted | | ESLint warning (unused variable) | ~40s | 1.6s, reported, commit aborted | `shellcheck` is clean, and the script stays bash 3.2-compatible (macOS default). This PR's own commit went through both hooks and commitlint in 0.85s. ## βοΈ 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 - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android
## π― Goal Require a Linear ticket for every PR opened by Claude Code, as already done in stream-video-js (GetStream/stream-video-js#2464). Ticket: https://linear.app/stream/issue/REACT-1188 ## π Implementation details - Adds `.claude/hooks/require-linear-ticket.sh`, a PreToolUse hook that blocks `gh pr create` and MCP PR-creation tools unless a `REACT-β¦`, `RN-β¦`, `CHAT-β¦` or `VID-β¦` ID is in the PR title or PR body. The branch name does not count. Needs only bash, jq and curl; every other tool call exits 0. - For `gh pr create`, only the text from the `gh pr create` invocation onward is scanned, and `--head`/`--base`/`--repo` values are ignored. `--body-file` contents are included. For MCP tools, only `title` and `body` are read. - If `LINEAR_API_KEY` is set, the ticket's existence is checked via Linear GraphQL. Only a "not found" response blocks; auth or network errors warn and allow. Team keys can be overridden with `LINEAR_TEAM_KEYS`. - Registered in a new project `.claude/settings.json`; the workflow is documented under "Pull requests" in `AGENTS.md` (new tickets go in the `RN` team). ## π¨ UI Changes None. ## π§ͺ Testing Pipe-tested the hook: missing ticket, ID only in the branch name or `--head`, and IDs from other teams (e.g. `FEEDS-β¦`) exit 2; `REACT`/`RN`/`CHAT`/`VID` IDs in the title or body exit 0; unrelated commands exit 0. ## βοΈ Checklist - [x] 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 - [ ] New code is tested in main example apps, including all possible scenarios (repository tooling only, no app changes)
## π― Goal
This PR bumps `stream-chat-js` to version `9.54.1` in order to consume
the WS lifecycle fix it contains.
## π 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 This PR handles an unfortunate crash that was introduced with poll optimistic votes. Since we were not properly handling the case of having an empty array (as server-side this never happens but rather the entry is removed from the object) it would result in an uncaught error instead of just resolving gracefully. ## π Implementation details Linear ticket: https://linear.app/stream/issue/REACT-1415/uncaught-error-when-removing-the-last-vote-in-a-poll <!-- 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 Linear ticket: https://linear.app/stream/issue/RN-469/edits-drop-custom-attachments-from-messages This PR fixes an issue where editing a message would cause custom attachments specifically (or well any attachments that might not require uploads for example) to be removed instead. ## π 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
szuperaz
approved these changes
Oct 27, 2026
Contributor
SDK Size
|
Next releasesv9.10.29.10.2 (2026-10-27)Bug Fixes
sampleapp@v4.16.24.16.2 (2026-10-27)Bug Fixes |
Contributor
|
π This PR is included in version 9.10.2 π 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