Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 4 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ require (
github.com/anyproto/anytype-push-server/pushclient v0.0.0-20250801122506-553f6c085a23
github.com/anyproto/go-chash v0.1.0
github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438
github.com/anyproto/go-slip10 v1.0.1-0.20250818123350-f910c27dd080
github.com/anyproto/go-slip10 v1.0.1
github.com/anyproto/lexid v0.0.6
github.com/anyproto/tantivy-go v1.0.4
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de
Expand Down Expand Up @@ -106,7 +106,7 @@ require (
go.uber.org/atomic v1.11.0
go.uber.org/mock v0.6.0
go.uber.org/multierr v1.11.0
go.uber.org/zap v1.27.0
go.uber.org/zap v1.27.1
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546
golang.org/x/image v0.27.0
golang.org/x/mobile v0.0.0-20250218173827-cd096645fcd3
Expand Down Expand Up @@ -250,7 +250,7 @@ require (
github.com/prometheus/common v0.66.1 // indirect
github.com/prometheus/procfs v0.17.0 // indirect
github.com/pseudomuto/protokit v0.2.1 // indirect
github.com/quic-go/quic-go v0.56.0 // indirect
github.com/quic-go/quic-go v0.57.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/rs/cors v1.11.0 // indirect
github.com/rs/zerolog v1.29.0 // indirect
Expand Down Expand Up @@ -284,7 +284,7 @@ require (
go.opentelemetry.io/otel/trace v1.38.0 // indirect
go.yaml.in/yaml/v2 v2.4.3 // indirect
golang.org/x/arch v0.8.0 // indirect
golang.org/x/crypto v0.44.0 // indirect
golang.org/x/crypto v0.45.0 // indirect
golang.org/x/mod v0.30.0 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/term v0.37.0 // indirect
Expand Down
16 changes: 8 additions & 8 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,8 @@ github.com/anyproto/go-multiaddr v0.8.1-0.20250307125826-51ba58e2ebc7 h1:SD0mX7D
github.com/anyproto/go-multiaddr v0.8.1-0.20250307125826-51ba58e2ebc7/go.mod h1:JSVUmXDjsVFiW7RjIFMP7+Ev+h1DTbiJgVeTV/tcmP0=
github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 h1:flfZXdcXB2iVHrTZDwSMlJ7RCRS/ydiPw63xWr+waSU=
github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438/go.mod h1:cmdcU4pcVTftMlM89z+d8dLBJc02HtY5tI12yQucUxM=
github.com/anyproto/go-slip10 v1.0.1-0.20250818123350-f910c27dd080 h1:bbHmaibcUbctrXG6LT6136H0oDlBUDoDANX2qBpqhkU=
github.com/anyproto/go-slip10 v1.0.1-0.20250818123350-f910c27dd080/go.mod h1:BCmIlM1KB8wX6K4/8pOvxPl9oVKfEvZ5vsmO5rkK6vg=
github.com/anyproto/go-slip10 v1.0.1 h1:Pa/OpYoOE668fip4ygAd4T07chLBx4XoBa5fwnGq0/M=
github.com/anyproto/go-slip10 v1.0.1/go.mod h1:BCmIlM1KB8wX6K4/8pOvxPl9oVKfEvZ5vsmO5rkK6vg=
github.com/anyproto/go-slip21 v1.0.0 h1:CI7lUqTIwmPOEGVAj4jyNLoICvueh++0U2HoAi3m2ZY=
github.com/anyproto/go-slip21 v1.0.0/go.mod h1:gbIJt7HAdr5DuT4f2pFTKCBSUWYsm/fysHBNqgsuxT0=
github.com/anyproto/go-sqlite v1.4.2-any h1:ZTIcq/u2mYYJ6rJB4I3Ds5QH/7IlONebMiG14FyZcD4=
Expand Down Expand Up @@ -905,8 +905,8 @@ github.com/pseudomuto/protoc-gen-doc v1.5.1 h1:Ah259kcrio7Ix1Rhb6u8FCaOkzf9qRBqX
github.com/pseudomuto/protoc-gen-doc v1.5.1/go.mod h1:XpMKYg6zkcpgfpCfQ8GcWBDRtRxOmMR5w7pz4Xo+dYM=
github.com/pseudomuto/protokit v0.2.1 h1:kCYpE3thoR6Esm0CUvd5xbrDTOZPvQPTDeyXpZfrJdk=
github.com/pseudomuto/protokit v0.2.1/go.mod h1:gt7N5Rz2flBzYafvaxyIxMZC0TTF5jDZfRnw25hAAyo=
github.com/quic-go/quic-go v0.56.0 h1:q/TW+OLismmXAehgFLczhCDTYB3bFmua4D9lsNBWxvY=
github.com/quic-go/quic-go v0.56.0/go.mod h1:9gx5KsFQtw2oZ6GZTyh+7YEvOxWCL9WZAepnHxgAo6c=
github.com/quic-go/quic-go v0.57.0 h1:AsSSrrMs4qI/hLrKlTH/TGQeTMY0ib1pAOX7vA3AdqE=
github.com/quic-go/quic-go v0.57.0/go.mod h1:ly4QBAjHA2VhdnxhojRsCUOeJwKYg+taDlos92xb1+s=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
Expand Down Expand Up @@ -1119,8 +1119,8 @@ go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc=
go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc=
Expand All @@ -1143,8 +1143,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/crypto v0.44.0 h1:A97SsFvM3AIwEEmTBiaxPPTYpDC47w720rdiiUvgoAU=
golang.org/x/crypto v0.44.0/go.mod h1:013i+Nw79BMiQiMsOPcVCB5ZIJbYkerPrGnOa00tvmc=
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
Expand Down
4 changes: 4 additions & 0 deletions space/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func (s *service) CreateOneToOneSendInbox(ctx context.Context, description *spac
description.IconImage = bobProfile.IdentityProfile.IconCid
sp, err = s.CreateOneToOne(ctx, description, bobProfile)
if err != nil {
err = fmt.Errorf("create onetoone: %w", err)
return
}

Expand All @@ -58,6 +59,7 @@ func (s *service) CreateOneToOne(ctx context.Context, description *spaceinfo.Spa

coreSpace, err := s.spaceCore.CreateOneToOneSpace(ctx, bPk)
if err != nil {
err = fmt.Errorf("spacecore: create onetoone: %w", err)
return
}
s.mu.Lock()
Expand All @@ -80,6 +82,7 @@ func (s *service) CreateOneToOne(ctx context.Context, description *spaceinfo.Spa
err: err,
}
s.mu.Unlock()
err = fmt.Errorf("factory: create onetoone: %w", err)
return nil, err
}

Expand All @@ -92,6 +95,7 @@ func (s *service) CreateOneToOne(ctx context.Context, description *spaceinfo.Spa
err: err,
}
s.mu.Unlock()
err = fmt.Errorf("loader: create onetoone: %w", err)
return nil, err
}
s.spaceControllers[ctrl.SpaceId()] = ctrl
Expand Down
2 changes: 1 addition & 1 deletion space/deletioncontroller/deletioncontroller.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
"github.com/anyproto/anytype-heart/space/spaceinfo"
)

const CName = "mockClient.space.deletioncontroller"
const CName = "space.deletioncontroller"

var log = logger.NewNamed(CName)

Expand Down
7 changes: 7 additions & 0 deletions space/internal/objectprovider/objectprovider.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (

"github.com/anyproto/any-sync/app/logger"
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
"github.com/anyproto/any-sync/commonspace/object/tree/treestorage"
"github.com/anyproto/any-sync/commonspace/spacestorage"
"go.uber.org/zap"

Expand Down Expand Up @@ -178,6 +179,8 @@ func (o *objectProvider) loadObjectsAsync(ctx context.Context, objIDs []string)
}

func (o *objectProvider) CreateMandatoryObjects(ctx context.Context, space smartblock.Space) (err error) {
log = log.With(zap.String("spaceId", o.spaceId))

var sbTypes []coresb.SmartBlockType
if o.isPersonal() {
sbTypes = threads.PersonalSpaceTypes
Expand All @@ -201,6 +204,10 @@ func (o *objectProvider) CreateMandatoryObjects(ctx context.Context, space smart
},
})
if err != nil {
if errors.Is(err, treestorage.ErrTreeExists) {
log.Info("tree object already exists", zap.String("uniqueKey", uk.Marshal()))
return nil
}
log.Error("create payload for derived object", zap.Error(err), zap.String("uniqueKey", uk.Marshal()))
return fmt.Errorf("derive tree object: %w", err)
}
Expand Down
1 change: 1 addition & 0 deletions space/spacecore/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ func (s *service) Derive(ctx context.Context, spaceType spacedomain.SpaceType) (
func (s *service) CreateOneToOneSpace(ctx context.Context, bPk crypto.PubKey) (space *AnySpace, err error) {
id, err := s.commonSpace.DeriveOneToOneSpace(ctx, s.wallet.GetAccountPrivkey(), bPk)
if err != nil {
err = fmt.Errorf("derive one to one: %w", err)
return
}

Expand Down
2 changes: 2 additions & 0 deletions space/spacecore/storage/anystorage/storageservice.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,10 +140,12 @@ func (s *storageService) CreateSpaceStorage(ctx context.Context, payload spacest
}
db, err := s.createDb(ctx, payload.SpaceHeaderWithId.Id)
if err != nil {
err = fmt.Errorf("failed to create db: %w", err)
return nil, err
}
st, err := spacestorage.Create(ctx, db, payload)
if err != nil {
err = fmt.Errorf("failed to create spacestorage: %w", err)
return nil, err
}
return NewClientStorage(ctx, st)
Expand Down
39 changes: 32 additions & 7 deletions space/spacefactory/spacefactory.go
Original file line number Diff line number Diff line change
Expand Up @@ -290,8 +290,8 @@ func (s *spaceFactory) CreateMarketplaceSpace(ctx context.Context) (sp spacecont
return ctrl, err
}

func (s *spaceFactory) CreateOneToOneSpace(ctx context.Context, id string, description *spaceinfo.SpaceDescription, participantData spaceinfo.OneToOneParticipantData) (sp spacecontroller.SpaceController, err error) {
oneToOneSpace, err := s.spaceCore.Get(ctx, id)
func (s *spaceFactory) CreateOneToOneSpace(ctx context.Context, spaceId string, description *spaceinfo.SpaceDescription, participantData spaceinfo.OneToOneParticipantData) (sp spacecontroller.SpaceController, err error) {
oneToOneSpace, err := s.spaceCore.Get(ctx, spaceId)
if err != nil {
return
}
Expand All @@ -301,19 +301,44 @@ func (s *spaceFactory) CreateOneToOneSpace(ctx context.Context, id string, descr
return
}

info := spaceinfo.NewSpacePersistentInfo(id)

info := spaceinfo.NewSpacePersistentInfo(spaceId)
info.OneToOneIdentity = participantData.Identity
info.Name = description.Name
requestMetadataKeyStr := base64.StdEncoding.EncodeToString(participantData.RequestMetadataKey)
info.OneToOneRequestMetadataKey = requestMetadataKeyStr
info.SetAccountStatus(spaceinfo.AccountStatusUnknown)

if err := s.techSpace.SpaceViewCreate(ctx, id, true, info, description); err != nil {
return nil, err
spaceView, spaceViewErr := s.techSpace.GetSpaceView(ctx, spaceId)
if spaceViewErr != nil {
if !errors.Is(err, techspace.ErrSpaceViewNotExists) {
return nil, fmt.Errorf("get space view: %w", spaceViewErr)
}
}

ctrl, err := shareablespace.NewSpaceController(id, info, s.app)
// nolint: nestif
if spaceView == nil {
if err := s.techSpace.SpaceViewCreate(ctx, spaceId, true, info, description); err != nil {
return nil, err
}
} else {
// check if space is active
existingLocalInfo := spaceView.GetLocalInfo()
if existingLocalInfo.GetLocalStatus() == spaceinfo.LocalStatusOk {
return nil, fmt.Errorf("space already active")
}
// space has been removed, reset statuses and recreate
localInfo := spaceinfo.NewSpaceLocalInfo(spaceId)
localInfo.SetLocalStatus(spaceinfo.LocalStatusUnknown)
localInfo.SetRemoteStatus(spaceinfo.RemoteStatusUnknown)
if err := spaceView.SetSpaceLocalInfo(localInfo); err != nil {
return nil, err
}
if err := spaceView.SetSpacePersistentInfo(info); err != nil {
return nil, err
}
}

ctrl, err := shareablespace.NewSpaceController(spaceId, info, s.app)
if err != nil {
return nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion space/techspace/techspace.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ func (s *techSpace) GetSpaceView(ctx context.Context, spaceId string) (SpaceView
}
obj, err := s.objectCache.GetObject(ctx, viewId)
if err != nil {
return nil, err
return nil, errors.Join(ErrSpaceViewNotExists, err)
}
spaceView, ok := obj.(SpaceView)
if !ok {
Expand Down
Loading