Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
4bf4b21
chore: replace react-native-restart with expo reloadAppAsync
diegolmello Sep 14, 2026
b36586c
chore: replace react-native-background-timer with setInterval
diegolmello Sep 14, 2026
4b1f58b
chore: bump react-native-localize to 3.7.0
diegolmello Sep 14, 2026
22c1182
chore: replace react-native-file-viewer with expo-quick-look
diegolmello Sep 14, 2026
3230b78
chore: migrate from expo-av to expo-audio and expo-video (#6719)
diegolmello Sep 15, 2026
6978e70
chore: bump react-native-mmkv and react-native-nitro-modules
OtavioStasiak Sep 15, 2026
f96be07
chore: drop dead react-native-mmkv patch and tighten its jest mock
OtavioStasiak Sep 15, 2026
559b2f7
chore: RN 0.86 / Expo 57 dependencies, toolchain and patches (#7693)
diegolmello Sep 15, 2026
5219014
fix: adapt app code to React Native 0.86 and Expo 57 (#7694)
diegolmello Sep 15, 2026
998957d
fix(ios): support React Native 0.86 and Expo 57 (#7696)
diegolmello Sep 16, 2026
0e8a91b
fix: update Android build for React Native 0.86 (#7695)
diegolmello Sep 16, 2026
7498ec7
Merge develop into React Native 0.86 upgrade
diegolmello Sep 16, 2026
5070263
ci: make TypeScript check blocking again
diegolmello Sep 16, 2026
a12e23b
fix: restore default submit behavior on login email field
diegolmello Sep 16, 2026
d0fcbad
fix: keep test identifiers on iOS accessibility elements
diegolmello Sep 16, 2026
f65faa6
fix: expose test identifiers on accessible elements
diegolmello Sep 16, 2026
df6a67a
fix: keep a single test identifier per element
diegolmello Sep 16, 2026
a2d8ba2
fix: remove OrSeparator from accessibility focus chain
diegolmello Sep 16, 2026
6c6e7a2
chore(ios): re-enable prebuilt React-Core and Hermes V1 (#7698)
diegolmello Sep 17, 2026
c770155
fix(e2e): anchor keyboard navigation login on focus (#7703)
diegolmello Sep 17, 2026
e5b26d4
chore(deps): bump reanimated to 4.6.0 and worklets to 0.12.2 (#7706)
diegolmello Sep 18, 2026
18d5f9d
chore(deps): bump react-native-screens to 4.28.0 (#7709)
diegolmello Sep 18, 2026
da56123
chore(deps): bump @react-navigation family (#7710)
diegolmello Sep 18, 2026
29c926f
chore(deps): bump react-native-safe-area-context to 5.10.0 (#7711)
diegolmello Sep 18, 2026
d8be466
Merge origin/develop into React Native 0.86 upgrade
diegolmello Sep 21, 2026
5c0c03a
fix(ios): adopt UIScene lifecycle for iOS 27
diegolmello Sep 22, 2026
2f86dc4
fix(android): stop gesture-handler buttons hijacking hardware Enter/D…
diegolmello Sep 22, 2026
c3edcf9
feat(ios): adopt the system navigation bar as the stack default
diegolmello Sep 17, 2026
1dd4309
feat(ios): native room title and body focus anchor
diegolmello Sep 17, 2026
3a5436f
feat(ios): rooms list on the native navigation bar
diegolmello Sep 17, 2026
03040e8
feat(ios): cap room header bar items with an overflow menu
diegolmello Sep 17, 2026
628c953
feat(ios): system search bar on the rooms list
diegolmello Sep 17, 2026
3359a50
feat(ios): workspaces row in the phone drawer
diegolmello Sep 17, 2026
52864c6
feat(ios): system search bar across list screens
diegolmello Sep 17, 2026
0c8b84e
test(maestro): retarget header selectors for the native iOS bar
diegolmello Sep 17, 2026
af40412
test(maestro): finish header selector retargeting for the native iOS bar
diegolmello Sep 17, 2026
f2156d6
test(maestro): harden native bar selectors after review
diegolmello Sep 17, 2026
59e8d39
fix(ios): inset rooms list under the native navigation bar
diegolmello Sep 18, 2026
40e64ea
fix(ios): restore translucent gray native header and collapse search bar
diegolmello Sep 18, 2026
d9a2bc7
feat(ios): move rooms list search to the bottom toolbar
diegolmello Sep 18, 2026
143ebb3
fix(ios): make native headers opaque and drop the large title
diegolmello Sep 18, 2026
388d70b
commit search
diegolmello Sep 18, 2026
b9de573
fix(ios): restore the legacy title headers under the native bar
diegolmello Sep 18, 2026
710e4d3
fix(ios): remove the workspaces entry from the drawer
diegolmello Sep 18, 2026
349ddbb
fix(ios): show native title with connection state text on rooms list …
diegolmello Sep 18, 2026
bccdfdb
chore(ios): revert xcode project churn from local build
diegolmello Sep 18, 2026
0e8fbce
feat(ios): add headerSubtitle native-stack option via patches
diegolmello Sep 18, 2026
5f519d2
fix(android): add no-op setSubtitle override to screens header config
diegolmello Sep 18, 2026
a1738d9
feat(ios): use native header subtitle for rooms list connection state
diegolmello Sep 18, 2026
3a360f8
feat(rooms): use native iOS room headers
diegolmello Sep 21, 2026
8b4ddd4
fix local navigation package resolution
diegolmello Sep 21, 2026
c589eb6
use local libs
diegolmello Sep 21, 2026
bcb8d53
chore: regenerate native-stack and react-native-screens patches from …
diegolmello Sep 22, 2026
a48a9f2
chore: update Podfile.lock after pod install
diegolmello Sep 22, 2026
1d6a2a6
feat(header): add native header item helpers for outside-stack screens
diegolmello Sep 22, 2026
8ee6f29
refactor(header): consolidate room header right buttons into shared c…
diegolmello Sep 22, 2026
a59cf67
fix(test): match both Android back-button testIDs in go-back helper
diegolmello Sep 23, 2026
8946b90
fix(test): match iOS native header items by label instead of testID
diegolmello Sep 23, 2026
0bed1b0
fix(test): migrate remaining Maestro flows to iOS-safe header assertions
diegolmello Sep 23, 2026
e8b8cfb
fix(test): match iOS back button by label instead of testID
diegolmello Sep 23, 2026
bfe70e9
fix(ios): render Liquid Glass on native headers
diegolmello Sep 23, 2026
e991cf0
feat(ios): use app icons on native header buttons
diegolmello Sep 23, 2026
983c6f6
fix(ios): load local header icons synchronously to avoid title flash
diegolmello Sep 23, 2026
f1f0180
fix(a11y): close drawer when navigating to the focused sidebar route …
diegolmello Sep 23, 2026
35729e0
fix(ios): render room title icon with the title on first frame
diegolmello Sep 23, 2026
07cfcd6
fix(ios): size room header icons to the title font and restore title/…
diegolmello Sep 23, 2026
0ae44ec
fix(ios): keep drawer content below the status bar
diegolmello Sep 23, 2026
bd8884b
feat(ios): open room header overflow actions as a native menu
diegolmello Sep 23, 2026
b2ea3b2
fix(ios): match custom header icon size to system bar icons
diegolmello Sep 23, 2026
63ebbfd
feat(ios): open room actions from the native room title
diegolmello Sep 23, 2026
12348cb
feat(ios): open workspaces from the rooms list title
diegolmello Sep 23, 2026
a7331d3
chore(ios): patch screens and native-stack for title press and icon l…
diegolmello Sep 23, 2026
e30bf6c
feat(ios): use the native back button in the room header
diegolmello Sep 23, 2026
15b785c
fix(ios): match header icon spacing to system bar items
diegolmello Sep 23, 2026
5f46f5b
fix(ios): guard room header title before formatting
diegolmello Sep 24, 2026
c99d961
feat(ios): present tablet modals as native form sheets
diegolmello Sep 24, 2026
4c81e3f
fix(ios): show the room back button only when it can go back
diegolmello Sep 24, 2026
42f4f81
feat(ios): use the native glass header for the tablet rooms list
diegolmello Sep 24, 2026
b8220d5
fix(ios): dismiss the tablet rooms search when a room opens
diegolmello Sep 24, 2026
397cf92
fix(ios): use native room header items on tablet
diegolmello Sep 24, 2026
8b90103
fix(ios): let the tablet rooms search be cancelled
diegolmello Sep 24, 2026
e4a83a3
fix(ios): show the room avatar in the tablet room header
diegolmello Sep 24, 2026
c9aa277
fix(ios): tint native headers with the theme surface color
diegolmello Sep 24, 2026
e4bbb89
refactor(ios): gate native headers on iOS 26 and drop dead header code
diegolmello Sep 24, 2026
c9ab16e
fix(ios): restore rooms list large title and bottom search bar on iPhone
diegolmello Sep 24, 2026
c8f9132
fix(ios): merge header right buttons and fix threads list header
diegolmello Sep 24, 2026
94110c8
chore(ios): replace app icon with Icon Composer icon
diegolmello Sep 24, 2026
96e535d
fix(test): restore sequential Android back taps in go-back helper
diegolmello Sep 25, 2026
75d0303
fix(test): pop to the rooms list before navigating to a room
diegolmello Sep 25, 2026
e7a9d5c
ci(ios): restore Xcode version pin
diegolmello Sep 25, 2026
1f12a34
Merge remote-tracking branch 'origin/diegolmello/native-1561-rn-upgra…
diegolmello Sep 25, 2026
e96f669
ci(ios): pin Xcode 26.6
diegolmello Sep 25, 2026
6453b20
feat(ios): use Expo UI List for List.Container (#7721)
diegolmello Sep 25, 2026
083f64c
fix(ios): scope liquid glass input to StatusView and fix its borders
diegolmello Sep 25, 2026
0a5f526
fix(ios): align rooms list large title and match its background
diegolmello Sep 25, 2026
f9acdf0
feat(ios): default avatar border radius to 8 on iOS 26
diegolmello Sep 25, 2026
48af598
fix(ios): add vertical padding to room actions info row on iOS 26
diegolmello Sep 25, 2026
80d9118
fix(ios): use native header search and list indicators on members, di…
diegolmello Sep 25, 2026
f60d759
fix(ios): drop large titles and align list screens with native headers
diegolmello Sep 25, 2026
079fc6f
chore(ios): update Xcode project
diegolmello Sep 25, 2026
3941663
fix(ios): match room back chevron weight to the system back button
diegolmello Sep 25, 2026
b320948
ci: add preloadNativeHeaderIcons saga to test map
diegolmello Sep 25, 2026
a271f00
perf(ios): render directory with FlashList and a React Native list row
diegolmello Sep 28, 2026
c1ac40b
refactor(ios): split list row trailing action and build header items …
diegolmello Sep 28, 2026
c2d0e03
fix(ios): match room actions info row disclosure and background to na…
diegolmello Sep 28, 2026
459b410
fix(ios): show connection state in DM header and share room type icon…
diegolmello Sep 28, 2026
c81a519
fix(ios): use Icon Composer app icon for the Watch target
diegolmello Sep 28, 2026
a94e0f1
fix(ios): present modals as native page sheets
diegolmello Sep 28, 2026
989de54
chore: tidy RN 0.86 upgrade leftovers
diegolmello Sep 28, 2026
681d520
chore(deps): upgrade react-native-gesture-handler to 3.3.0 (#7726)
diegolmello Sep 29, 2026
1c6bd41
Merge branch 'develop' into diegolmello/native-1561-rn-upgrade
diegolmello Sep 29, 2026
7ae1e21
Merge remote-tracking branch 'origin/diegolmello/native-1561-rn-upgra…
diegolmello Sep 29, 2026
e383ca4
test: refresh audio button snapshots after gesture handler upgrade
diegolmello Sep 29, 2026
e1fe84c
fix: restore React Native Gradle plugin composite build
diegolmello Sep 29, 2026
56ab7b2
fix(ios): render sidebar sections inline in iPad settings
diegolmello Sep 29, 2026
426ed44
Merge remote-tracking branch 'origin/diegolmello/native-1561-rn-upgra…
diegolmello Sep 29, 2026
b95a70b
fix(ios): keep stacked search bars visible when lists scroll
diegolmello Sep 29, 2026
d8c47f4
test(ios): tap the room header title by testID to open room actions
diegolmello Sep 29, 2026
169272b
test(ios): adapt e2e helpers to the native header
diegolmello Sep 29, 2026
55df127
test(ios): open the servers list from the rooms list title by testID
diegolmello Sep 29, 2026
59679f1
fix(ios): keep share list rows clear of the native header
diegolmello Sep 30, 2026
be3f2b1
Merge remote-tracking branch 'origin/develop' into diegolmello/native…
diegolmello Sep 30, 2026
bb7112d
refactor: group List and NativeListRow into components, utils and hoo…
diegolmello Sep 30, 2026
8a6af0e
refactor: dedupe native header and list helpers
diegolmello Sep 30, 2026
bae4bd8
refactor: drive header actions from one native/JS adapter
diegolmello Sep 30, 2026
750e4be
chore: merge develop into native-1561-rn-upgrade-6
diegolmello Oct 1, 2026
209f19c
refactor: move RoomView header hooks into leaf components
diegolmello Oct 1, 2026
01ed90b
refactor: tidy RoomView header leaves and cover render isolation
diegolmello Oct 1, 2026
1703929
Merge remote-tracking branch 'origin/diegolmello/native-1561-rn-upgra…
diegolmello Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
23 changes: 23 additions & 0 deletions .maestro/helpers/assert-room-title.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
appId: ${APP_ID}
name: Assert room title
tags:
- 'util'

---
- runFlow:
when:
platform: Android
commands:
- extendedWaitUntil:
visible:
id: 'room-view-title-${ROOM}'
timeout: 60000

- runFlow:
when:
platform: iOS
commands:
- extendedWaitUntil:
visible:
text: '${ROOM}'
timeout: 60000
18 changes: 18 additions & 0 deletions .maestro/helpers/clear-search-field.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
appId: ${APP_ID}
name: Clear search field
tags:
- 'util'
---
- runFlow:
when:
platform: iOS
commands:
- tapOn:
id: 'magnifyingglass'
- eraseText
- runFlow:
when:
platform: android
commands:
- tapOn:
id: clear-text-input
13 changes: 13 additions & 0 deletions .maestro/helpers/close-search.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
appId: ${APP_ID}
name: Close search
tags:
- 'util'
---
- runFlow:
when:
platform: iOS
visible:
text: 'Close'
commands:
- tapOn:
text: 'Close'
11 changes: 5 additions & 6 deletions .maestro/helpers/go-back.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,15 @@ tags:
---
- runFlow:
when:
visible:
id: 'custom-header-back'
platform: Android
commands:
- tapOn:
id: 'custom-header-back'
id: '(custom-)?header-back'

- runFlow:
when:
visible:
id: 'header-back'
platform: iOS
commands:
- tapOn:
id: 'header-back'
text: 'Back(, .*)?'
retryTapIfNoChange: true
Comment thread
coderabbitai[bot] marked this conversation as resolved.
10 changes: 10 additions & 0 deletions .maestro/helpers/logout.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,22 @@ tags:

- runFlow:
when:
platform: Android
visible:
id: 'rooms-list-view-sidebar'
commands:
- tapOn:
id: 'rooms-list-view-sidebar'

- runFlow:
when:
platform: iOS
visible:
text: 'Menu'
commands:
- tapOn:
text: 'Menu'

- runFlow:
when:
platform: Android
Expand Down
24 changes: 14 additions & 10 deletions .maestro/helpers/navigate-to-recent-room.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,23 @@ tags:
visible:
id: 'rooms-list-view'
timeout: 60000
- tapOn:
id: 'rooms-list-view-search'
- extendedWaitUntil:
visible:
id: 'rooms-list-view-search-input'
timeout: 60000
- runFlow:
when:
platform: android
commands:
- tapOn:
id: 'rooms-list-view-search'
- extendedWaitUntil:
visible:
id: 'rooms-list-view-search-input'
timeout: 60000
- extendedWaitUntil:
visible:
id: 'rooms-list-view-item-${ROOM}'
timeout: 60000
- tapOn:
id: 'rooms-list-view-item-${ROOM}'
- extendedWaitUntil:
visible:
id: 'room-view-title-${ROOM}'
timeout: 60000
- runFlow:
file: 'assert-room-title.yaml'
env:
ROOM: ${ROOM}
12 changes: 2 additions & 10 deletions .maestro/helpers/navigate-to-room-action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,5 @@ tags:
visible:
id: 'room-view'
timeout: 60000
- assertVisible:
id: 'room-header'
index: 0
- tapOn:
id: 'room-header'
index: 0
- extendedWaitUntil:
visible:
id: 'room-actions-view'
timeout: 60000

- runFlow: './open-room-actions.yaml'
9 changes: 5 additions & 4 deletions .maestro/helpers/navigate-to-room.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ tags:
- 'util'

---
- runFlow: './pop-to-rooms-list.yaml'
- waitForAnimationToEnd
- scrollUntilVisible:
element:
id: 'rooms-list-view-item-${ROOM}'
- waitForAnimationToEnd
- tapOn:
id: 'rooms-list-view-item-${ROOM}'
- extendedWaitUntil:
visible:
id: 'room-view-title-${ROOM}'
timeout: 60000
- runFlow:
file: 'assert-room-title.yaml'
env:
ROOM: ${ROOM}
18 changes: 18 additions & 0 deletions .maestro/helpers/open-room-actions.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
appId: ${APP_ID}
name: Open room actions
tags:
- 'util'

---
- extendedWaitUntil:
visible:
id: 'room-header'
timeout: 60000
- tapOn:
id: 'room-header'
index: 0
retryTapIfNoChange: true
- extendedWaitUntil:
visible:
id: 'room-actions-view'
timeout: 60000
12 changes: 12 additions & 0 deletions .maestro/helpers/open-servers-list.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
appId: ${APP_ID}
name: Open servers list
tags:
- 'util'

---
- extendedWaitUntil:
visible:
id: 'rooms-list-header-servers-list-button'
timeout: 60000
- tapOn:
id: 'rooms-list-header-servers-list-button'
30 changes: 30 additions & 0 deletions .maestro/helpers/pop-to-rooms-list.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
appId: ${APP_ID}
name: Pop to rooms list
tags:
- 'util'

---
- repeat:
times: 4
while:
notVisible:
id: 'rooms-list-view'
commands:
- runFlow:
when:
platform: Android
visible:
id: '(custom-)?header-back'
commands:
- tapOn:
id: '(custom-)?header-back'
- runFlow:
when:
platform: iOS
visible:
text: 'Back(, .*)?'
commands:
- tapOn:
text: 'Back(, .*)?'
- waitForAnimationToEnd:
timeout: 5000
25 changes: 19 additions & 6 deletions .maestro/helpers/search-room.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,31 @@ name: Search room
tags:
- 'util'
---
- runFlow: './pop-to-rooms-list.yaml'
- extendedWaitUntil:
visible:
id: 'rooms-list-view'
timeout: 60000
- waitForAnimationToEnd:
timeout: 5000
- tapOn:
id: 'rooms-list-view-search'
- tapOn:
id: 'rooms-list-view-search-input'
- inputText:
text: ${ROOM}
- runFlow:
when:
platform: iOS
commands:
- tapOn:
id: 'magnifyingglass'
- inputText:
text: ${ROOM}
- runFlow:
when:
platform: android
Comment thread
coderabbitai[bot] marked this conversation as resolved.
commands:
- tapOn:
id: 'rooms-list-view-search'
- tapOn:
id: 'rooms-list-view-search-input'
- inputText:
text: ${ROOM}
- extendedWaitUntil:
visible:
id: 'rooms-list-view-item-${ROOM}'
Expand Down
37 changes: 37 additions & 0 deletions .maestro/helpers/select-header-filter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
appId: ${APP_ID}
name: Select header filter
tags:
- 'util'
---
- runFlow:
when:
platform: iOS
commands:
- extendedWaitUntil:
visible:
text: 'Filter'
timeout: 60000
- tapOn:
text: 'Filter'
- extendedWaitUntil:
visible:
text: ${IOS_OPTION}
timeout: 60000
- tapOn:
text: ${IOS_OPTION}
- runFlow:
when:
platform: android
commands:
- extendedWaitUntil:
visible:
id: ${ANDROID_FILTER_ID}
timeout: 60000
- tapOn:
id: ${ANDROID_FILTER_ID}
- extendedWaitUntil:
visible:
id: ${ANDROID_OPTION_ID}
timeout: 60000
- tapOn:
id: ${ANDROID_OPTION_ID}
21 changes: 21 additions & 0 deletions .maestro/helpers/tap-header-item.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
appId: ${APP_ID}
name: Tap header item
tags:
- 'util'

---
# iOS native header items (unstable_headerLeftItems/RightItems) carry no accessibilityIdentifier,
# only a label. Android keeps the JS-rendered header, matched by testID as before.
- runFlow:
when:
platform: Android
commands:
- tapOn:
id: ${ANDROID_ID}

- runFlow:
when:
platform: iOS
commands:
- tapOn:
text: ${IOS_LABEL}
33 changes: 33 additions & 0 deletions .maestro/helpers/tap-search-field.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
appId: ${APP_ID}
name: Tap search field
tags:
- 'util'
---
- runFlow:
when:
platform: iOS
commands:
- runFlow:
when:
notVisible:
id: 'magnifyingglass'
commands:
- swipe:
start: 50%, 30%
end: 50%, 60%
- extendedWaitUntil:
visible:
id: 'magnifyingglass'
timeout: 60000
- tapOn:
id: 'magnifyingglass'
- runFlow:
when:
platform: android
commands:
- extendedWaitUntil:
visible:
id: ${SEARCH_ID}
timeout: 60000
- tapOn:
id: ${SEARCH_ID}
23 changes: 23 additions & 0 deletions .maestro/helpers/wait-header-item.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
appId: ${APP_ID}
name: Wait for header item
tags:
- 'util'

---
- runFlow:
when:
platform: Android
commands:
- extendedWaitUntil:
visible:
id: ${ANDROID_ID}
timeout: 60000

- runFlow:
when:
platform: iOS
commands:
- extendedWaitUntil:
visible:
text: ${IOS_LABEL}
timeout: 60000
Loading
Loading