One configured target
The bridge serves one configured vault, repository and branch at a time. Sync is user-triggered, not scheduled or sync-on-save.
Obsidian · GitHub · 2026
A conservative GitHub sync bridge for Obsidian Mobile and desktop, prioritizing explicit failure and preserving ambiguous state for review.

1.0.5
Stable release
1.11.4
Minimum Obsidian
44
Test files
478
Passing tests
Product boundary
The bridge serves one configured vault, repository and branch at a time. Sync is user-triggered, not scheduled or sync-on-save.
The client uses requestUrl() and GitHub REST or Git Data API calls. It avoids native Git on mobile and has no intermediary relay service.
SecretStorage is the active PAT backend. Token patterns and configured tokens are redacted from sanitized errors.
Runtime architecture
01
Visible Vault files and adapter-enumerated hidden user files.
02
Local entries, remote blobs and state.json become one explicit sync state.
03
Verified remote changes are applied with recovery journals.
04
UnifiedSyncEngine checks the Vault again after Pull.
05
Blobs, tree and commit are built against the remote base.
06
StorageManager advances state only after checks permit it.
Classifier
LOCAL_ONLYLocal file has no remote or baseline entry.
REMOTE_ONLYRemote file has no local or baseline entry.
LOCAL_CHANGEDLocal differs from baseline while remote still matches.
REMOTE_CHANGEDRemote differs from baseline while local still matches.
POTENTIAL_CONFLICTBoth sides diverged, or no usable base exists.
UNCHANGEDCanonical local and remote SHAs remain aligned.
LOCAL_DELETEDLocal is absent while remote still has baseline content.
REMOTE_DELETEDRemote is absent while local still has baseline content.
DELETE_CONFLICTOne side deleted while the other side changed.
DELETEDBoth sides are absent and the old baseline can be removed.
Safety model
Pull verifies blobs and writes recovery evidence before overwriting or deleting. Push uses one commit/ref boundary, force: false, and rereads the authoritative ref before reporting success.
Blob verification
Recovery journals
Optimistic concurrency
Explicit conflict review
Verification
npm run verifyESLint, typecheck, Vitest and production build in the quality gate.
1.0.5Release tag with SHA-256 verified assets and attestation.
Windows + iPhoneManual release-gate acceptance recorded for settings, hidden paths, normal files and restart.
Non-goals
These limits are part of the product boundary, not gaps to hide in a portfolio.