feat(sync): Sync 1.1 inductive firehose verification and a Tap client #134
Labels
No labels
breaking-change
bug
documentation
duplicate
enhancement
good first issue
help wanted
performance
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Grandiras/ATProto.NET#134
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of the v0.7.0 update cycle (wave 6). Sync 1.1 inductive firehose verification and a Tap client. The owner opted in. The CHANGELOG has claimed "Sync v1.1 support" since #21, but only the fields exist.
Sync 1.1 (https://atproto.com/specs/sync, rewritten 2026-02-27)
IRepoSyncStateStore(per DID:rev,dataCID, status), with in-memory and EF implementations.A
RepoSyncVerifierimplementing the spec's validation checklist:prevData;revstrictly increasing and not in the future;since/prevDatachain;#syncevents resetting state.It emits
Desynchronizedwith a reason.Resync hooks: fetch
getRepo, from the upstream relay first as the spec's "thundering herd" guidance says, and reconcile.Wire it into the typed firehose consumer as an opt-in verification mode.
Test against captured real-network frames and hand-built edge cases.
Tap client
Tap is Bluesky's reference Sync 1.1 consumer and backfill service (indigo
cmd/tap; TS client@atproto/tap).TapClient: the ack-based WebSocket/channelas anIAsyncEnumerablewith explicit acks./repos/add,/repos/remove,/info/:did,/resolve/:did, Basic auth).ATProtoNet.Server.Docs
docs/firehose.md"Verifying the firehose" and a newdocs/tap.md.[Unreleased].CHANGELOG
Added.