Skip to content

Releases: oskarsss/android

Nextcloud 35.0.1 recursive sync test.3

Pre-release

Choose a tag to compare

This is the updated APK containing the reviewed Sync/Sync all handling and cleanup from draft PR #1, based on stable 35.0.1. It supersedes test.2.

Install over your existing QA test app. The app ID and signing key match test.2, and version code 350000193 is higher. An in-place Android 15 emulator update preserved login, notification/storage permissions, all 3,161 cached Media entries, and existing downloads.

The bounded descendant queue is now selected explicitly for ongoing sync. Manual Sync/Sync all retain their service behavior and full-scan flag. This build also propagates inline download failures, checks ongoing constraints between files, clears operation state on reuse, and saves completion status against fresh folder metadata.

All 23 stable regression tests passed. APK assembly, signature verification, Kotlin formatting, and Detekt passed. QA lint flags one existing launcher-icon resource configuration error; details and remaining live-test limits are in verification.md. The packaged DEX confirms the new ongoing-sync factory and constraint checks are included.

The release tag points to patched source, and test-build.init.gradle reproduces the test version. This is a separate QA app from production Nextcloud. Test.3 received regression tests and an update smoke test; full-library and live manual transfer validation remain to be done. The completed download metrics published with test.2 remain observations of that earlier build.

AI assistance: Codex (GPT-6.1-Sol) prepared the patch, tests, APK, and verification. Human review, DCO certification, and a contributor-written upstream description are pending.

35.0.1 recursive sync test 2

Pre-release

Choose a tag to compare

@oskarsss oskarsss released this 07 Oct 19:50
e6a4ade

Superseded by test.3, including the reviewed Sync/Sync all handling and cleanup.

Experimental Nextcloud QA APK based on Android client 35.0.1.

This replaces test.1. Ongoing recursive sync now processes a folder queue on its background worker and downloads missing files one at a time. It visits cached descendants even when parent ETags are unchanged, persists new entries before visiting children, propagates descendant failures/cancellation, and keeps long periodic scans in foreground work. Timing and failure diagnostics use the SyncTrace marker in the app logs.

Update: install the APK over the existing Nextcloud QA test build. The application ID and signing certificate match test.1, preserving its login, permissions, and sync selections. It is a separate app from production Nextcloud.

Completed live validation: the Android 15 emulator retained its login, permissions, and Media selection. The 10.9 GB scan finished in 44m 04.452s, adding 1,213 files (6.50 GB) and reaching 1,540 saved files. Every new file matched its expected server size; three deep-file samples also matched fresh server downloads by SHA-256. Captured intervals contained no child service commands or queued folder-download workers, and the worker continued after returning to the home screen. Three zero-byte exceptions already had local paths in the pre-update cache; their origin is unresolved. See live-completed-scan.json, server-size-verification.json, and review-verification.md.

All nine queue/traversal tests pass on this stable build. Twenty selected tests pass on the master patch. Android lint reports no issues; formatting passes. Detekt and SpotBugs retain repository findings outside the changed behavior, documented in verification notes.

Patched source: use the attached source archive or apply recursive-sync.patch to stable 35.0.1. The release tag points to the original stable commit, so GitHub's automatic source archives do not contain this patch. recursive-sync-master.patch is the version prepared against upstream master.

AI assistance: Codex (gpt-6.1-sol) investigated the issue, implemented the patch and tests, built the APK, and ran the verification. Upstream submission requires human code review, DCO certification, and a description written by the contributor.

Review draft: queue recursive ongoing folder synchronization. The APK contains the live-tested test.2 implementation. The draft and recursive-sync-master-reviewed.patch include subsequent cleanup, including actual inline-transfer error results, preservation of manual dispatch, current constraint checks, and fresh completion metadata. All 34 selected master tests pass; final lint and formatting are clean, with repository-wide static-analysis limits documented in review-verification.md.

35.0.1 recursive sync test 1

Pre-release

Choose a tag to compare

@oskarsss oskarsss released this 07 Oct 10:22
e6a4ade

Superseded by recursive sync test.2. Test.1 retained a backlog of child services and download workers; use test.2 for the serialized queue fix.

Experimental APK based on Nextcloud Android 35.0.1, with a focused fix for traversal of unchanged child folders during ongoing folder sync.

Install the attached APK as a separate Nextcloud QA app. Your existing Nextcloud app remains installed. Log in, enable internal two-way sync, and enable Sync on a parent folder without first opening its descendants. Verify that the deepest files exist in Android's Files app and open while offline.

The source patch and verification notes are attached. This build is intended for testing and has not yet been verified against your Nextcloud server. The existing green folder indicator still checks direct files only.

AI assistance: Codex (gpt-6.1-sol) investigated the code, prepared the patch and regression tests, and built this test artifact.

All six new regression tests pass on this build; 17 selected tests pass on the master patch. Android lint, Kotlin formatting, and Detekt pass. The debug-signed APK installs and opens to the login screen on Android 15. SpotBugs reports existing findings outside the modified methods; see verification notes.

Patched source: use the attached Nextcloud-35.0.1-recursive-sync-source.tar.gz or apply recursive-sync.patch to stable 35.0.1. The release tag points to the original 35.0.1 commit; GitHub's automatic source archives do not include the patch. An upstream contribution still requires human review and DCO sign-off.