Use case or problem
I recently started using Obsidian on another machine. I wanted all my plugins and settings on the new machine. On my main machine I turned on plugin syncing. Weeks later I found out that doing that ended up syncing old plugin data (from a previous sync before I disabled plugin syncing) to my main machine rather than treating all the current data as new and pushing that (luckily I also keep it updated on a git repo). I believe this happened because I enabled the plugin sync on the new machine first, which synced old data, and changed some settings which updated the remote.
The problems this caused I first assumed were due to being on Linux on the new machine, but I later found out that I was having similar issues on my main machine. These issues were subtle enough that I originally thought they came from plugin and/or obsidian updates until I finally sat down and investigated.
Proposed solution(s)
I have so many plugins, snippets, etc. that it was cumbersome (even with git) to get things back in order. There are two features that would have prevented this from happening.
First, whenever syncing is first enabled for a category, Obsidian should ask the user if they’d like to push or pull changes. In my case I would have pushed which would have overwritten what was on the database.
Second, Obsidian Sync should feature, for each category, a drop-down rather than a toggle. The drop-down should have options for “read-only”, “write-only”, and “full-sync.”
Ideally, the user would specify whether they want the sync to merge or overwrite, either automatically or with confirmation.
In my case, this would allow me to protect my main machine from changes I don’t want while allowing other machines to update to match the main and modify their settings while never pushing their own.