Skip to content

Releases: cozy-labs/cozy-desktop

Nice and clean

06 Nov 11:39
8e14ffe
Compare
Choose a tag to compare
Nice and clean Pre-release
Pre-release

Improvements for Windows users:

  • The library used to package our binaries changed the format of the created
    Uninstall Windows registry subkey without cleaning up old keys when updating
    the application. This means that Windows users updating from a version prior
    to v3.16.0 to v3.16.0 will have 2 Cozy Drive applications listed in the
    Windows programs manager and uninstalling the old version will actually
    uninstall the most recent and leave them with a seemingly un-uninstallable
    Cozy Drive version.
    We added some cleanup logic to Cozy Drive to take care of removing the old
    registry subkey automatically.

We got caught in a loop

05 Nov 16:01
fa32555
Compare
Choose a tag to compare
Pre-release

Improvements for all users:

  • We use a monitoring system (hosted on our own infrastructure) to receive
    reports of errors happening when you use Cozy Desktop. This system requires a
    client to be setup in our app to send those reports to the server. We used an
    older version of that client which stopped working when we upgraded Electron
    in the previous version and that lead to app crashes whenever we tried to send
    a report.
    We've migrated to the latest version of that client so you shouldn't
    experience those crashes anymore and we'll even get a bit more of information
    in each report which might help us help you.
  • We have detected that in some very specific situations, the app can enter a
    local loop of conflict renaming on one or more documents. Those loops would
    prevent your document to be synchronized with the remote Cozy or for it to be
    continuously renamed and, in the most extreme cases, lead to app crashes on
    start-up due to the size of the document (each conflict renaming would
    increase its size).
    One of those situations is the presence of more than one document in our
    database with the same unique filesystem identifier, resulting from the
    misinterpretation of some filesystem events. We've taken some steps to
    prevent the presence of those 2 documents at the same time, not preventing
    possible future conflicts on the sole document left but preventing a conflict
    loop to start from there.
  • For those of you who have already experienced extreme local conflict loops and
    can't get the app to start without crashing, we have re-evaluated our strategy
    to load all the existing documents during start-up so their size would not
    matter and the app keep working.
  • We have decided to reassess how we compute the application state and how we
    communicate it, especially via the systray icon, so that you're more aware of
    its activities. This is notably true for the upload of large files during
    which the spinner would stop and the app would state it is up-to-date while
    the upload is actually not finished and shutting done the application would
    cancel it.

Improvements for Windows users:

  • We brought back the systray icon contextual menu (i.e. the one showing up on
    right-clicks) mistakenly removed in a previous version, meaning you would have
    to open the app window and use the button in the Preferences tab to shut it
    down.

See also known issues.

Happy syncing!

Electron = mc²

24 Oct 14:48
c863f1c
Compare
Choose a tag to compare

Improvements for all users:

  • We upgraded a lot of dependencies and especially Electron which was upgraded
    to v5.0.0. This brings in Node v12.0.0. They should bring performance and
    stability improvements.
  • We improved the stability of the ordering and identification of changes
    fetched from the remote Cozy. This should reduce the number of unmergeable
    changes and conflicts arising from those situations. This is especially true
    when complex moves were synchronised with the remote Cozy (e.g. moving a
    folder from inside a moved folder).
  • We fixed a few minor UI issues like long filenames which were not correctly
    ellipsized in the synced files list.
  • When upgrading Electron to v5.0.0, we broke the onboarding process because of
    a new security restriction in Chromium (which is packaged with Electron)
    preventing us from redirecting to the folder selection window at the end of
    the OAuth authentication process with your Cozy.
    We're now manually loading the folder selection window after the
    authentication instead of following the redirect URI sent back by the Cozy.
  • Our remote changes watcher tries to recreate the changes that were executed
    on the remote Cozy from the resulting documents and the old versions we have
    locally. We found out that we were not correctly detecting and thus handling
    complex hierarchy changes like:
    • child only moves (i.e. we detect a move on a folder descendant which is due
      to its ancestor move and should not result in any local action)
    • moves inside move (i.e. renaming/moving the child of a moved parent within
      that same parent)
    • moves from inside a move (i.e. moving the child of a moved parent outside
      that parent)
      Handling those changes correctly should result in a lot less unmerged changes
      and their consequences.
  • After fixing the remote changes identification logic, we found out that our
    sorting algorithm (necessary to avoid potential collisions when applying them
    locally) was not stable and the resulting order depended greatly on the
    original changes and their order.
    We separated the criterias on which we sort the changes to come up with 2
    sorting algorithms called on after the other so the result of each one is
    predictable and thus the end result too. This should prevent some conflicts
    and mis-applied changes.

Improvements for MacOS users:

  • In an attempt to prevent losing a working config, we decided to use a write
    technique called copy-on-write. This proved itself unnecessary and even lead
    to issues for some users when they had both a working config and a temporary
    config file. We stopped using this technique without losing the safety of an
    atomic write via a temporary config file.
  • When launching the application, we do what we call an initial scan of your
    synced directory to list all its documents and try to detect changes that were
    made since the last time the application was running. It is a complex task
    which does not behave in the same way the live watching does and we were not
    always ordering the resulting changes in the correct order, resulting in
    incorrect changes or unmerged changes. We designed a specific sorting
    algorithm for this phase to stabilize this situation which should result in
    less errors during the application startup.
  • Apple now requires a notarization step for apps to be installed on newer
    versions of macOS. With this process, Apple certifies that Cozy Desktop
    does not contain any known malware and macOS will let you install our app
    without having to tinkle with your security parameters.
  • The way we store documents metadata (e.g. their paths) means we have to modify
    the saved metadata of the moved folder itself but also all its descendants
    (i.e. so their paths in our database reflects their path on the filesystem).
    We found an issue in our moves handling logic that prevented us from detecting
    moves from inside a move (i.e. we move a folder to another location from a
    parent that was just moved as well).
    We're now detecting them correctly which means those changes will now be
    propagated to the remote Cozy as expected.
  • We found out that the libraries we use to watch the changes done to your files
    on your filesystem could sometimes fire events with the wrong type. Indeed,
    we've seen events for the addition of files with a directory type and
    vice-versa.
    We rely on this type to decide which actions to run so we're now verifying
    that the type we received is correct before we proceed.

Improvements for GNU/Linux users:

  • Upgrading Electron, the desktop applications framework upon which Cozy Desktop
    is built, means upgrading the Node and Chromium versions shipped with it.
    Starting with Electron v4, when libappindicator is available and installed on
    your distribution, the systray icon will be displayed via this library. This
    means that the icon won't respond to left clicks anymore. To mitigate this
    situation, we decided to add the "Show Application" menu entry in the context
    menu for all distributions. This context menu can be displayed via a right
    click on the systray icon.

See also known issues.

Happy syncing!

Security first!

24 Oct 10:14
c42366e
Compare
Choose a tag to compare
Security first! Pre-release
Pre-release

Improvements for all users:

  • When you send a message to our support via the application, we also securely
    send your last log file to one of our servers for analysis so we can better
    identify the issues you might be facing. When we upgraded Electron, the
    expected configuration of this request has changed and the log file would not
    be sent anymore.
    We've updated this configuration and log files are joined to your message
    again.

Improvements for MacOS users:

  • We found out that the libraries we use to watch the changes done to your files
    on your filesystem could sometimes fire events with the wrong type. Indeed,
    we've seen events for the addition of files with a directory type and
    vice-versa.
    We rely on this type to decide which actions to run so we're now verifying
    that the type we received is correct before we proceed.

See also known issues.

Happy syncing!

Divide and conquer

22 Oct 11:00
63b9862
Compare
Choose a tag to compare
Divide and conquer Pre-release
Pre-release

Improvements for all users:

  • After fixing the remote changes identification logic, we found out that our
    sorting algorithm (necessary to avoid potential collisions when applying them
    locally) was not stable and the resulting order depended greatly on the
    original changes and their order.
    We separated the criterias on which we sort the changes to come up with 2
    sorting algorithms called on after the other so the result of each one is
    predictable and thus the end result too. This should prevent some conflicts
    and mis-applied changes.

See also known issues.

Happy syncing!

Don't lose sight of your descendance

21 Oct 11:16
ba6f95f
Compare
Choose a tag to compare
Pre-release

Improvements for all users:

  • When upgrading Electron to v5.0.0, we broke the onboarding process because of
    a new security restriction in Chromium (which is packaged with Electron)
    preventing us from redirecting to the folder selection window after connecting
    to your Cozy and authorizing the Cozy Desktop app.
    The redirection is now handled differently to avoid the security issue and
    load the folder selection window.

  • Our remote changes watcher tries to recreate the changes that were executed
    on the remote Cozy from the resulting documents and the old versions we have
    locally. We found out that we were not correctly detecting and thus handling
    complex hierarchy changes like:

    • child only moves (i.e. we detect a move on a folder descendant which is due
      to its ancestor move and should not result in any local action)
    • moves inside move (i.e. renaming/moving the child of a moved parent within
      that same parent)
    • moves from inside a move (i.e. moving the child of a moved parent outside
      that parent)

    Handling those changes correctly should result in a lot less unmerged changes
    and their consequences.

Improvements for MacOS users:

  • With the new Apple notarization process, we need to specify which OS
    permissions will be required and requested by our app. By default, apps are
    not allowed to load code frameworks that were not signed by the same team ID
    or by Apple itself.
    Since we use the Electron framework which is not signed by us or Apple, we
    need to disable circumvent this restriction or the app won't start.
  • The way we store documents metadata (e.g. their paths) means we have to modify
    the saved metadata of the moved folder itself but also all its descendants
    (i.e. so their paths in our database reflects their path on the filesystem).
    We found an issue in our moves handling logic that prevented us from detecting
    moves from inside a move (i.e. we move a folder to another location from a
    parent that was just moved as well).
    We're now detecting them correctly which means those changes will now be
    propagated to the remote Cozy as expected.

See also known issues.

Happy syncing!

You've been served!

18 Oct 11:09
bb45074
Compare
Choose a tag to compare
You've been served! Pre-release
Pre-release

Improvements for MacOS users:

  • Apple now requires a notarization step for apps to be installed on newer
    versions of macOS. With this process, Apple certifies that Cozy Desktop
    does not contain any known malware and macOS will let you install our app
    without having to tinkle with your security parameters.

See also known issues.

Happy syncing!

Defeated by our peers

16 Oct 16:36
7fe4875
Compare
Choose a tag to compare
Defeated by our peers Pre-release
Pre-release

Improvements for all users:

  • We fixed a technical error with one of our dependencies which prevented the
    app from starting.

See also known issues.

Happy syncing!

It's best with a little waiting

16 Oct 11:04
0de2b0d
Compare
Choose a tag to compare
Pre-release

Improvements for all users:

  • We upgraded a lot of dependencies and especially Electron which was upgraded
    to v5.0.0. This brings in Node v12.0.0. They should bring performance and
    stability improvements.
  • We improved the stability of the ordering and identification of changes
    fetched from the remote Cozy. This should reduce the number of unmergeable
    changes and conflicts arising from those situations. This is especially true
    when complex moves were synchronised with the remote Cozy (e.g. moving a
    folder from inside a moved folder).
  • We fixed a few minor UI issues like long filenames which were not correctly
    ellipsized in the synced files list.

Improvements for MacOS users:

  • In an attempt to prevent losing a working config, we decided to use a write
    technique called copy-on-write. This proved itself unnecessary and even lead
    to issues for some users when they had both a working config and a temporary
    config file. We stopped using this technique without losing the safety of an
    atomic write via a temporary config file.
  • When launching the application, we do what we call an initial scan of your
    synced directory to list all its documents and try to detect changes that were
    made since the last time the application was running. It is a complex task
    which does not behave in the same way the live watching does and we were not
    always ordering the resulting changes in the correct order, resulting in
    incorrect changes or unmerged changes. We designed a specific sorting
    algorithm for this phase to stabilize this situation which should result in
    less errors during the application startup.

Improvements for GNU/Linux users:

  • Upgrading Electron, the desktop applications framework upon which Cozy Desktop
    is built, means upgrading the Node and Chromium versions shipped with it.
    Starting with Electron v4, when libappindicator is available and installed on
    your distribution, the systray icon will be displayed via this library. This
    means that the icon won't respond to left clicks anymore. To mitigate this
    situation, we decided to add the "Show Application" menu entry in the context
    menu for all distributions. This context menu can be displayed via a right
    click on the systray icon.

See also known issues.

Happy syncing!

Move in sync

16 Sep 14:18
3f66256
Compare
Choose a tag to compare

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!