Releases: cozy-labs/cozy-desktop
Nice and clean
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
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²
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 theredirect
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.
- child only moves (i.e. we detect a move on a folder descendant which is due
- 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!
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
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
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. - child only moves (i.e. we detect a move on a folder descendant which is due
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!
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
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
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
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!