Skip to content

fix(ios): sync File Provider credentials on session restore and bump to 1.11.1 - #576

Open
terrerox wants to merge 2 commits into
release-1.12.1from
release-1.11.1
Open

terrerox wants to merge 2 commits into
release-1.12.1from
release-1.11.1

Conversation

@terrerox

@terrerox terrerox commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Users updating from a pre-File-Provider version with an active session never got Files.app configured until they logged out and back in:

  • SharedAuthKeychain: read tokens stored in chunks by SecureStore (large JWTs never exist under the plain key), stop wiping the shared items when the private read fails (logout clears them explicitly), and write in place (update/add) so the extension never hits the delete-then-add gap.
  • silentSignInThunk now pushes native credentials on session restore, so the domain is registered and stabilized on first launch after an update; devices already broken self-heal without re-login.
  • Bump version to 1.11.1 (Android versionCode 131) across package.json, build.gradle, strings.xml, Info.plist and Expo.plist.

…to 1.11.1

Users updating from a pre-File-Provider version with an active session never
got Files.app configured until they logged out and back in:

- SharedAuthKeychain: read tokens stored in chunks by SecureStore (large JWTs
  never exist under the plain key), stop wiping the shared items when the
  private read fails (logout clears them explicitly), and write in place
  (update/add) so the extension never hits the delete-then-add gap.
- silentSignInThunk now pushes native credentials on session restore, so the
  domain is registered and stabilized on first launch after an update; devices
  already broken self-heal without re-login.
- Bump version to 1.11.1 (Android versionCode 131) across package.json,
  build.gradle, strings.xml, Info.plist and Expo.plist.
@terrerox
terrerox requested a review from CandelR September 1, 2026 03:35
Base automatically changed from release-1.9.1 to master September 10, 2026 05:35
@CandelR
CandelR changed the base branch from master to feature/release-1.11.1 September 28, 2026 13:23
newToken: credentials.photosToken,
});

await syncNativeCredentials(credentials.photosToken, credentials.user);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This won't sync for sessions from 1.10.x or older: syncNativeCredentials returns early at line 46 because rootFolderUuid is only set on sign-in since 1.11.0. rootFolderId is already the root folder uuid. Can we use it at lines 46 and 56?

});

it('when the logout completes, then clearCredentials is invoked', async () => {
test('when an existing session is restored at startup, then the wrapper receives the stored token', async () => {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test user (line 73) has rootFolderUuid, so this passes but doesn't cover the real case. Can we use a user with only rootFolderId, like a session from an older version?

@terrerox terrerox self-assigned this Sep 30, 2026
@terrerox
terrerox requested a review from CandelR September 30, 2026 04:30
@sonarqubecloud

Copy link
Copy Markdown

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants