cozy-desktop

File Synchronisation for Cozy on Desktop and Laptop

AGPL-3.0 License

Downloads
34
Stars
99
Committers
31
cozy-desktop -

Published by taratatach over 3 years ago

Improvements for all users:

  • The Electron framework was upgraded to v12.0.0. This major version fixes a lot
    of security errors as well as other smaller errors like crashes.
  • The Desktop client will now use the Electron API to send local folders and
    files to the OS trash. This should ensure that these documents can be restored
    from the trash via the default trash operations and that their names are
    preserved.
  • Missing parent folders when merging or propagating a child change will not be
    created by default as this could lead to conflicts down the road. We will
    instead rely on retry mechanisms to make sure ancestor folders exist before
    saving a document record in PouchDB or propagating it to the remote Cozy.
    Local parent directories will still be created if missing when propagating a
    remote change as this should not lead to conflicts.
  • The synchronization error management has been improved to make sure you don't
    get stuck over a synchronization failure that should get resolved with retries
    or could manually be skipped.
  • We've fixed a local watcher issue that prevented the synchronization of
    folders moves or renamings before they got propagated to the remote Cozy if
    they have child documents.
  • Platform incompatibilities errors raised during the propagation of remote
    changes to the local filesystem (e.g. when characters forbidden by the local
    filesystem are present in some document's name on the remote Cozy) will now be
    handled as other synchronization errors. You will thus see an error message
    within the GUI when this happens.
  • We've fixed a regression that prevented the propagation of a file deletion if
    that file had been previously modified on the same side and this modification
    was not yet propagated.
  • We've fixed an issue that prevented the propagation of a local document
    deletion if its parent folder is then moved or renamed on the same side before
    the deletion is propagated.
  • We've fixed an issue that prevented the propagation of a folder deletion if it
    had been previously moved or renamed on the same side and this move was not
    yet propagated.
  • We've fixed an issue that prevented the propagation of a file replacement with
    an other synced file if it was modified on the same side before the
    replacement could be propagated.
  • We've made some small changes to the design of the list of recently synced
    files to harmonize it with the design you're used to in your Drive application
    on the Web.
  • We've changed the default action executed when clicking on an element in the
    list of recently synced files. It will now open the file in your OS default
    application for its type. You can still show it in its parent folder by
    clicking on its parent folder path, displayed right under its name.

See also known issues.

Happy syncing!

cozy-desktop - Conflict, get on a time

Published by taratatach over 3 years ago

Improvements for all users:

  • The mechanism we introduced in the last version to resolve conflicts from the
    synchronization process when we've run out of options was assuming that the
    current date of the computer would always be greater than the last
    modification date of the document being renamed on the remote Cozy.
    Since this is not always the case and the remote Cozy will refuse the renaming
    in those situations, we'll use the same workaround than for the other requests
    and send the most recent date between the current local date and the last
    modification date of the remote document.
  • Whenever a file move or name change is synchronized, we'll properly remove its
    source path entry from the Recent list in the main window. Its destination
    path entry will remain as expected.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach over 3 years ago

Improvements for all users:

  • Whenever a file move or name change is synchronized, we'll properly remove its
    source path entry from the Recent list in the main window. Its destination
    path entry will remain as expected.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach over 3 years ago

Improvements for all users:

  • The mechanism we introduced in the last version to resolve conflicts from the
    synchronization process when we've run out of options was assuming that the
    current date of the computer would always be greater than the last
    modification date of the document being renamed on the remote Cozy.
    Since this is not always the case and the remote Cozy will refuse the renaming
    in those situations, we'll use the same workaround than for the other requests
    and send the most recent date between the current local date and the last
    modification date of the remote document.

See also known issues.

Happy syncing!

cozy-desktop - An error can hide another one

Published by taratatach over 3 years ago

Improvements for all users:

  • Files that were modified then trashed on your Cozy before the Desktop client
    could fetch the modification will be trashed on your computer and your Cozy
    and not re-uploaded.
  • The workaround we introduced in the previous release to help synchronize
    modifications to your remote Cozy when modification dates are not the same in
    the local database and the remote Cozy created a regression for users who
    locally modified documents that had not been modified in a very long time and
    did not have the remote modification date stored in the local database.
    For those documents, we'll skip the workaround and hope that the local
    modification date is more recent than the remote one (which is very likely).
  • If some of your documents (files like directories) have local names starting
    or ending with white-spaces, the client would remove those spaces when sending
    them to your remote Cozy thus creating a de-synchronized state between their
    local and remote versions. This would prevent the client from finding their
    remote version in later requests.
    We're now making sure their names are not modified when sending them to your
    remote Cozy.
  • Because of a limitation in Electron v7+, we would not be able to advertise the
    size of a file being uploaded to your remote Cozy, preventing it from refusing
    the upload right away if the file was too large or not enough disk space was
    available on the Cozy. In those cases, the client would thus send the whole
    file to see it refused by the Cozy.
    The Cozy can now receive the file size via a request parameter which allows us
    to work around the Electron limitation and get feedback on the upload from the
    very beginning thus saving time and resources.
  • In the previous release, we started managing and sometimes displaying
    synchronization errors within the client's interface but we grouped a lot of
    data and metadata related errors together as an "Unreachable Cozy" state. This
    lead to a lot of confusion as the Cozy was most of the time perfectly
    reachable and the underlying issues would not be solved.
    We now try to manage most of those errors as best we can and provide ways to
    solve the underlying issues either automatically or by notifying you.
  • Some expectations we were making on the shape of local metadata stored in
    PouchDB were not met and resulted in exceptions being thrown with the recent
    changes done to the initial scan.
    We've taken measures to make sure those expectations are met in the future and
    existing metadata is cleaned up to meet these expectations as well.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach over 3 years ago

Improvements for all users:

  • Some expectations made in the previous beta release on the local metadata
    stored in PouchDB were not met and resulted in exceptions being thrown thus
    stopping the synchronization.
    We've taken measures to make sure those expectations are met in the future and
    existing metadata is cleaned up to meet these expectations as well.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach over 3 years ago

Improvements for all users:

  • Files that were modified then trashed on your Cozy before the Desktop client
    could fetch the modification will be trashed on your computer and your Cozy
    and not re-uploaded.
  • The workaround we introduced in the previous release to help synchronize
    modifications to your remote Cozy when modification dates are not the same in
    the local database and the remote Cozy created a regression for users who
    locally modified documents that had not been modified in a very long time and
    did not have the remote modification date stored in the local database.
    For those documents, we'll skip the workaround and hope that the local
    modification date is more recent than the remote one (which is very likely).
  • If some of your documents (files like directories) have local names starting
    or ending with white-spaces, the client would remove those spaces when sending
    them to your remote Cozy thus creating a de-synchronized state between their
    local and remote versions. This would prevent the client from finding their
    remote version in later requests.
    We're now making sure their names are not modified when sending them to your
    remote Cozy.
  • Because of a limitation in Electron v7+, we would not be able to advertise the
    size of a file being uploaded to your remote Cozy, preventing it from refusing
    the upload right away if the file was too large or not enough disk space was
    available on the Cozy. In those cases, the client would thus send the whole
    file to see it refused by the Cozy.
    The Cozy can now receive the file size via a request parameter which allows us
    to work around the Electron limitation and get feedback on the upload from the
    very beginning thus saving time and resources.
  • In the previous release, we started managing and sometimes displaying
    synchronization errors within the client's interface but we grouped a lot of
    data and metadata related errors together as an "Unreachable Cozy" state. This
    lead to a lot of confusion as the Cozy was most of the time perfectly
    reachable and the underlying issues would not be solved.
    We now try to manage most of those errors as best we can and provide ways to
    solve the underlying issues either automatically or by notifying you.

See also known issues.

Happy syncing!

cozy-desktop - Keep tryin', you'll make it

Published by taratatach over 3 years ago

Improvements for all users:

  • Some synchronization errors will now be notified to you within the main window
    with information about the error itself and how to fix it. Although automatic
    retries will be performed in the background, you'll have the opportunity to
    request an early retry via the interface.
    Know that the synchronization will be blocked by the failing change until it
    can finally be applied. This should avoid a lot of automatically dropped
    changes as we would otherwise stop retrying after the third failed attempt.
  • We upgraded the framework upon which our application is built, Electron, to
    v11.1.1 which is the latest stable version. This should bring more stability
    to the application overall and fix an issue on macOS Big Sur which was
    preventing the application from restarting after an upgrade.
  • We've changed the way we handle the simultaneous deletions of the same
    document on the remote Cozy and the local filesystem so that any resulting
    synchronization conflict is only temporary (i.e. you would see an error
    message but it should be resolved during the following retry).
  • Clients can now be disconnected from the remote Cozy even if it is no longer
    reachable (e.g. completely deleted or deleted after being moved to another
    domain). The local configuration and database will be wiped out.
  • We'll now verify if the Cozy has enough space before uploading files to avoid
    wasting time and resources to get an error at the end of the upload.
  • Sometimes, the creation and modification dates of documents created on the
    remote Cozy at the initiative of the desktop client are different from those
    supplied by the client. This can come from the presence of EXIF metadata in
    photos for example. To avoid any refusal by the Cozy to apply future actions
    on these documents, we will now always pass the most recent modification date
    between that of the file system and that of the Cozy in requests sent to the
    Cozy.
  • We're now making sure the list of recently synchronized files persisted to
    disk includes only one occurrence of each file since we display only one of
    them. With this change, the displayed list will always contain 250 elements
    once this number is reached.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach over 3 years ago

Improvements for all users:

  • We're now correctly restarting the remote watcher when we detect the Cozy is
    reachable again after a failed attempt at fetching changes from the remote
    Cozy.
  • We're now making sure the list of recently synchronized files persisted to
    disk includes only one occurrence of each file since we display only one of
    them. With this change, the displayed list will always contain 250 elements
    once this number is reached.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach over 3 years ago

Improvements for all users:

  • Clients can now be disconnected from the remote Cozy even if it is no longer
    reachable (e.g. completely deleted or deleted after being moved to another
    domain). The local configuration and database will be wiped out.
  • Changes that we failed to synchronize and should be retried will now be
    retried without previously running a check that validates if the
    synchronization should be successful. All changes made either on the local
    filesystem or the remote Cozy will thus be taken into account when retrying.
  • We'll now verify if the Cozy has enough space before uploading files to avoid
    wasting time and resources to get an error at the end of the upload.
  • Sometimes, the creation and modification dates of documents created on the
    remote Cozy at the initiative of the desktop client are different from those
    supplied by the client. This can come from the presence of EXIF metadata in
    photos for example. To avoid any refusal by the Cozy to apply future actions
    on these documents, we will now always pass the most recent modification date
    between that of the file system and that of the Cozy in requests sent to the
    Cozy.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach almost 4 years ago

Improvements for all users:

  • To make sure you're not tempted to give up on some changes because of a
    temporary error and end up with an desynchronized state and potentially lose
    data, we've removed the possibility to manually give up for most errors that
    are displayed to you in the main window. Instead, only conflicts with the
    remote Cozy will be droppable as we sometimes find ourselves in a situation
    where the conflict will never be resolved.

Improvements for Windows users:

  • We've removed a duplicate retry mechanism for failed movements of locked
    documents (e.g. opened Office documents or being checked by an Anti-Virus
    software). This should speed up retries when the document is still locked.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach almost 4 years ago

Improvements for all users:

  • We upgraded the framework upon which our application is built, Electron, to
    v11.1.1 which is the latest stable version. This should bring more stability
    to the application overall and fix an issue on macOS Big Sur which was
    preventing the application from restarting after an upgrade.
  • We've changed the way we handle the simultaneous deletions of the same
    document on the remote Cozy and the local filesystem so that any resulting
    synchronization conflict is only temporary (i.e. you would see an error
    message but it should be resolved during the following retry).
  • Several improvements were made to synchronization error detection and messages
    over the previous beta release. Messages should be cleaner with an outstanding
    document name and filesystem locks detection should be better.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach almost 4 years ago

Improvements for all users:

  • Some synchronization errors will now be notified to you within the main window
    with information about the error itself and how to fix it and two options:
    giving up on the change if it can't be synchronized or requesting an early
    retry (automatic retries will be performed in the background).
    Know that the synchronization will be blocked by the failing change until an
    outcome is decided. This should avoid a lot of automatically dropped changes
    as we would otherwise stop retrying after the third attempt.

See also known issues.

Happy syncing!

cozy-desktop - A tree was promised

Published by taratatach almost 4 years ago

Improvements for all users:

  • We fixed the way we fetch the local documents tree to both prevent failures
    when sending messages to support from the application and send the appropriate
    paths.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach almost 4 years ago

Improvements for all users:

  • We fixed the way we fetch the local documents tree to both prevent failures
    when sending messages to support from the application and send the appropriate
    paths.

See also known issues.

Happy syncing!

cozy-desktop - A new path to your pouch

Published by taratatach almost 4 years ago

Improvements for all users:

  • This release lays the ground work for a future synchronization algorithm. We
    now store the complete remote metadata of each document and the local metadata
    of both files and directories. This will allow us to make deeper comparisons
    and take better action in complex situations (e.g. a file modification and
    renaming on the local filesystem with a parent directory renaming on the
    Cozy).
    Another part of this base work is the move to generated PouchDB records ids.
    Those were previously based on the document's path and this scheme had several
    limitations (e.g. when a document was moved or renamed, its record id had to
    change).
  • The move to generated PouchDB ids allows you to synchronize documents whose
    name start with an underscore (_), in the root synchronization folder. Those
    previously resulted in reserved PouchDB ids and could not be stored thus
    synchronized.
  • The upload requests rejection protection does not create memory leaks anymore
    as it will be cleaned up after the requests terminate, whether they're
    successful or not.
  • When a new directory is linked with an existing directory on the other side
    (i.e. either the local filesystem or the remote Cozy) with the same name in
    the same parent directory, we'll update the existing directory's metadata with
    the new directory's metadata to make sure they're in sync.
  • Now that we track the local metadata of files, we can still detect during the
    start-up local scan if a the file was updated on the local filesystem even if
    a remote update was saved in PouchDB but not synced before the client was
    stopped. With this detection we can decide if a conflict needs to be created
    or not without losing any data and stop applying the remote update in all
    cases.
  • We'll now track more closely the local modifications resulting from the
    application on the filesystem of changes fetched from the remote Cozy. This is
    important especially for tracking movements and make sure opposite movements
    won't be wrongly "detected" after a client restart.

Improvements for Windows and Linux users:

  • We've made sure the logic dedicated to the initial scan, run after a client
    start, won't be used after the initial scan is done. This was the source of
    bugs when applying folder movements fetched from the remote Cozy.

Improvements for Windows users:

  • Files marked as executable and downloaded from the Cozy will remain marked as
    executable on the Cozy and all the devices recognizing this flag (i.e. on
    Linux or macOS). Since this flag is not recognized on Windows, synchronizing
    an executable file with a Windows device would previously remove the flag for
    everybody.

Improvements for macOS users:

  • We're now handling moving the same document multiple times in a short delay
    and moving a document just downloaded from the Cozy to a path including UTF-8
    characters on HFS+ filesystems.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach almost 4 years ago

Improvements for macOS users:

  • We're now handling moving the same document multiple times in a short delay
    and moving a document just downloaded from the Cozy to a path including UTF-8
    characters on HFS+ filesystems.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach almost 4 years ago

Improvements for all users:

  • We'll now track more closely the local modifications resulting from the
    application on the filesystem of changes fetched from the remote Cozy. This is
    important especially for tracking movements and make sure opposite movements
    won't be wrongly "detected" after a client restart.

Improvements for windows and Linux users:

  • We've made sure the logic dedicated to the initial scan, run after a client
    start, won't be used after the initial scan is done. This was the source of
    bugs when applying folder movements fetched from the remote Cozy.

See also known issues.

Happy syncing!

cozy-desktop -

Published by taratatach almost 4 years ago

Improvements for all users:

  • This release lays the ground work for a future synchronization algorithm. We
    now store the complete remote metadata of each document and the local metadata
    of both files and directories. This will allow us to make deeper comparisons
    and take better action in complex situations (e.g. a file modification and
    renaming on the local filesystem with a parent directory renaming on the
    Cozy).
    Another part of this base work is the move to generated PouchDB records ids.
    Those were previously based on the document's path and this scheme had several
    limitations (e.g. when a document was moved or renamed, its record id had to
    change).
  • The move to generated PouchDB ids allows you to synchronize documents whose
    name start with an underscore (_), in the root synchronization folder. Those
    previously resulted in reserved PouchDB ids and could not be stored thus
    synchronized.
  • The upload requests rejection protection does not create memory leaks anymore
    as it will be cleaned up after the requests terminate, whether they're
    successful or not.
  • When a new directory is linked with an existing directory on the other side
    (i.e. either the local filesystem or the remote Cozy) with the same name in
    the same parent directory, we'll update the existing directory's metadata with
    the new directory's metadata to make sure they're in sync.
  • Now that we track the local metadata of files, we can still detect during the
    start-up local scan if a the file was updated on the local filesystem even if
    a remote update was saved in PouchDB but not synced before the client was
    stopped. With this detection we can decide if a conflict needs to be created
    or not without losing any data and stop applying the remote update in all
    cases.

Improvements for Windows users:

  • Files marked as executable and downloaded from the Cozy will remain marked as
    executable on the Cozy and all the devices recognizing this flag (i.e. on
    Linux or macOS). Since this flag is not recognized on Windows, synchronizing
    an executable file with a Windows device would previously remove the flag for
    everybody.

See also known issues.

Happy syncing!

cozy-desktop - Electric surge

Published by taratatach about 4 years ago

Improvements for all users:

  • We upgraded the framework upon which our application is built, Electron, to
    v9.2.1 which is the 2nd latest major version. This should bring more
    stability to the application overall and prevent some crashes. We can also
    expect smaller bundles. This upgrade brings us official support back for a
    while.
  • Data migrations run after some client upgrades should not prevent not fully
    synchronized changes from being detected and synchronized after the
    migration.
  • Documents added on your remote Cozy, detected by the client but not fully
    synchronized before it is stopped should be synchronized correctly after the
    next client launch. The client should not try to delete them on your Cozy
    because it does not find them locally (the deletions never went through
    fortunately).
  • Fixes the displayed icon of recently synchronized files whose type is
    identified as text.
  • Fixes the infinite spinner of the Updater window, displayed when download
    progress info is not available.
  • Failing file uploads could block the client in an ever ending synchronization
    state because of the way Electron/Chromium treats those errors.
    We've added some workarounds to catch and process those errors to make sure
    the file upload attempt finishes (it will still be failed) and releases
    control back to the synchronization process.

Improvements for Windows users:

  • With the Electron upgrade, you should be able to disconnect your client from
    your remote Cozy via the client interface.

Improvements for macOS users:

  • The order in which changes fetched from the remote Cozy were processed could
    hinder the paths normalization and lead to issues like conflicts.
    We're now sorting changes before the normalization to make sure the process
    will complete as expected.

Improvements for Linux users:

  • If you have disabled the client autolaunch upon your computer startup it
    should not be re-enabled during your next application launch anymore.

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