Bỏ qua đến nội dung
Về trang chủOpen source plugin

Obsidian · GitHub · 2026

GitHub
Vault Relay.

Một bridge đồng bộ GitHub bảo thủ cho Obsidian Mobile và desktop, ưu tiên failure rõ ràng và giữ lại trạng thái mơ hồ để review.

ObsidianGitHub Data APIMobile-firstOpen source
Ảnh bìa biên tập cho GitHub Vault Relay
Ảnh bìa portfolio, không phải ảnh chụp giao diện plugin.

1.0.5

Stable release

1.11.4

Obsidian tối thiểu

44

File test

478

Test đã pass

Product boundary

Sync rõ ràng hơn, không hứa hẹn quá mức

Một target được cấu hình

Bridge phục vụ một vault, repository và branch được cấu hình tại một thời điểm. Sync do người dùng kích hoạt, không chạy theo lịch hoặc sync-on-save.

GitHub qua HTTPS

Client dùng requestUrl() và GitHub REST hoặc Git Data API. Plugin tránh chạy Git native trên mobile và không có relay service trung gian.

Secret nằm trong Obsidian

SecretStorage là PAT backend đang active. Token pattern và token đã cấu hình được redact khỏi error đã sanitize.

Runtime architecture

Một sync flow có thể kiểm tra từng bước

01

Inventory

File Vault hiển thị và file user ẩn được adapter enumerate.

02

Classify

Local entry, remote blob và state.json trở thành một sync state rõ ràng.

03

Pull

Remote change đã verify được áp dụng cùng recovery journal.

04

Rescan

UnifiedSyncEngine rescan Vault sau Pull.

05

Push

Blob, tree và commit được tạo trên remote base.

06

Baseline

StorageManager chỉ advance state sau khi check cho phép.

Classifier

Mười state thay cho đoán ý người dùng

LOCAL_ONLY

File local không có remote hoặc baseline entry.

REMOTE_ONLY

File remote không có local hoặc baseline entry.

LOCAL_CHANGED

Local khác baseline trong khi remote vẫn khớp.

REMOTE_CHANGED

Remote khác baseline trong khi local vẫn khớp.

POTENTIAL_CONFLICT

Hai phía cùng diverge hoặc không có base dùng được.

UNCHANGED

SHA canonical của local và remote vẫn aligned.

LOCAL_DELETED

Local đã mất trong khi remote còn baseline content.

REMOTE_DELETED

Remote đã mất trong khi local còn baseline content.

DELETE_CONFLICT

Một phía bị xóa trong khi phía kia thay đổi.

DELETED

Cả hai phía đều mất và baseline cũ có thể xóa.

Safety model

Preserve trước, mutate sau

Pull kiểm tra blob và ghi recovery journal trước khi ghi đè hoặc xóa. Push dùng một commit/ref boundary, force: false và đọc lại ref authoritative trước khi báo thành công.

Blob verification

Recovery journals

Optimistic concurrency

Explicit conflict review

Verification

Release có evidence để quay lại

npm run verify

ESLint, typecheck, Vitest và production build trong quality gate.

1.0.5

Release tag có release assets được SHA-256 verify và attestation.

Windows + iPhone

Manual release-gate acceptance đã ghi nhận cho settings, hidden paths, normal files và restart.

Non-goals

Không phải mọi thứ đều cần sync

Các giới hạn này là một phần của product boundary, không phải thiếu sót cần che giấu trong portfolio.

Background hoặc scheduled sync
Sync-on-save
Đoán rename mơ hồ
Sync empty directory
Git forge khác
Đổi nhiều account
Force-push

GitHub Vault Relay

Xem plugin và source