Build a Smaller Atuin Sync
Preserve offline convergence, not the shell UI.
- Define
HostId,Tag,Index, and an append-onlyRecord. - Store local streams in SQLite and compute per-stream heads.
- Build a server that stores opaque records and returns status summaries.
- Diff two summaries into deterministic upload/download/noop operations.
- Transfer bounded pages idempotently and resume after injected failure.
- Encrypt each payload locally and authenticate its host/tag/index metadata.
- Rebuild one searchable history projection from downloaded record IDs.
- Create two offline clients, append independently, and prove convergence.
- Introduce a deliberate missing index and repair from
first_gap.
Production Atuin adds multiple data domains, legacy migration, authenticated accounts, PASETO envelope encryption, packfiles and presigned object storage, daemon components, shell latency constraints, key rotation, rich SQLite queries, server backend portability, and extensive recovery diagnostics.