A method comprising: identifying, via a client device, a local set of content items stored at the client device and associated with a user account at a content management system, wherein the content management system enables the user account to access content items from multiple client devices, and wherein the content management system supports a plurality of user accounts; based on the local set of content items, generating, via the client device, a local tree data structure representing a filesystem state at the client device, the local tree data structure comprising a respective local node corresponding to each of the local set of content items; receiving, from the content management system, a server state identifying a remote set of content items stored at the content management system and associated with the user account; based on the server state, generating, via the client device, a remote tree data structure representing the remote set of content items, the remote tree data structure comprising a respective remote node corresponding to each of the remote set of content items; based on the local tree data structure and the remote tree data structure, generating, via the client device, a sync tree data structure comprising a matching set of nodes in the local tree data structure and the remote tree data structure, the sync tree data structure representing a synchronized state between the filesystem state and the server state; storing the local tree data structure, the remote tree data structure, and the sync tree data structure at the client device; identifying a difference between the sync tree data structure and the remote tree data structure, the difference representing one or more conflicts between the server state and the filesystem state; converging the server state and the filesystem state to yield a resynchronized state based on the difference between the sync tree data structure and the remote tree data structure; and synchronizing the local tree data structure, the sync data structure, and the remote tree data structure based on the resynchronized state. identifying, via a client device, a local set of content items stored at the client device and associated with a user account at a content management system, wherein the content management system enables the user account to access content items from multiple client devices, and wherein the content management system supports a plurality of user accounts; based on the local set of content items, generating, via the client device, a local tree data structure representing a filesystem state at the client device, the local tree data structure comprising a respective local node corresponding to each of the local set of content items; receiving, from the content management system, a server state identifying a remote set of content items stored at the content management system and associated with the user account; based on the server state, generating, via the client device, a remote tree data structure representing the remote set of content items, the remote tree data structure comprising a respective remote node corresponding to each of the remote set of content items; based on the local tree data structure and the remote tree data structure, generating, via the client device, a sync tree data structure comprising a matching set of nodes in the local tree data structure and the remote tree data structure, the sync tree data structure representing a synchronized state between the filesystem state and the server state; storing the local tree data structure, the remote tree data structure, and the sync tree data structure at the client device; identifying a difference between the sync tree data structure and the remote tree data structure, the difference representing one or more conflicts between the server state and the filesystem state; converging the server state and the filesystem state to yield a resynchronized state based on the difference between the sync tree data structure and the remote tree data structure; and synchronizing the local tree data structure, the sync data structure, and the remote tree data structure based on the resynchronized state.