スキル一覧に戻る
bentefay

sync

by bentefay

A web app to help you understand where your money is going.

2🍴 0📅 2026年1月10日
GitHubで見るManusで実行

SKILL.md


name: sync description: Real-time sync with Supabase, Loro CRDT, and IndexedDB. Use when working on files in src/lib/sync/.

Sync Guidelines

Core Principles

  1. Server is source of truth - IndexedDB is a cache
  2. All ops kept forever - no pruning, enables full audit trail
  3. Shallow snapshots for fast start - performance only, not compaction
  4. Encryption at rest - server sees encrypted blobs + plaintext version metadata

Persistence Flow

EventIndexedDBServer
Local changeImmediateThrottled (~2s)
Tab hidden/closeImmediateFlush pending
Cold startLoad snapshot → usableBackground sync

Critical Rules

  1. IndexedDB writes immediate - crash safety
  2. Server pushes throttled - use lodash-es throttle, ~2s
  3. Encrypt before storage - never plaintext in IndexedDB or server
  4. Version vector plaintext - enables server filtering without decryption
  5. has_unpushed flag critical - server must send ops (not snapshot) if client has local changes
  6. Flush on visibility change - don't lose data on tab switch

Key Details

  • loro-mirror auto-commits on setState() - no manual debouncing
  • subscribeLocalUpdates fires after each commit with binary update
  • Snapshot refresh: ops > 1000 OR bytes > 1MB (not time-based)

Conflict Resolution

Loro handles automatically: last-write-wins per field, set union for arrays.

UI States

  • Saved - all pushed
  • Saving... - pending in buffer
  • Offline - can't reach server

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です