Спешим сообщить, что мы исправили серьезную проблему с Cut&Paste в темной теме в версии 6.0.0. Понимание проблемы появилось в пятницу и...

[Исправлено] Баг c cut&paste в MLO6. Пожалуйста, обновите.

Спешим сообщить, что мы исправили серьезную проблему с Cut&Paste в темной теме в версии 6.0.0. Понимание проблемы появилось в пятницу и за субботу и воскресенье она была исправлена и протестирована. Релиз с исправлением был выпущен в понедельник.


Пожалуйста, обновитесь до новой версии 6.0.1. Это важно.

Не менее важно для нас быть открытыми, поэтому мы хотим ниже объяснить, что произошло.


В чем была проблема и кого она касается

Ошибка, проявлялась ТОЛЬКО в темной теме:

  •  если включена темная тема и вы вырезаете/вставляете задачу, то вместо переноса, создается ее полный дубликат
  • при синхронизации на другое устройство передается только одна из этих задач дубликатов
  • если вы удаляете один из дубликатов, и *синхронизируете*, то удаляются все дубликаты

Примечание. Если вы не вырезали задачи (Cut/Paste) будучи в *темной теме*, вас эта ошибка не касается. Но все равно необходимо скорейшее обновление на 6.0.1 с исправлением

Что делать, если вы вырезали задачи будучи в темной теме и синхронизировались

  • если вы не удаляли задачи дубликаты, то новая версия 6.0.1 автоматически исправит ситуацию. После этого оставшиеся задачи дубликаты можно безопасно удалить, оставив только одну.
  • если в версии 6.0.0 вы удаляли задачи дубликаты и *синхронизировались*, то потерянные задачи необходимо восстановить из бакапа (см ниже).  

 

Пользователи, которые с нами уже давно, знают, что мы всегда открыто сообщаем о всех замеченных серьезных проблемах и анализируем их, чтобы становиться лучше. Благо, такие проблемы происходят не часто вследствие налаженного процесса.  

Почему важно использовать бакап

Сохранность данных пользователей наш наивысший приоритет. Именно поэтому для десктоп версии мы создали расширенную систему бакапов (резервное копирование) ваших локальных файлов, которую приложение рекомендует включить. Пожалуйста, не игнорируйте эту рекомендацию.


При правильной настройке создаются такие резервные копии:

  • последние 5 копий
  • один бакап файл на начало каждого дня
  • один бакап файл на начало каждой недели и месяца

 

Таким образом, при случайном удалении или ошибке вы можете найти потерянную задачу в бакапе за нужную дату и перенести ее обратно в основной файл.

Как восстановить потерянную задачу из бакапа

1.  Найдите файл бакапа (расширение *.bak) за нужную дату в папке, которая настроена для бакапа (Сервис - Настройки - Резервное копирование)

2. Сделайте копию бакап файла на всякий случай

3. Откройте эту копию бакапа в MLO

4. Если у вас настроена облачная синхронизация, приложение запросит хотите ли вы синхронизировать этот бакап файл с облаком.
Ответьте НЕТ, чтобы синхронизация не удалила задачи в бакап файле

5.  Найдите нужные задачи и скопируйте их в ваш основной файл через буфер обмена

Совет: Для того, чтобы одновременно открыть два файла данных эта опция должна быть включена:  (Сервис - Настройки - Поведение - Несколько экземпляров)

Подробнее о баге

Для интересующихся, немного технических деталей от Андрея Ткачука о природе бага и почему его нелегко было выявить:

 

  •  При запуске приложения создается главное окно, дескриптор которого никогда не меняется в нормальных условиях (т.е. главное окно как объект не уничтожается пока приложение запущено)
  • Однако при реализации темной темы мной был упущен момент, что используемая библиотека в своих недрах полностью пересоздает главное окно, и как результат меняется его дескриптор
  • С первых версий приложения при начальной инициализации этот дескриптор сохранялся несколькими объектами для последующей отправки окну сообщений (обновление счетчиков, удаление задачи после вырезания, обработка глобальных горячих клавиш)
  • Как результат, при переключении на темную тему эти сообщения продолжали посылаться старому дескриптору, которого уже не существовало. Ошибки не возникало, но и никто сообщение не обрабатывал.
  • При вырезании задачи отсылалось сообщение для удаления вырезаемой задачи в старом месте после создания полной копии в новом. Но сообщение не обрабатывалось. Появлялась полная копия задачи с тем же ID.


За несколько месяцев тестирования ни мы, ни бета-тестеры не заметили этой проблемы. Приносим свои извинения за данную ситуацию.
    
Спасибо всем, кто сообщил подробности и позволил нам по крупицам провести анализ, быстро исправить проблему и сделать выводы!

0 Comments: