Skip to content

feat(sync): store profile links, kept batches and profile names - #1630

Merged
2 commits merged into
mainfrom
feat/sync2-link-storage
Nov 1, 2026
Merged

2 commits merged into
mainfrom
feat/sync2-link-storage

Conversation

@A-EDev

@A-EDev A-EDev commented Oct 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • LinkedDatabase 5 to 6 as an AutoMigration: profile links (one profile per link), batches kept for profiles that aren't active (their content in files under linked_store/kept, as a batch can be larger than a row can be read back), the profiles collection's names, and per-link read positions.
  • What was sent is now keyed by link. The migration fills the group's link into existing rows and maps that link to Default, so nothing is sent again after the upgrade.

Related issue

Part of #1039 (Phase 6 of FLOW-SYNC/2).

Change type

  • Bug fix
  • Feature
  • Refactor or maintenance
  • Build, packaging, or CI
  • Documentation

Validation

All Gradle runs used --offline -Dorg.gradle.jvmargs="-Xmx4096m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8 -Djava.net.preferIPv6Addresses=true".

  • ./gradlew :app:assembleGithubDebug: not run on this branch; the top of the stack builds it.
  • ./gradlew :app:testGithubDebugUnitTest: 4722 tests, 0 failures, 46 skipped, including LinkedDatabaseMigrationTest, which opens a version 5 file built from the exported schema.
  • I ran any additional flavor-specific build or test tasks affected by this change: testFossDebugUnitTest 4679 tests, 0 failures, 46 skipped; ktlintCheck, spotlessCheck and lintGithubRelease pass; assembleFossRelease builds, FOSS arm64-v8a APK 21,787,356 B (budget 29,500,000 B).
  • I manually tested the affected behavior on an Android device or emulator.

Test device and Android version:

Risk and compatibility

LinkedDatabase only (the main Room schema is untouched): version 6 with an AutoMigration and schema 6.json. The sent table is rebuilt with link in its primary key.

  • The change does not introduce secrets, private data, or unexpected telemetry.
  • New user-facing text uses Android string resources.
  • Dependency and lockfile changes are intentional and limited to this PR.
  • Room schema changes include the required version bump and migration, or this PR does not change the Room schema.
  • Breaking changes and upgrade steps are clearly documented.

@A-EDev
A-EDev changed the base branch from refactor/sync2-device-state to main November 1, 2026 20:42
@A-EDev A-EDev closed this pull request by merging all changes into main in b7d3a0e Nov 1, 2026
@A-EDev
A-EDev deleted the feat/sync2-link-storage branch November 1, 2026 22:39
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