Repository navigation
ZeroNote 0.19.0 — ревизия
Ревизия. Код проверен целиком — на ошибки, безопасность и скорость: четыре проверяющих по областям кода, за каждым — второй, который пытался находку опровергнуть. Выжило 39 находок: 10 — о потере данных, 3 — о безопасности, 24 — дефекты. Исправлены все, кроме двух, отложенных сознательно; каждое исправление начиналось с теста, который падал на старом коде.
Несохранённое больше не теряется. Повторное открытие уже открытого файла — щелчком в дереве, по [[ссылке]], из палитры или выдачи поиска — перечитывало его с диска и стирало несохранённые правки; теперь оно только показывает вкладку. Признак «изменён» держится до сохранения и после смены кодировки, переносов или удаления файла снаружи. Закрытие окна сначала задаёт все вопросы, потом закрывает. Нечитаемый settings.toml больше не заменяется образцом при первой правке из окна, испорченная сессия откладывается в session.unreadable.toml, а черновики поднимаются вкладками. Оборванная замена файла не удаляет единственную копию.
Безопасность. Сетевой путь \\сервер\папка — из картинки в заметке, из ссылки в открытой папке, из экспорта — сам по себе не читается: Windows отдала бы серверу хэш пароля. Запись в .obsidian закрыта и через имена с точкой на конце, короткие имена 8.3 и ссылки.
Вкладки. Кнопка «+» у правого края полосы вкладок; двойной щелчок по пустому месту полосы тоже создаёт файл.
Проводник. Свой значок у каждого типа файла — лист с полосой цвета вида файла и подписью типа. В «Открыть с помощью» — 55 типов вместо 8, включая исходный код: .py, .c, .cpp, .h и другие. Из нескольких файлов, открытых из проводника разом при закрытом окне, открываются все и по порядку. zeronote файл.md из консоли открывает файл из папки консоли.
Мелочи. Щелчок по пропавшему файлу в «Недавнем», в палитре, в обратных ссылках или по ссылке говорит, почему файл не открылся. Окно клавиш не назначает клавишу набора без Ctrl или Alt — Enter, букву, стрелку. Панель «Заметки» восстанавливается после перезапуска. Индекс понимает вложенные папки проекта, сразу видит правку правил игнорирования и догоняет изменения на диске, которые пропустило слежение. Превью: картинка с подписью в две строки, формула в таблице, картинка, положенная в папку позже, — показываются.
Зависимости. cargo audit и npm audit — ноль уязвимостей. Наименьший Rust для сборки из исходников — 1.88.
При первом запуске индекс поиска перестроится один раз.
Установщик вырос на 170 КБ, больше двух третей из них — значки файлов. Старт и ввод — как у 0.18.0, сверено с ней в один час.
Про откат на 0.18.0. Сессию, раскладку и настройки она прочитает, индекс перестроит ещё раз. Файлы не менялись.
Полный разбор — DESIGN.md, разделы 46 и 47.