Repository navigation
fix(sync): protect native edits and connect Android realtime Pull - #830
Merged
Merged
Conversation
6 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Android native synchronization could erase an offline edit after remote deletion, accept an invalid/late ACK, or turn sequential edits into self-conflicts. Native runtime also did not wake Sync V2 Pull on existing WebSocket notices. This PR protects durable writes and connects the existing notification transport to the native engine.
Changes:
Validation:
This remains Draft because overall production acceptance is incomplete: browser transactional Local-first, native knowledge-tree offline creation, parent incremental deletion with protected descendants, long-term no-base tombstones, complete mobile editor/conflict/attachment/revocation scenarios, WAN tail latency, Docker/NAS and other-platform package acceptance remain open. Issue #829 has an existing authorized remote fallback in the base; this PR does not claim its original tree/offline path is fully resolved. No current sync-related native crash stack was reproduced. No schema migration, new dependency, main modification, force-push or release.
Evidence and full coverage matrix: docs/sync-v2-reliability-audit.md, docs/sync-v2-reliability-validation.md, docs/sync-v2-reliability.en.md and docs/test-results/sync-v2-android-2026-10-11.json.
References: #821, #829.
CI follow-up: At 6b4c594, Data Consistency Contract, Android Local-first, Knowledge Tree, Data Protection and Docker production-image/plugin-smoke checks passed. Voice Memo's old mock omitted applied.version and the queued-descendant rebase; commit 856d42b corrects only the fixture and evidence, with 3/3 locally and the full targeted 121/121 suite. I18n Release CI reports 16 missing encryptedConversion keys; the same test fails on base d95d378 (23 passed, 1 failed). Latest-head CI is pending and must be read at its own SHA. Docker/NAS full-sync acceptance remains incomplete.