다중 디바이스 동기화 개요
🚧 설계 단계 — 아직 구현 안 됨
이 페이지는 ainote 의 향후 기능을 미리 문서화한 것입니다. 현재 @ainote/mcp v1.1.x 에는 vault / sync 도구가 포함돼 있지 않습니다. 도구 호출 시 Tool not found 에러를 받게 됩니다.
ainote 는 Star topology + HLC + LWW 모델로 여러 디바이스에서 동일한 vault 를 유지합니다.
핵심 원칙
- Star topology — 각 디바이스는 ainote vault (hub) 와만 sync. 디바이스끼리 직접 X.
- HLC (Hybrid Logical Clock) — wall-clock + counter 로 시계 어긋남(클럭 드리프트) 방지하면서 시간 기반 정렬.
- LWW (Last-Write-Wins) — 양쪽 변경 시 시점 우선. 단 5분 이내 충돌은 수동 검토.
- Local source of truth — 충돌 시 기본은 로컬 우선 (사용자 의도가 가장 최근).
4가지 sync 케이스
sync(file):
L = local sha256, R = remote git_sha, S = state.json[file]
1. L == S.local AND R == S.remote → SKIP (변경 없음)
2. L != S.local AND R == S.remote → PUSH (로컬만 변경)
3. L == S.local AND R != S.remote → PULL (원격만 변경)
4. L != S.local AND R != S.remote → CONFLICT
4a. |L_mtime - R_updated| ≥ 5분 → auto LWW (newer wins)
4b. < 5분 → manual (diff 저장 → 사용자 결정)안전장치
--dry-run— 무엇을 push/pull 할지만 출력 (실제 변경 X)--max-delete 30%— 단일 sync 에서 30% 이상 파일 삭제 시 abortlog/{YYYY-MM}.jsonl— append-only 이벤트 로그 (디바이스/시점/경로/액션 5-way 추적)conflicts/— 미해결 충돌은 diff 로 보관 (잃어버리지 않음)
다음 단계
설계 문서
이 동기화 시스템의 전체 설계는 global/ainote-sync-redesign.md 참조. 산업 패턴 조사 (rclone bisync · Syncthing · Unison · CRDT) + 우리 케이스 적합성 분석 포함.