Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
34743c1
feat(space): default new spaces to v1 header
cheggaaa Jul 1, 2026
2c1a8b8
feat(space): add fileprotoVersion to space header
cheggaaa Jul 1, 2026
0a7a691
feat(nodeconf): add NodeTypeFileV2 + RF=2 chash container (SYN-16)
cheggaaa Jul 1, 2026
748dc29
feat(nodeconf): plumb NodeTypeFileV2 through the coordinator config p…
cheggaaa Jul 1, 2026
2debdd4
feat(fileproto): add v2 broker protocol (SYN-17)
cheggaaa Jul 1, 2026
d1368fa
docs(rpcerr): reserve error-code offsets across repos
cheggaaa Jul 1, 2026
93a0042
feat(sync): selective-sync hooks β€” tree probe requests + optional Pul…
cheggaaa Jul 1, 2026
29a86c8
Merge pull request #717 from anyproto/cheggaaa/syn-18-selective-sync
cheggaaa Jul 2, 2026
b3d23a5
feat(fileprotov2): add NotResponsible error codes for chash routing (…
cheggaaa Jul 2, 2026
70c6397
feat(fileprotov2): add node-level Info RPC (SYN-31)
cheggaaa Jul 2, 2026
fd5ee1f
Merge pull request #718 from anyproto/cheggaaa/filev2-not-responsible
cheggaaa Jul 2, 2026
b9bece9
test(inboxclient): implement FileV2 methods on mockConf
cheggaaa Jul 3, 2026
1693009
feat(secureservice): bump ProtoVersion to 13 for files v2
cheggaaa Jul 3, 2026
7979c13
feat(secureservice): set compatibleVersions to [12,13,14] for v0.13
cheggaaa Jul 3, 2026
2cdccb3
feat(nodeconf): fileNetworkId β€” the fileV2 fleet's receipt-signing id…
cheggaaa Jul 3, 2026
76e0129
Merge main into files-v2
cheggaaa Jul 3, 2026
71a5fdb
feat(filep2p): peer-to-peer file transfer protocol (SYN-48)
cheggaaa Jul 4, 2026
49876c9
docs(filep2p): claim rpc error offset 900 in the registry
cheggaaa Jul 4, 2026
69077c0
Merge pull request #719 from anyproto/cheggaaa/syn-48-p2p-files
cheggaaa Jul 4, 2026
e8413cc
feat(coordinatorproto): FileLimitsGet + FileUsageReport for files-v2 …
cheggaaa Jul 4, 2026
07c2322
feat(fileprotov2): account-pool fields in SpaceQuota (SYN-19)
cheggaaa Jul 4, 2026
ae5feaa
feat(nodeconf): configuration epochs, change observers, config histor…
cheggaaa Jul 4, 2026
ea3c4c1
Merge pull request #720 from anyproto/cheggaaa/syn-19-file-limits
cheggaaa Jul 6, 2026
b98dfbe
feat(clientspaceproto): SpaceExchangeV2 token-based LAN space discovery
cheggaaa Jul 6, 2026
61532ca
Merge pull request #722 from anyproto/cheggaaa/space-exchange-v2
cheggaaa Jul 6, 2026
cff3246
feat(pubsub): stateless space-scoped pub/sub over any-sync
requilence Jul 6, 2026
f2bca56
feat(pubsub): add RevalidateMembers for node ACL-change eviction
requilence Jul 6, 2026
f05d531
fix(pubsub): address round-2 review findings
requilence Jul 7, 2026
73c855e
Merge branch 'main' of github.com:anyproto/any-sync into files-v2
cheggaaa Jul 10, 2026
954fe54
refactor(headsync): remove old diffsync (DiffType_V2) support
cheggaaa Jul 10, 2026
db67c16
fix(headsync): address diffsync-V2 removal review findings
cheggaaa Jul 10, 2026
4c9c298
Merge branch 'files-v2' into remove-diffsync-v2
cheggaaa Jul 10, 2026
d566219
Merge pull request #728 from anyproto/remove-diffsync-v2
cheggaaa Jul 10, 2026
2c00c2b
Merge branch 'resharding' into v0.13.x
cheggaaa Jul 10, 2026
49c7ba1
chore(pubsub): merge v0.12.14 (ocache close fix, ACL keep-only-ours) …
requilence Jul 11, 2026
b76e9c6
Merge branch 'main' of ssh://github.com/anyproto/any-sync into v0.13.x
requilence Jul 15, 2026
5f43845
docs(pubsub): consolidate stateless-pubsub design+research into one r…
requilence Jul 15, 2026
8be97ee
fix(pubsub): move rpc error offset 800 -> 1100
requilence Jul 15, 2026
d1aab87
fix race-detector failures in nodeconf test and webtransport shutdown
cheggaaa Jul 16, 2026
3e7a706
Merge pull request #741 from anyproto/fix-race-failures
cheggaaa Jul 16, 2026
851d38f
ocache: retry a load that was killed by another caller's context
cheggaaa Jul 16, 2026
2980460
Merge pull request #743 from anyproto/cheggaaa/ocache-foreign-ctx-retry
cheggaaa Jul 16, 2026
9cd8cd7
Merge pull request #745 from anyproto/feat/invoice-payment-url
requilence Jul 20, 2026
71fba52
crypto: error on ciphertext shorter than GCM nonce in DecryptReuse
cheggaaa Jul 22, 2026
3dfed1a
Merge pull request #747 from anyproto/cheggaaa/syn-94-decrypt-short-i…
cheggaaa Jul 22, 2026
8496abb
fix(deletionmanager): make delete path ctx-cancellable
cheggaaa Jul 28, 2026
2328e34
fix(keyvalue,syncacl): bound shutdown on in-flight peer rpc
cheggaaa Jul 28, 2026
fd0a7b0
fix: cancel queued sync actions on close, survive Close before Run
cheggaaa Jul 28, 2026
7f4a817
fix(net,ocache): bound close against unresponsive peers
cheggaaa Jul 28, 2026
d1c41ba
fix: review fixes for the bounded close paths
cheggaaa Jul 28, 2026
d541cd0
Merge pull request #751 from anyproto/cheggaaa/syn-110-any-sync-delet…
cheggaaa Jul 29, 2026
cbfd45e
Merge remote-tracking branch 'origin/feat/pubsub' into v0.13.x
cheggaaa Jul 29, 2026
8dc5ddc
Merge remote-tracking branch 'origin/main' into v0.13.x
cheggaaa Jul 30, 2026
88c0d0a
keyvaluestorage: sort IterateValues by id so Iterate groups whole keys
cheggaaa Jul 30, 2026
74adbfb
Merge pull request #753 from anyproto/cheggaaa/syn-116-iteratevalues-…
cheggaaa Jul 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,15 @@ proto:
$(call generate_drpc,$(PKGMAP),commonspace/spacesyncproto/protos)
$(call generate_drpc,$(PKGMAP),commonspace/clientspaceproto/protos)
$(call generate_drpc,$(PKGMAP),commonfile/fileproto/protos)
$(call generate_drpc,,commonfile/fileproto/fileprotov2/protos)
$(call generate_drpc,,commonfile/fileproto/filep2p/protos)
$(call generate_drpc,$(PKGMAP),net/streampool/testservice/protos)
$(call generate_drpc,$(PKGMAP),net/endtoendtest/testpeer/testproto/protos)


$(call generate_drpc,,net/secureservice/handshake/handshakeproto/protos)
$(call generate_drpc,,net/rpc/limiter/limiterproto/protos)
$(call generate_drpc,,commonspace/pubsub/pubsubproto/protos)
$(call generate_drpc,$(PKGMAP),coordinator/coordinatorproto/protos)
$(call generate_drpc,,consensus/consensusproto/protos)
$(call generate_drpc,,identityrepo/identityrepoproto/protos)
Expand Down
2 changes: 1 addition & 1 deletion app/ldiff/diff.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Package ldiff provides a container of elements with fixed id and changeable content.
// Diff can calculate the difference with another diff container (you can make it remote) with minimum hops and traffic.
//
//go:generate mockgen -destination mock_ldiff/mock_ldiff.go github.com/anyproto/any-sync/app/ldiff Diff,Remote,DiffContainer
//go:generate mockgen -destination mock_ldiff/mock_ldiff.go github.com/anyproto/any-sync/app/ldiff Diff,Remote
package ldiff

import (
Expand Down
72 changes: 0 additions & 72 deletions app/ldiff/diffcontainer.go

This file was deleted.

25 changes: 25 additions & 0 deletions app/ldiff/hasher.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package ldiff

import (
"encoding/hex"

"github.com/zeebo/blake3"
)

type Hasher struct {
hasher *blake3.Hasher
}

func (h *Hasher) HashId(id string) string {
h.hasher.Reset()
h.hasher.WriteString(id)
return hex.EncodeToString(h.hasher.Sum(nil))
}

func NewHasher() *Hasher {
return &Hasher{hashersPool.Get().(*blake3.Hasher)}
}

func ReleaseHasher(hasher *Hasher) {
hashersPool.Put(hasher.hasher)
}
86 changes: 2 additions & 84 deletions app/ldiff/mock_ldiff/mock_ldiff.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 22 additions & 6 deletions app/ocache/entry.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,16 @@ type entry struct {
lastUsage time.Time
load chan struct{}
loadErr error
value Object
close chan struct{}
mx sync.Mutex
cancel context.CancelFunc
// loadAborted marks a failed load whose OWN context was already done
// when the loadFunc returned β€” the load was killed (its first caller
// went away, or the cache is closing), not refused by the loadFunc.
// Written by oCache.load before the load channel closes; read only
// after <-load, like loadErr.
loadAborted bool
value Object
close chan struct{}
mx sync.Mutex
cancel context.CancelFunc
}

func newEntry(id string, value Object, state entryState) *entry {
Expand Down Expand Up @@ -97,7 +103,10 @@ func (e *entry) waitClose(ctx context.Context, id string) (res bool, err error)
}
}

func (e *entry) setClosing(wait bool) (prevState, curState entryState) {
// setClosing transitions the entry to closing. With wait it blocks until another
// closer is done with it, bounded by ctx: that closer may be inside a TryClose
// that waits on an unresponsive peer.
func (e *entry) setClosing(ctx context.Context, wait bool) (prevState, curState entryState, err error) {
e.mx.Lock()
prevState = e.state
curState = e.state
Expand All @@ -112,7 +121,14 @@ func (e *entry) setClosing(wait bool) (prevState, curState entryState) {
if !wait {
return
}
<-waitCh
select {
case <-waitCh:
case <-ctx.Done():
e.mx.Lock()
curState = e.state
e.mx.Unlock()
return prevState, curState, ctx.Err()
}
e.mx.Lock()
}
if e.state != entryStateClosed {
Expand Down
Loading
Loading