Part of #1
Question
What is obsync's commit and push cadence?
This is the core design question of the whole project. The vault must not drift far from the remote, but obsync must not produce a commit per keystroke — the history has to stay readable and the push rate reasonable.
To decide:
- How local change is detected. Filesystem watching (inotify/fanotify) vs. periodic
git status polling, and what each costs on a large vault. Note that ignis already runs a chokidar watcher on the same tree.
- What "the user has stopped typing" means. Quiescence/debounce window, and whether there is a maximum wait so a continuously-edited vault still gets committed.
- Whether commit rate and push rate are the same knob. Committing often and pushing on a slower cadence is a real option, and keeps history granular without hammering the remote.
- Batching. One commit per settle window covering everything that changed, vs. per-file commits.
- Commit message format. obsidian-git defaults to
vault backup: {{date}}; a summary of what changed is more useful but more work.
- Bounds. Behaviour on a huge burst (bulk import, plugin install, a paste of 500 files).
Prior art in docs/research/: obsidian-git's real defaults, and kubernetes/git-sync's --period / --sync-timeout / --max-failures model.
Part of #1
Question
What is obsync's commit and push cadence?
This is the core design question of the whole project. The vault must not drift far from the remote, but obsync must not produce a commit per keystroke — the history has to stay readable and the push rate reasonable.
To decide:
git statuspolling, and what each costs on a large vault. Note that ignis already runs a chokidar watcher on the same tree.vault backup: {{date}}; a summary of what changed is more useful but more work.Prior art in
docs/research/: obsidian-git's real defaults, andkubernetes/git-sync's--period/--sync-timeout/--max-failuresmodel.