Skip to content

Make incremental iCloud sync truly incremental - #47

Merged
bifrost-proxy merged 5 commits into
mainfrom
codex/incremental-sync-1.7.2
Aug 18, 2026
Merged

bifrost-proxy merged 5 commits into
mainfrom
codex/incremental-sync-1.7.2

Conversation

@bifrost-proxy

@bifrost-proxy bifrost-proxy commented Aug 18, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • publish clipboard changes as immutable append-only event batches
  • use the local incremental state as the only baseline and remove legacy store.json migration/old-client batch-rewrite compatibility
  • skip history diffing, batch decoding, state persistence, and UI merging during idle polls
  • persist local deltas on quit without waiting for remote checkpoint downloads
  • preserve cross-device deletion tombstones while allowing a later genuine recopy

Root cause

The 30-second iCloud poll repeatedly encoded the complete ~52 MB local state, decoded already-applied batches, and merged the full history even when no clipboard data had changed. A second monolithic metadata-cache write on every capture also blocked the main thread long enough to miss rapid clipboard changes.

Validation

  • full CI on macOS 26
  • idle sync: zero batch decodes and zero persistence
  • immutable batch/checkpoint compaction verifier
  • three-device deletion, stale-snapshot rejection, and later-recopy regressions
  • installed Universal 1.7.2 (44) three-launch regression
  • real iCloud three-launch regression via LaunchServices with exact history-count restoration
  • File Provider confirms the latest event batch is uploaded and conflict-free

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@bifrost-proxy
bifrost-proxy merged commit e98eca6 into main Aug 18, 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.

2 participants