Stage 01 · Gather
ingest-kit
Make unlike sources comparable
Adapters turn mail, tasks, feeds, and notes into one record shape, remove repeats, and assign a stable item ID. Collection follows each source's shape - polled, pushed, or subscribed - and every record lands in a content-hashed store.
- opaque cursor
- Each adapter owns a resume cursor the pipeline stores and never interprets, so a new source is an adapter plus config rather than a schema migration.
- content hashing
- Repeats are dropped on the way in, before anything downstream pays for them.
- run audit
- Every run carries an ID with an explicit pending-to-terminal lifecycle, so an interrupted run stays diagnosable rather than silently skipped.