diff --git a/commonspace/object/tree/objecttree/change.go b/commonspace/object/tree/objecttree/change.go index 9b31e66b..b83cf967 100644 --- a/commonspace/object/tree/objecttree/change.go +++ b/commonspace/object/tree/objecttree/change.go @@ -55,6 +55,7 @@ func NewChangeFromRoot(id string, ch *treechangeproto.RootChange, signature []by IsSnapshot: true, Identity: string(ch.Identity), Signature: signature, + Data: []byte(ch.ChangeType), } } diff --git a/commonspace/object/tree/objecttree/historytree.go b/commonspace/object/tree/objecttree/historytree.go index fc07917d..94e21b99 100644 --- a/commonspace/object/tree/objecttree/historytree.go +++ b/commonspace/object/tree/objecttree/historytree.go @@ -1,6 +1,9 @@ package objecttree -import "errors" +import ( + "errors" + "github.com/anytypeio/any-sync/commonspace/object/tree/treechangeproto" +) var ErrLoadBeforeRoot = errors.New("can't load before root") @@ -12,6 +15,8 @@ type HistoryTree interface { Heads() []string IterateFrom(id string, convert ChangeConvertFunc, iterate ChangeIterateFunc) error GetChange(string) (*Change, error) + Header() *treechangeproto.RawTreeChangeWithId + UnmarshalledHeader() *Change } type historyTree struct { diff --git a/commonspace/object/tree/objecttree/treefactory.go b/commonspace/object/tree/objecttree/treefactory.go index 7cb2c302..9782afd7 100644 --- a/commonspace/object/tree/objecttree/treefactory.go +++ b/commonspace/object/tree/objecttree/treefactory.go @@ -187,5 +187,11 @@ func buildHistoryTree(deps objectTreeDeps, params HistoryTreeParams) (ht History if err != nil { return nil, err } + + header, err := objTree.changeBuilder.ConvertFromRaw(objTree.rawRoot, false) + if err != nil { + return nil, err + } + objTree.root = header return hTree, nil }