Skip to content

Fix Cloud uploads, sign-in persistence, and sync refresh - #22

Merged
adibhanna merged 3 commits into
release/1.9.9from
fix/cloud-live-regressions
Sep 16, 2026
Merged

adibhanna merged 3 commits into
release/1.9.9from
fix/cloud-live-regressions

Conversation

@adibhanna

Copy link
Copy Markdown
Contributor

Cloud uploads could send empty bodies on iOS, long publications could time out after 30 seconds, and restarting the app could lose a saved Cloud sign-in. This fixes the native adapters, recovers credentials stored under the old Secure Storage prefix, and adopts the shared 2.50.0 publishing, conflict, and restore fixes from ZenNotes/zennotes#774.

  • Preserve signed upload headers and supply Content-Type when absent so Capacitor sends the binary body; forward the intended timeout through both native timeout fields.
  • Serialize Secure Storage initialization and migrate legacy credential/pending-sign-in records before use. Canonical credentials win, shared validation still applies, and logout cannot resurrect a legacy credential.
  • Expose the metadata-only remote change probe so incoming changes refresh automatically without scanning local files or fetching attachments during the probe.

Validation: 93 tests pass; TypeScript, production web build, Capacitor sync, and signed iOS simulator build pass. Live native testing against zennotes.org covered sign-in/restart, automatic bidirectional sync, exact-hash 8.1 MB and 10,000,000-byte uploads, oversized-file recovery, publishing and updating the same URL (including Cloud Settings), offline conflict resolution, backup, restore, and unpublish. The final rebuild retained sign-in and received an Android-initiated restore: all eight files matched the checkpoint across iPhone, Android, and desktop, and a newer file disappeared on all three. Disposable Cloud resources were removed afterward.

Targets the existing release/1.9.9 baseline so this PR contains only the three Cloud fix commits. Shared source is pinned to 104416f560bb9e709620cabe9e1f225306f7a4ea. Native validation used a simulator; five-minute timeout forwarding is tested without deliberately slowing the live service for five minutes.

@adibhanna
adibhanna merged commit 100a378 into release/1.9.9 Sep 16, 2026
1 check passed
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.

1 participant