cozy-desktop

File Synchronisation for Cozy on Desktop and Laptop

AGPL-3.0 License

Downloads
34
Stars
99
Committers
31
cozy-desktop - Move in sync

Published by taratatach about 5 years ago

Improvements for all users:

  • When moving or renaming directories and subdirectories on your remote Cozy
    pretty quickly or with your Desktop client turned off, we would detect all
    moves but would end up dropping the moves of children directories of moved
    directories. This would lead to unsynchronized directories.
    We're now treating them the same way we do for children file movements and
    keep them synchronized.

See also known issues.

Happy syncing!

cozy-desktop - Children do move away

Published by taratatach about 5 years ago

Improvements for all users:

  • When moving or renaming directories and subdirectories on your remote Cozy
    pretty quickly or with your Desktop client turned off, we would detect all
    moves but would end up dropping the moves of children directories of moved
    directories. This would lead to unsynchronized directories.
    We're now treating them the same way we do for children file movements and
    keep them synchronized.

See also known issues.

Happy syncing!

cozy-desktop - Name it

Published by taratatach about 5 years ago

Improvements for all users:

  • In some situations, like when a large quantity of data is synchronized with
    the remote Cozy, adding a directory and then renaming it before we had a
    chance to synchronize it would result in a error and that directory (and by
    extension, its content) would never get synchronized.
    We're now correctly handling this situation, like we were already doing for
    files, by treating this directory renaming as a simple addition of the
    directory at its most recent location.

Improvements for MacOS users:

  • The UTF-8 encoding fix we shipped in the previous release was missing a
    crucial step when re-encoding NFD paths with NFC which lead to the
    creation of conflicts on accentuated paths for users synchronizing a directory
    placed on a HFS+ volume.
    In response, we've changed the way we attack this problem and decided to keep
    paths in the encoding they were created with in Pouch and manage the mapping
    with the filesystem only.

See also known issues.

Happy syncing!

cozy-desktop - I like to move it, move it

Published by taratatach about 5 years ago

Improvements for all users:

  • In some situations, like when a large quantity of data is synchronized with
    the remote Cozy, adding a directory and then renaming it before we had a
    chance to synchronize it would result in a error and that directory (and by
    extension, its content) would never get synchronized.
    We're now correctly handling this situation, like we were already doing for
    files, by treating this directory renaming as a simple addition of the
    directory at its most recent location.

See also known issues.

Happy syncing!

cozy-desktop - Accents can be the source of conflicts

Published by taratatach about 5 years ago

Improvements for MacOS users:

  • The UTF-8 encoding fix we shipped in the previous release was missing a
    crucial step when re-encoding NFD paths with NFC which lead to the
    creation of conflicts on accentuated paths for users synchronizing a directory
    placed on a HFS+ volume.
    In response, we've changed the way we attack this problem and decided to keep
    paths in the encoding they were created with in Pouch and manage the mapping
    with the filesystem only.

See also known issues.

Happy syncing!

cozy-desktop - Go crazy!

Published by taratatach about 5 years ago

Improvements for all users:

  • Replacing a file on the remote Cozy with a new version without overriding the
    previous one (i.e. moving/deleting the first version before uploading the new
    one) while the client was off would lead to a conflict on said file.
    The client now synchronises the file replacement correctly.
  • When handling a conflict on a document whose ancestor was already in conflict
    would lead to the ancestor's conflict suffix to be replaced instead of a
    conflict suffix to be added on the document itself. This would make detecting
    and fixing conflicts difficult for you. We've made our conflict resolution
    logic more robust to avoid those situations in the future.
  • Due to the way we used to decide on which side changes should be applied
    (i.e. either on the local filesystem or the remote Cozy), some successive
    changes made on both sides could lead to blockage on the modified documents.
    One such situation is the addition of a document in a directory while the
    client is on but shut down before the document is synchronised with the remote
    Cozy followed by the renaming of the parent directory on the remote Cozy. In
    this case, the renaming could not be synchronised locally and the new document
    would never be pushed to the remote Cozy.
    We've made some changes to this logic so we can be more precise in the side
    detection and manage specific situations such as the one above on a case by
    case basis.
  • We're now able to use Two Factor Authentication when connecting the client to
    the remote Cozy if it's been activated. Activating the 2FA after connecting
    the client was already working and if you are in this situation, you have
    nothing to do.

Improvements for MacOS users:

  • We know that HFS+ volumes are using a different UTF-8 encoding norm for paths
    that the one we use on the remote Cozy (i.e. NFD and NFC respectively) but
    we've found out that paths containing UTF-8 characters encoded with NFC
    written to such volumes would get automatically renamed into their NFD
    counterpart, leading to extraneous renaming on the remote Cozy. In most cases
    this would not be an issue but when the renamed directory is Partages reçus,
    the French version of the received shared documents, this can lead to
    conflicts and even ignored sharings.
    To prevent those bad situations from happenning, we're now only keeping NFC
    versions of the document paths in our local Pouch and normalizing all paths
    from local events using NFC so they can be compared with the ones in Pouch.
    This means that local normalization changes won't be synchronised with the
    remote Cozy but will be left untouched on the filesystem.

Improvements for GNU/Linux users:

  • We've made sure that the app is really launched minimized in the systray and
    that no transparent windows are displayed on startup anymore.

See also known issues.

Happy syncing!

cozy-desktop - This is Homecoming

Published by taratatach about 5 years ago

Improvements for all users:

  • Replacing a file on the remote Cozy with a new version without overriding the
    previous one (i.e. moving/deleting the first version before uploading the new
    one) while the client was off would lead to a conflict on said file.
    The client now synchronises the file replacement correctly.
  • When handling a conflict on a document whose ancestor was already in conflict
    would lead to the ancestor's conflict suffix to be replaced instead of a
    conflict suffix to be added on the document itself. This would make detecting
    and fixing conflicts difficult for you. We've made our conflict resolution
    logic more robust to avoid those situations in the future.
  • Due to the way we used to decide on which side changes should be applied
    (i.e. either on the local filesystem or the remote Cozy), some successive
    changes made on both sides could lead to blockage on the modified documents.
    One such situation is the addition of a document in a directory while the
    client is on but shut down before the document is synchronised with the remote
    Cozy followed by the renaming of the parent directory on the remote Cozy. In
    this case, the renaming could not be synchronised locally and the new document
    would never be pushed to the remote Cozy.
    We've made some changes to this logic so we can be more precise in the side
    detection and manage specific situations such as the one above on a case by
    case basis.
  • We're now able to use Two Factor Authentication when connecting the client to
    the remote Cozy if it's been activated. Activating the 2FA after connecting
    the client was already working and if you are in this situation, you have
    nothing to do.

Improvements for MacOS users:

  • We know that HFS+ volumes are using a different UTF-8 encoding norm for paths
    that the one we use on the remote Cozy (i.e. NFD and NFC respectively) but
    we've found out that paths containing UTF-8 characters encoded with NFC
    written to such volumes would get automatically renamed into their NFD
    counterpart, leading to extraneous renaming on the remote Cozy. In most cases
    this would not be an issue but when the renamed directory is Partages reçus,
    the French version of the received shared documents, this can lead to
    conflicts and even ignored sharings.
    To prevent those bad situations from happenning, we're now only keeping NFC
    versions of the document paths in our local Pouch and normalizing all paths
    from local events using NFC so they can be compared with the ones in Pouch.
    This means that local normalization changes won't be synchronised with the
    remote Cozy but will be left untouched on the filesystem.

Improvements for GNU/Linux users:

  • We've made sure that the app is really launched minimized in the systray and
    that no transparent windows are displayed on startup anymore.

See also known issues.

Happy syncing!

cozy-desktop - Message in a top bar

Published by taratatach over 5 years ago

Improvements for all users:

  • In case your client enters an error state, the manual synchronisation button
    will now display is normal label instead of the error label which is already
    display in the window's top bar.
  • We fixed an issue with conflicting document names in the previous version but
    introduced in the process a bug with files without extensions. If we detected
    a conflict on a file without extensions that already had the conflict suffix,
    we would use the milliseconds part of the previous conflict suffix as the new
    file extension. We're now correctly handling conflict suffixes replacement
    for all types of documents, with or without extensions.
  • We recently tried to reduce the error kinds that would lead to a
    "No Internet connection" status to network errors only and introduced a new
    "Synchronization incomplete" status for cases where one or several of yours
    documents could not be synchronised but some could.
    However, we discovered the network errors we're getting from the remote Cozy
    don't have the shape we expected and were detected as synchronisation errors
    thus displaying the "Synchronization incomplete" status. All network errors
    are now correctly detected and handled as "No Internet connection" errors
    with a retry every second until the connection to your Cozy is back.
  • We took this opportunity to handle PouchDB errors thrown when a file or
    directory name starts with an _ (i.e. those are reserved PouchDB words) as a
    synchronisation error instead of a network error.

Improvements for MacOS users:

  • We were forbidding the usage of the : character in folder and file names as
    this is a forbidden character in the MacOS Finder application. However, the
    Cozy Desktop application is working at a lower level where : characters are
    allowed. Those are then displayed as / characters in Finder.
    Note that any / you see in one of your documents' name in Finder, will be
    synchronised as a : in your Cozy and vice versa.

See also known issues.

Happy syncing!

cozy-desktop - A good network goes a long way

Published by taratatach over 5 years ago

Improvements for all users:

  • In case your client enters an error state, the manual synchronisation button
    will now display is normal label instead of the error label which is already
    display in the window's top bar.
  • We fixed an issue with conflicting document names in the previous version but
    introduced in the process a bug with files without extensions. If we detected
    a conflict on a file without extensions that already had the conflict suffix,
    we would use the milliseconds part of the previous conflict suffix as the new
    file extension. We're now correctly handling conflict suffixes replacement
    for all types of documents, with or without extensions.
  • We recently tried to reduce the error kinds that would lead to a
    "No Internet connection" status to network errors only and introduced a new
    "Synchronization incomplete" status for cases where one or several of yours
    documents could not be synchronised but some could.
    However, we discovered the network errors we're getting from the remote Cozy
    don't have the shape we expected and were detected as synchronisation errors
    thus displaying the "Synchronization incomplete" status. All network errors
    are now correctly detected and handled as "No Internet connection" errors
    with a retry every second until the connection to your Cozy is back.
  • We took this opportunity to handle PouchDB errors thrown when a file or
    directory name starts with an _ (i.e. those are reserved PouchDB words) as a
    synchronisation error instead of a network error.

Improvements for MacOS users:

  • We were forbidding the usage of the : character in folder and file names as
    this is a forbidden character in the MacOS Finder application. However, the
    Cozy Desktop application is working at a lower level where : characters are
    allowed. Those are then displayed as / characters in Finder.
    Note that any / you see in one of your documents' name in Finder, will be
    synchronised as a : in your Cozy and vice versa.

See also known issues.

Happy syncing!

cozy-desktop - HEAT

Published by sebn over 5 years ago

Improvements for all users:

  • We fixed an issue where copies of conflicting files would not be created at
    the right path.

Improvements for Windows & GNU/Linux users:

  • We improved our test harness regarding the initial scan of the local synced
    directory. Those new tests already allowed us to identify and fix a couple
    of issues (see next points).
  • When moving a directory then updating a descendant file while the app was
    stopped, the file change would not be synced. This now works as expected.
    This used to work but was broken at some point. The new tests should prevent
    this to happen again.
  • We've found out that if a file is replaced and it's parent directory
    moved or renamed while the client was stopped, we were issuing a
    deleted event for the file at its new location because its inode is
    different and we didn't match it with its Pouch document.
    However, we have logic that prevents issuing deleted events for paths
    we have seen during the initial scan.
    The problem here is that we were correcting the file's path (i.e. we
    follow its parent move and use its new location in the file's path)
    after checking if we had seen the path during the initial scan.
    We're now correcting the path before doing the check so a scan event
    of the new file's path will prevent the initialDiff from issuing a
    deleted event for it.
  • Although some files and directories were correctly ignored during initial
    scan, this was not done immediately, resulting in more work for the app.
    They are now ignored as soon as possible. This should also prevent a couple
    of issues with some Windows system directories.

See also known issues.

Happy syncing!

cozy-desktop - There's a new file in town

Published by sebn over 5 years ago

Improvements for Windows & GNU/Linux users:

  • We've found out that if a file is replaced and it's parent directory
    moved or renamed while the client was stopped, we were issuing a
    deleted event for the file at its new location because its inode is
    different and we didn't match it with its Pouch document.
    However, we have logic that prevents issuing deleted events for paths
    we have seen during the initial scan.
    The problem here is that we were correcting the file's path (i.e. we
    follow its parent move and use its new location in the file's path)
    after checking if we had seen the path during the initial scan.
    We're now correcting the path before doing the check so a scan event
    of the new file's path will prevent the initialDiff from issuing a
    deleted event for it.

See also known issues.

Happy syncing!

cozy-desktop - Because we're only human

Published by sebn over 5 years ago

Improvements for all users:

  • We fixed an issue where copies of conflicting files would not be created at
    the right path.

Improvements for Windows & GNU/Linux users:

  • We improved our test harness regarding the initial scan of the local synced
    directory. Those new tests already allowed us to identify and fix an issue
    (see next point).
  • When moving a directory then updating a descendant file while the app was
    stopped, the file change would not be synced. This now works as expected.
    This used to work but was broken at some point. The new tests should prevent
    this to happen again.
  • Although some files and directories were correctly ignored during initial
    scan, this was not done immediately, resulting in more work for the app.
    They are now ignored as soon as possible. This should also prevent a couple
    of issues with some Windows system directories.

See also known issues.

Happy syncing!

cozy-desktop - Small talk

Published by sebn over 5 years ago

Improvements for Windows & macOS users:

Improvements for Windows & GNU/Linux users:

  • When a file or directory is moved or renamed from an ignored path to a
    non-ignored one, it is now handled as a creation.
  • When a file or directory is moved or renamed from a non-ignored path to an
    ignored one, it is now handled as a deletion.

See also known issues.

Happy syncing!

cozy-desktop - What is your sign?

Published by sebn over 5 years ago

Improvements for Windows & macOS users:

See also known issues.

Happy syncing!

cozy-desktop - Moves and ignorance are not ennemies

Published by sebn over 5 years ago

Improvements for Windows & GNU/Linux users:

  • When a file or directory is moved or renamed from an ignored path to a
    non-ignored one, it is now handled as a creation.
  • When a file or directory is moved or renamed from a non-ignored path to an
    ignored one, it is now handled as a deletion.

See also known issues.

Happy syncing!

cozy-desktop - It's all about the error message

Published by taratatach over 5 years ago

Improvements for all users:

  • We changed the status label when we catch an error that was not specific
    enough for us to offer you a simple resolution. In this situation we were
    stating that the synchronisation was impossible when in most cases, some
    changes can have been reconciliated and synchronised. We're now saying that
    the synchronisation was incomplete. You should still contact us in this
    situation as we might be able to offer you some help.
  • We improved error handling in our auto-update component. Hopefully this
    should make it easier for people with flaky connections to get the latest
    version of the app.
  • Whenever we can't reconciliate some changes coming from your remote Cozy with
    your local documents, we try to inform you via special status label and icon.
    Those issues can have different origins but most of them were notified to you
    as your computer lacking an internet connection. We've made some changes to
    display the No Internet connection status only when we experience network
    issues and a generic synchronisation issues status when we can't be more
    precise.
  • To help you keep your app up-to-date, we have a mechanism that checks for new
    versions every 24 hours. While we do that check, the app does not attempt to
    synchronise anything to avoid stopping the process while the new version is
    installed. We set a maximum wait time of 5 seconds for the check so that you
    won't get stuck in that state for too long. Unfortunately, we've noticed that
    some users hit that timeout because the check was taking too long and don't
    get the new version notification, probably because of a slow Internet
    connection.
    We've decided to increase the maximum wait time to 10 seconds to make sure
    those users are informed that a new version is available. This should have no
    impact for users with a fast Internet connection.
  • In some situations, we can try to reconciliate changes on documents whose
    ancestor we don't know (e.g. a change on directory/file when we've never
    received the creation of directory/). To help merge those changes we try to
    recreate the missing ancestor. However, we found out that recreating a valid
    ancestor for changes coming from your remote Cozy is plain impossible since we
    don't have its remote metadata such as its identifier. This was causing merge
    issues leading to increased merge times for subsequent changes on other
    documents, increased log files sizes and no way to fix the situation.
    We've made the decision to stop trying to recreate missing ancestors of remote
    changes and ignore those issues altogether. This means that the changes won't
    be merged (i.e. this is no different than the current situation) but we won't
    try to merge them over and over, each time we pull changes from the remote
    Cozy (i.e. every minute or so). We will still detect and attempt to merge
    changes on the documents although the situation will be similar until a change
    on the ancestor is made. But this also means we'll be able to merge all those
    changes if you make a change on the ancestor we didn't get the chance to save.

See also known issues.

Happy syncing!

cozy-desktop - Get Up, Stand Up!

Published by sebn over 5 years ago

Improvements for all users:

  • We improved error handling in our auto-update component. Hopefully this
    should make it easier for people with flaky connections to get the latest
    version of the app.

See also known issues.

Happy syncing!

cozy-desktop - It might be off but not offline

Published by taratatach over 5 years ago

Improvements for all users:

  • Whenever we can't reconciliate some changes coming from your remote Cozy with
    your local documents, we try to inform you via special status label and icon.
    Those issues can have different origins but most of them were notified to you
    as your computer lacking an internet connection. We've made some changes to
    display the No Internet connection status only when we experience network
    issues and a generic synchronisation issues status when we can't be more
    precise.

See also known issues.

Happy syncing!

cozy-desktop - We're trying to help you. Really!

Published by taratatach over 5 years ago

Improvements for all users:

  • To help you keep your app up-to-date, we have a mechanism that checks for new
    versions every 24 hours. While we do that check, the app does not attempt to
    synchronise anything to avoid stopping the process while the new version is
    installed. We set a maximum wait time of 5 seconds for the check so that you
    won't get stuck in that state for too long. Unfortunately, we've noticed that
    some users hit that timeout because the check was taking too long and don't
    get the new version notification, probably because of a slow Internet
    connection.
    We've decided to increase the maximum wait time to 10 seconds to make sure
    those users are informed that a new version is available. This should have no
    impact for users with a fast Internet connection.
  • In some situations, we can try to reconciliate changes on documents whose
    ancestor we don't know (e.g. a change on directory/file when we've never
    received the creation of directory/). To help merge those changes we try to
    recreate the missing ancestor. However, we found out that recreating a valid
    ancestor for changes coming from your remote Cozy is plain impossible since we
    don't have its remote metadata such as its identifier. This was causing merge
    issues leading to increased merge times for subsequent changes on other
    documents, increased log files sizes and no way to fix the situation.
    We've made the decision to stop trying to recreate missing ancestors of remote
    changes and ignore those issues altogether. This means that the changes won't
    be merged (i.e. this is no different than the current situation) but we won't
    try to merge them over and over, each time we pull changes from the remote
    Cozy (i.e. every minute or so). We will still detect and attempt to merge
    changes on the documents although the situation will be similar until a change
    on the ancestor is made. But this also means we'll be able to merge all those
    changes if you make a change on the ancestor we didn't get the chance to save.

See also known issues.

Happy syncing!

cozy-desktop - Temporary is temporary

Published by taratatach over 5 years ago

Improvements for all users:

  • We added a new icon set for the Offline status. Prior to this version,
    whenever we detected you might be disconnected from the Internet, we would
    display a "pause" icon with the "Disconnected" status label. We're now
    displaying a shadowed version of the main icon and a "No Internet connection"
    status label. We hope this is clearer to you.
  • We fixed a bug in the way we sort changes coming from your remote Cozy. For
    some changes like the replacement of a file, the order in which we receive
    changes from the remote Cozy is crucial to applying it correctly on the local
    filesystem. In this particular case, we were not always sorting correctly the
    deletion and recreation of the file (or folder) which could lead to documents
    disappearing or conflicts to appear.
  • We are now able to detect the use of a temporary file in some situations and
    correctly handle it (i.e. not move it to the trash and synchronise the new
    version).
  • We've updated again some of our dependencies that don't require changes in
    our code. Those are the same that were upgraded in v3.13.1-alpha.1
    then downgraded back in v3.13.1-beta.1.
    We investigated, identified and excluded the problematic updates, so
    networking should work as expected this time.

Improvements for Windows & GNU/Linux users:

  • When renaming folders and deleting part of their content while the client
    was stopped, the deletion should now be properly handled on restart.

Improvements for GNU/Linux users:

  • We've mitigated an issue LibreOffice users could encounter while saving.
    LibreOffice uses an intermediary temporary file when saving and in some
    situations we could end up deleting the file altogether or move the previous
    version to the Cozy's trash and even not be able to synchronise the new
    version.
    We're now ignoring those temporary files (i.e. with extension .osl-tmp)
    which results in a correct update of the office document.

Improvements for contributors:

  • We've decided to run prettier over our entire codebase with the cozy-app
    eslint config and to keep using it from now on. This will remove the need to
    check for syntax errors and improve homogeneity between Cozy Cloud javascript
    projects.

Changes that should have no effects:

  • We did some minimal refactoring on our proxy setup to introduce some tests.
    There should be no effects on the way the proxy works.

There are some known issues that we'll tackle in the next releases:

  • When we don't detect any update closely following the temporary file deletion
    and that file is not ignored, we end up deleting the file that was saved.
    This is a more general situation and should be fixed very soon.

See also known issues.

Happy syncing!

Package Rankings
Top 11.63% on Npmjs.org
Badges
Extracted from project README
Latest release Licence Windows build Linux & macOS build Code climate Coverage
Related Projects