Skip to content

Recallyx 0.79

Choose a tag to compare

@github-actions github-actions released this 03 Jul 14:13
f0b72db

Apply remote CloudKit changes live and stop clobbering imported edits (#66)

Device testing of the iPhone app (#64) showed sync only half-working:
new clips, pins, and deletes from another device never appeared in a
running app, a pin made on the phone silently reverted, and remote
deletes could resurrect.

Two root causes, both fixed:

  • The store loaded its in-memory list once at launch and never noticed
    CloudKit imports. It now enables persistent-history tracking +
    remote-change notifications and merges imported changes into the running
    app (debounced, flushing pending local edits first). The Mac panel keeps
    its snapshot-per-open behavior; the iOS list updates live.
  • Persist mirrored the whole in-memory array — upserting every item and
    deleting every row it didn't know about — so any local edit re-exported
    stale fields over freshly imported ones (that's the reverted pin) and
    re-created remotely deleted clips. Persist is now scoped to a
    dirty/deleted id set and touches nothing else.

Also: image-orphan file cleanup is skipped when sync is on — image
payloads don't sync, so clips from another device legitimately have no
local file there.

Needs a two-device re-check before #64 merges (pin/delete propagation +
live Mac→phone), which is the plan anyway.