Repository navigation
Releases: MrDarkOm/amby-notes
Release list
Amby v0.1.9-beta.1
Пробная версия для обкатки. Автообновление её не ставит: она скачивается вручную.
Главное в этой версии — рабочая область как в Obsidian: панели рядом, поиск в стиле Spotlight и живой граф связей. А ещё картинки в заметках получили свою панель и обрезку, страницы мастерской стали полноценными, и Amby теперь собирается для Windows и Linux на ARM.
✨ Главное
- Несколько панелей рядом. Заметки, граф, базы, холсты и рисунки открываются слева, справа, сверху и снизу. Одну заметку можно открыть в двух панелях: правки видны сразу.
- Поиск в стиле Spotlight. Одна строка ищет по заметкам, папкам, базам, холстам, тексту и тегам, с фильтром по типу и выбором, где искать.
- Граф связей, как в Obsidian. Подсветка соседей, плавный зум, настройки, цветные группы и замок, который сохраняет раскладку.
- Картинки в заметках. Своя панель: просмотр на весь экран, подпись, выравнивание, замена, обрезка, копирование и сохранение.
- Windows и Linux на ARM. Появились отдельные сборки: установщик
arm64-setup.exeи.AppImageсaarch64.
Важно: лицензия. С этой версии Amby распространяется под лицензией GNU AGPL-3.0, а не MIT. Пользоваться приложением можно как прежде, бесплатно и без ограничений. Условия меняются только для тех, кто распространяет изменённую версию: её исходный код нужно открыть. Версии до 0.1.8 включительно остаются под MIT.
🗂 Рабочая область
- Разделение панелей: из меню вкладки, из меню заметки «⋯», из меню файла («Открыть справа / снизу») или перетаскиванием вкладки или файла к краю панели. Границы тянутся мышью, двойной щелчок возвращает 50/50.
- Вкладки переключаются мгновенно и не пересобираются. Заметка остаётся там, где её прокрутили, а граф не перестраивается. «Назад» и «Вперёд» больше не показывают пустую вкладку.
- Вкладки переставляются перетаскиванием, а закрытие вкладки снова плавное.
- Кнопки док-панелей можно скрывать: правый щелчок по панели открывает список кнопок этой зоны.
- Стартовое окно показывает недавние хранилища. «Управление хранилищем» открывает то же окно из боковой панели.
- В избранное можно добавлять базы, холсты и рисунки, а не только заметки.
- Переключатель «Автоматически показывать текущий файл» в дереве файлов, как в Obsidian, заменил кнопку «Найти активный файл».
- Дерево файлов больше не дёргается при раскрытии папок: полоса прокрутки тонкая и появляется только при прокрутке.
- Нижнюю плашку заметки можно скрыть из её меню «⚙» и вернуть через «⋯».
🔎 Поиск
- «Перейти к файлу» (Cmd+O) открывает то же окно поиска со списком файлов и кнопками создания заметки, папки, базы, холста и рисунка.
- Enter до появления результатов открывает первый из них. Первый Esc очищает запрос, второй закрывает окно.
- Панель «Найти в заметке» стоит в правом верхнем углу и не уезжает при прокрутке.
🕸 Граф связей
- Граф открывается в текущей вкладке и участвует в истории «Назад» и «Вперёд».
- Настройки графа: фильтры (теги, вложения, только созданные заметки, объекты без связей), цветные группы по
tag:#тегилиpath:папка, отображение и силы раскладки. Сохраняются для каждого хранилища. - Замок закрепляет узлы и сохраняет вид и масштаб даже после перезапуска. Новые заметки сами находят место рядом.
- Раскладка разворачивается примерно втрое быстрее, подписи читаются поверх линий, узлы непрозрачные.
- Щелчок по тегу открывает панель «Теги» с этим тегом. Узлы папок, холстов и других файлов тоже открываются.
✏️ Редактор
- Панель выбранной картинки: «Открыть» (просмотр с масштабом и листанием), «Подпись», «Выравнивание», «Заменить…», «Обрезать», «Копировать», «Сохранить…», «Исходный размер», «Удалить». Те же действия есть в меню блока.
- Обрезка картинки с форматами рамки (круг, квадрат, 4:3, 16:9 и другие) сохраняет новый файл рядом, а исходный не трогает.
- Подпись и выравнивание записываются в обычный Markdown, и другие программы видят картинку как прежде.
- Рядом с картинкой, стоящей в строке одна, больше нельзя случайно печатать: текст уходит на новую строку.
- Выделение рисуется точно по строкам текста, без лишних полос, и не «зависает» после щелчка в другом месте.
- Щелчок между строками ставит курсор точно под местом щелчка.
- Панель форматирования появляется после окончания выделения, у его левого края, и едет вместе с ним при прокрутке.
Cmd+Backspaceудаляет текст до начала строки, а в дереве файлов удаляет выбранные файлы.- Щелчок по тегу в заметке снова открывает панель «Теги».
- Двойной щелчок в дереве файлов больше не включает переименование: оно доступно через контекстное меню.
🪶 Творческая мастерская
- Модуль теперь выключен в новых рабочих областях. Включается в «Настройки → Модули». У тех, у кого он уже включён, ничего не меняется.
- Страница мастерской: счётчики миров, историй и слов, полоса «Продолжить», карточки историй с фильтром, сортировкой и звездой избранного.
- Разделы галереей: персонажи, локации и арки с категориями, обложками и историями, где встречается запись.
- Стол истории — сетка виджетов: «Продолжить», «Прогресс», «Главы», «Заметки», персонажи, локации и арки. Порядок, ширину и видимость виджетов можно настроить.
- Таймлайн вселенной: истории по порядку, который меняется перетаскиванием или с клавиатуры.
- Страницы мастерской получили шапку как у заметок (назад, вперёд, хлебные крошки, меню «⋯») и нижнюю плашку с замком режима чтения.
- Мастерская открывается в текущей вкладке, и каждый переход — шаг истории «Назад» и «Вперёд».
- Шапка заметки внутри мастерской показывает путь по мастерской (история › глава › страница), а не папки.
- Панель мастерской стала компактнее, а вкладки показывают векторные иконки вместо эмодзи.
🎨 Интерфейс
- Системная синяя обводка фокуса больше нигде не рисуется. Пункты меню слегка «проседают» при нажатии.
- «Размер шрифта» и «Задержка подсказок» в настройках стали пошаговыми ползунками.
- Активная кнопка панели действий подсвечена акцентным цветом, поле переименования в дереве стало аккуратнее.
- Открытый холст или рисунок подсвечивается в дереве файлов.
- В «Настройки → Обновления» появилась строка о лицензии со ссылкой на исходный код.
🔒 Безопасность
- Автообновление больше не использует библиотеку
zipс тремя уязвимостями распаковки. Наши обновления её не используют, поэтому поддержка zip-архивов выключена.
Для разработчиков
- Лицензия — AGPL-3.0-only с исключением для плагинов (
LICENSE-PLUGIN-EXCEPTION.md). Для пулл-реквестов нужен CLA (CLA.md, бот в.github/workflows/cla.yml), правила — вCONTRIBUTING.md. Лицензии всех npm- и Rust-зависимостей совместимы. - Ветки
dev→beta→mainпереводятся только черезnpm run promote. Пробные выпуски помечаются тегомvX.Y.Z-beta.Nнаbeta. - Перед выпуском Rust-тесты идут на Windows и macOS, а набор WebKit — на macOS. Новые сборки: Windows arm64 (собирается на x64, только NSIS) и Linux arm64 (на нативном раннере).
- Исправлены Rust-тесты, падавшие на Windows из-за разделителей путей. Список блокнотов больше не смешивает
/и\. - Общие компоненты шапки и плашки страницы —
page-chrome/. Раскладка графа хранится в.amby/graph-layout.json.
Установка
| Система | Что скачать |
|---|---|
| macOS (Apple Silicon) | .dmg с aarch64 в названии |
| macOS (Intel) | .dmg с x64 в названии |
| Windows (x64) | установщик x64-setup.exe или .msi |
| Windows (ARM) | установщик arm64-setup.exe |
| Linux (x64) | .AppImage с amd64 в названии (обновляется сам, без пароля) |
| Linux (ARM) | .AppImage с aarch64 в названии (обновляется сам, без пароля) |
Если Amby уже установлена и автообновление включено, новая версия поставится сама при следующем запуске. Обновления подписаны: подделку приложение не установит.
Amby v0.1.8
Главное в этой версии — Творческая мастерская, собранная заново: одна папка на хранилище, у каждой вещи своя база, персонажи и места привязываются к историям, а сюжет держится на якорях и арках.
✨ Главное
- Одна мастерская на хранилище. Папка «Мастерская» создаётся одной кнопкой «Инициализировать» — сразу со всеми разделами: Истории, Персонажи, Локации, Вселенные, Арки, Якоря, Заметки.
- Персонажи принадлежат историям, а не папкам. Персонаж, локация или свой раздел связываются с одной или несколькими историями; история — со вселенной.
- Якоря и арки. Ключевые события и сюжетные линии привязываются к главам и видны прямо там, где вы пишете.
- Блокноты для заметок. Заметки раскладываются по папкам-блокнотам и связываются с историями.
- Выделение и Backspace в редакторе работают так, как ожидаешь (подробности ниже).
Важно для тех, кто уже пробовал «Мастерскую». Проекты прежнего формата (папки с
amby-project.json) не переносятся автоматически. Их файлы целы и открываются как обычные папки и базы, а в панели они собраны в тихую строку «Папки старого формата».
🪶 Творческая мастерская
Как она устроена
- Мастерская — обычная папка в хранилище, её можно перенести целиком. Расположение меняется в «Настройки → Модули → Творческая мастерская».
- История — папка со страницами текста и карточкой. Схема уровней выбирается при создании: «Роман», «Рассказ», «Комикс» (Книга → Том → Глава → Страница) или своя.
Панель
- Две карточки. Сверху «Истории» — все или одна; снизу «Вселенные», где первый пункт всегда «Отдельные истории». Выбор запоминается.
- Всё в охвате выбора. Персонажи, локации, заметки, якоря и арки показываются только те, что относятся к выбранной истории или вселенной. Страницы без истории собраны в группу «Без истории».
- Стрелка открывает страницу. При наведении на карточку справа выдвигается стрелка — к странице истории, вселенной или «Отдельных историй».
- Создание прямо в списке. Название и Enter. Персонаж, созданный при выбранной истории, сразу к ней привязан; история, созданная во вселенной, — к вселенной.
- Пусто — значит пусто. Без историй панель предлагает «Создать первую историю» и не показывает пустых разделов.
Текст истории
- Весь текст — одно дерево страниц с перетаскиванием и числом слов.
- Статусы страниц: «Черновик», «В работе», «Готово» — цветной точкой в дереве.
- Страницы переставляются и без мыши: «Выше», «Ниже», «Вложить», «Вынести» в меню строки (Shift+F10).
- Рабочий стол истории: «Продолжить с…», ход работы и «Собрать рукопись» одним файлом Markdown.
Сюжет: якоря и арки
- Якорь — ключевое событие, от которого строится текст. Арка — сюжетная линия персонажа или всей истории.
- Якорь или арку можно перетащить на главу или выбрать в меню главы «Якоря ▸» / «Арки ▸».
- В дереве у главы — значок якоря и цветные точки арок.
- Справа от текста главы: «Отталкиваемся от» и «Должны прийти к» — ближайшие якоря до и после.
- Лента якорей на рабочем столе отмечает пройденные; страница арки показывает её якоря и охваченные главы.
- События вселенной — якоря, привязанные к самой вселенной, на её странице.
Заметки и блокноты
- Блокнот — папка внутри раздела «Заметки», можно вкладывать.
- Заметку переносят перетаскиванием или через «Переместить в блокнот»; ссылки на неё обновляются.
- Удаление блокнота никогда не удаляет заметки: они поднимаются на уровень выше, а папка уходит в корзину.
Страницы
- У вселенной своя страница с её названием: истории, события и мир этой вселенной.
- «Отдельные истории» — такая же страница для историй без вселенной.
- Вкладки разделов на этих страницах показывают только то, что к ним относится; вся база — кнопкой «Вся база».
- Досье персонажа показывает его арки.
✏️ Редактор
- Выделение через несколько строк больше не сбрасывается, когда отпускаешь мышь.
- Backspace в начале заголовка. Пустая строка над ним удаляется, заголовок остаётся. Если сверху текст, заголовок сначала становится обычным текстом, а следующий Backspace склеивает строки.
- Ручка блока появляется плавно, с задержкой, и всегда у той строки, куда попадёт щелчок.
- Над вики-ссылкой больше не всплывает системная подсказка, закрывавшая кнопку «Отвязать».
🗂 Интерфейс
- Правую панель можно выключить целиком: «Настройки → Интерфейс → Правая панель».
- Новая пустая вкладка предлагает действия, как в Obsidian: новая заметка, база, холст, переход к файлу.
- Фильтр по типу файлов в панели файлов: заметки, базы, холсты, рисунки.
- Пустая база сразу открывается в своём виде с местом для первой строки — без отдельного баннера.
- Правый щелчок по местам без своего меню больше не открывает системное меню окна.
🛠 Исправления
- Тема и настройки больше не сбрасываются, когда двигаешь боковую панель.
- Переименование страницы с явным названием меняет и название в списках баз.
🔒 Безопасность
- Обновлены библиотеки с известными уязвимостями: KaTeX (формулы), сетевые библиотеки Rust (
rustls,quinn) и зависимости Excalidraw. Формулы рисуются как прежде.
Для разработчиков
- Формат творческого модуля v3: маркер
amby-workshop.json, настройки историиamby-story.json, история — прикреплённая база внутри базы «Истории». Контракт —docs/creative-format.md. - Новые журналируемые операции с откатом:
init_workshop,complete_workshop,create_story,create_workshop_section,add_story_links,ensure_plot_links,create_workshop_entity; чтение —list_notebooks,list_text_stats,resolve_workshop_folder. - Сквозной тест
contract_test.rsстроит настоящую мастерскую в Rust и проверяет интерфейсную модель на её данных (real-workshop.fixture.json). - Замер в релизной сборке, 300 историй по 50 страниц: первое открытие ~3,3 с, повторное ~2,2 с (
docs/performance-baseline.md). AmbySelect:renderValue,action,onOpenChange,listWidth,chevronClassName.- Исправлен тест, падавший в CI на Windows при уборке временной папки.
Установка
| Система | Что скачать |
|---|---|
| macOS (Apple Silicon) | .dmg с aarch64 в названии |
| macOS (Intel) | .dmg с x64 в названии |
| Windows | установщик -setup.exe или .msi |
| Linux | .AppImage (обновляется сам, без пароля системы) |
Если Amby уже установлена и автообновление включено, новая версия поставится сама при следующем запуске. Обновления подписаны: подделку приложение не установит.
Amby v0.1.5 — обновления и журнал изменений
Amby 0.1.5 — 2026-09-27
Диагностика
-
Режим отладки получил обзор состояния приложения, журнал с поиском и фильтрами, показатели времени операций и подготовку диагностического отчёта.
-
Можно записать воспроизведение проблемы, отметить момент сбоя и просмотреть JSON-отчёт перед сохранением. Запись продолжается после закрытия панели и ограничена по времени и числу событий.
-
Диагностика сохранения показывает ожидание в очереди, длительность и результат операции; связанный идентификатор помогает сопоставлять события интерфейса и серверной части.
-
Автоматические диагностические данные очищаются от содержимого заметок, названий, путей и секретов. Запись журнала на диск включается отдельно, а объём памяти и файлов ограничен.
-
Для разработчиков: добавлены план реализации Debug-режима, задания оркестрации Luna и проверяемые сценарии приёмки.
-
Очистка журнала сбрасывает старые события и в других окнах, даже при приостановленном просмотре; запоздавшая загрузка истории больше не возвращает удалённые записи.
-
Экран восстановления после ошибки запуска проверен на безопасный экспорт, отмену сохранения и повторную попытку после ошибки.
-
Для разработчиков: подготовлен подробный план ИИ-агента Amby с этапами оркестрации, ограничением доступа, журналом и откатом действий, обучением навыкам, мастерской плагинов и проверяемыми критериями приёмки.
-
Настоящий менеджер пакетов и криптографическая проверка Ed25519:
- Реализована криптографическая проверка цифровых подписей манифестов по алгоритму Ed25519 (библиотека
ringна бэкенде и WebCrypto на фронтенде) с валидацией SHA-256 контрольных сумм файлов и обязательным отклонением поддельных подписей (ed25519:anything). - Управление пакетами переведено в Rust-бэкенд: загрузка во временный staging-каталог с проверкой выхода за границы путей (
.., абсолютные пути, спецсимволы), атомарная публикация в постоянную директориюmodules/<id>/<version>/, сохранение истории версий вversions.json, многоверсионный откат (rollback) и безопасное удаление пакетов без затрагивания файлов заметок пользователя.
- Реализована криптографическая проверка цифровых подписей манифестов по алгоритму Ed25519 (библиотека
-
Физическое разделение и оптимизация стартового бандла (Excalidraw и Canvas):
- Пакеты
@excalidraw/excalidrawи@xyflow/reactполностью исключены из предзагрузки вindex.htmlи стартового бандла. Стили и исполняемый код холста загружаются строго динамически при открытии скетча или канваса. - Устранены зависимости Excalidraw от внутренних компонентов Canvas; нейтральные инструменты карточек и вставки заметок вынесены в общий модуль.
- Пакеты
-
Изолированная среда выполнения сторонних плагинов (Worker Sandbox):
- Выполнение кода плагинов сообщества вынесено в изолированный поток (Worker Runtime), лишённый прямого доступа к окну приложения (
window), DOM (document), локальному хранилищу (localStorage) и нативным вызовам (__TAURI__). - Доступ к хранилищу и внешним ресурсам предоставляется исключительно через RPC-интерфейс к Capability Broker с валидацией разрешений, контролем путей внутри хранилища и возможностью принудительного завершения зависшего плагина.
- Выполнение кода плагинов сообщества вынесено в изолированный поток (Worker Runtime), лишённый прямого доступа к окну приложения (
-
Устойчивый безопасный режим (Safe Mode) и карантин:
- Состояние безопасного режима и журнал сбоев карантина модулей сохраняются на диске и переживают перезапуск приложения. При превышении порога сбоев модуль автоматически изолируется.
-
Привязка контекста хранилища и профили возможностей:
- Смена рабочего пространства при одинаковом наборе включённых модулей перезапускает контекст расширений с новым путём хранилища.
- Добавлен модальный диалог выбора профиля возможностей («Минимум», «Стандарт», «Кастомный») при создании нового хранилища.
- Покрыты автотестами все 18 обязательных приёмочных сценариев спецификации модульной архитектуры.
-
Устойчивость и безопасность баз данных:
- Сохранение истории переименования опций: в определении свойств (
SelectOption,StatusOption) реализовано хранение алиасов (aliases), что предотвращает потерю привязок значений в строках таблиц при переименовании и устраняет рассинхронизацию между сессиями. - Журналирование и восстановление пакетных изменений: операции массовой модификации фронтматтера защищены упреждающим журналом (
BatchRecoveryJournal) и резервными копиями в.amby/recovery/database_batches/. При внезапном прерывании процесса незавершённые пакеты безопасно восстанавливаются при повторной инициализации хранилища. - Безопасный откат миграций: механизм отката проверяет контрольные суммы SHA-256 и оставляет неизменёнными файлы, не затронутые миграцией; манифест миграции гарантированно именуется
<ИмяБазы>.json, а неизвестные и бинарные файлы бэкапятся перед очисткой каталога. - Корректная топология и вычисление формул: расчёт цепочек формул переведён на топологическую сортировку с поддержкой обращения к свойствам как по ID, так и по именам, явным определением циклических зависимостей и безопасной записью диагностических ошибок.
- Устранение гонок при параллельных запросах: клиентский хук выборки строк отслеживает порядковый номер инвалидации (
invalidationSeq) и автоматически перезапрашивает актуальные данные, если во время фонового запроса структура данных изменилась.
- Сохранение истории переименования опций: в определении свойств (
-
Надежность автосохранения и файловые операции:
- Индикация конфликта внешних изменений: когда автосохранение приостанавливается из-за внешнего изменения открытого документа, в верхней части редактора отображается постоянное янтарное предупреждение с кнопкой перехода к диалогу разрешения конфликта, позволяя пользователю не потерять локальные правки при временном закрытии модального окна.
- Устойчивость к блокировкам файлов на Windows: атомарная замена файлов снабжена серией повторных попыток с экспоненциальной задержкой при возникновении системных ошибок блокировки (
ERROR_SHARING_VIOLATIONиERROR_ACCESS_DENIED), защищая от сбоев при параллельной активности антивируса или службы поиска Windows.
-
Для разработчиков: добавлен независимый аудит прототипа модульной архитектуры с проверкой реальной установки пакетов, подписи, изоляции плагинов, разделения чанков и покрытия обязательных сценариев.
-
Для разработчиков: добавлен подробный аудит проблем персистентности, файловых форматов и механизмов автосохранения (
docs/storage-issues-audit.md) с систематизацией критических рисков потери данных, узких мест производительности и приоритетным планом доработок. -
Для разработчиков: устаревшая и историческая проектная документация (ранние планы, логи контрольных точек дорелизных версий, завершённые ревью и промежуточные патчи) перемещена в каталог
docs/archive/с добавлением поясняющего реестра (docs/archive/README.md). -
Для разработчиков: журнал изменений переведён на модульную файловую структуру в каталоге
updates/с раздельными файлами по каждой версии (upd_<версия>.md) и рабочим черновикомupd_next.md; обновлены регламенты выпуска вAGENTS.md,README.mdи документации. -
Для разработчиков: выполнена нормализация стандартов форматирования (Prettier и Rustfmt) с добавлением
.git-blame-ignore-revs; восстановлена строгая валидация стиля кода без исключений. -
Для разработчиков: проведена декомпозиция файлов-монолитов базы данных и frontmatter — из
mutations.rs,format.rs,projection.rs,query.rs,formula.rs,migration.rs,discovery.rsиfrontmatter.rsвынесено свыше 5 300 строк тестов в выделенные модули*_test.rs, что кардинально уменьшило объём продакшн-файлов при 100% сохранении тестового покрытия. -
Для разработчиков: проведена масштабная декомпозиция фронтенд-монолитов:
settings-dialog.tsx(сокращён с 1 932 до 928 строк, выделено 7 модульных компонентов в каталогеsrc/components/workspace/settings/) иdatabase-workspace.tsx(сокращён с 3 104 до 2 344 строк, выделеныdatabase-dialogs.tsx,database-floating-toolbar.tsx,database-peek-editor.tsx,database-view-menu.tsxиdatabase-layout-icons.ts), устранены предупреждения React Fast Refresh, при этом сохранены все контракты компонентов, типизация и 100% прохождение тестов. -
Управление пакетами и динамическая загрузка (Этап А): реализован пользовательский интерфейс менеджера пакетов (
ModulePackageManager) в настройках приложения с отображением размера на диске, активной версии, истории версий, установкой пакетов из файла (.json/.amby-pkg), отката версий и удаления. ВModuleHostреализован динамический загрузчикloadInstalledModuleчерезcommands.getModuleEntryPathи безопасный Tauri-протоколasset://, синхронизирующий жизненный цикл расширений при установке, откате и удалении пакетов. -
Разгрузка глобальной блокировки записи (
mutation_gate) и оптимизация автосохранения (Этап B):- Чтение файлов с диска, проверка CAS-ревизий и извлечение связей/тегов (
extract_links) в команде сохранения заметкиwrite_noteвынесены из-под мьютекса соединения SQLite (conn_guard). - Мьютекс дисковых мутаций (
mutation_gate) теперь удерживается исключительно на время атомарной записи файла и снимка истории, освобождаясь до начала транзакции обновления индекса SQLite. - Устранены взаимные блокировки параллельных запросов на чтение, поиск и автосохранение других открытых документов.
- Чтение файлов с диска, проверка CAS-ревизий и извлечение связей/тегов (
-
Автоматическая ротация и управление локальной историей заметок (Этап B):
- Реализована автоматическая ротация устаревших снимков истории (
autoPrune) при сохранении новых версий заметок с настраиваемыми лимитами максимального количества копий (maxCopies, по умолчанию 20) и срока хранения в днях (maxAgeDays, по умолчанию 30 дней). - В настройках модулей в секции истории добавлены переключатель автоматической ротации, поля конфигурации лимитов и кнопка ручной очистки старых версий (
cleanupHistory), предотвращающие разрастание каталога.amby/history/.
- Реализована автоматическая ротация устаревших снимков истории (
-
Автономный пайплайн сборки пакетов и сетевой загрузчик из GitHub Releases (Этап C):
- Создан автономный скрипт сборки модулей
scripts/build-modules.mjs(npm run build:modules), упаковывающийamby.excalidrawиamby.canvasв автономные криптографически подписанные архивы.amby-pkgс расчётом SHA-256 контрольны...
- Создан автономный скрипт сборки модулей
Amby v0.1.4 — обновления и журнал изменений
Что нового в Amby v0.1.4
1. Устранение ложного статуса несохранённости (точки «●») и сдвига вкладок
- Точная сериализация Markdown без замыкающих переводов строк: устранена первопричина появления точки
●при открытии коротких заметок (например,"Фев"). ProseMirror всегда добавляет два перевода строк (\n\n) в конце блоков, а функцияrestoreSourceFormattingошибочно не удаляла их, если в оригинале перевода строк не было. Из-за этого заметка в памяти сразу считалась изменённой и требовала сохранения. Теперь форматирование восстанавливается байт-в-байт для любого исходного текста. - Автоматический сброс ложного статуса несохранённости (
onContentClean): если после обработки транзакции или монтирования редактора Tiptap сериализованный текст совпадает с текущим значением документа, флаг изменений автоматически сбрасывается, предотвращая зависание точки●на вкладке. - Корректное разрешение ссылок на заметки из Excalidraw: ссылки на заметки из скетчей теперь надёжно разрешаются по относительному пути и имени файла к соответствующему объекту дерева и его стабильному ULID, активируя уже открытый буфер без сбоев.
- Исправление смещения вкладок поверх боковой панели: устранена ошибка, из-за которой при откреплённой боковой панели (плавающий режим) шапка не учитывала ширину открытой панели, и вкладки сдвигались влево на 264px, накладываясь на дерево файлов. Теперь отступ резервируется всегда, когда панель видима, и вкладки строго выравниваются по началу редактора.
- Ручное сохранение через Cmd + S / Ctrl + S с принудительным сбросом буфера: при нажатии сочетания клавиш активный редактор (Tiptap или Source) немедленно сбрасывает все несохранённые правки в буфер и на диск, очищая точку
●без ожидания таймера автосохранения.
2. Улучшение работы с объектами и панелью инструментов в Excalidraw
- Устранение ложного статуса несохранённости при открытии и переходе по ссылкам: устранена проблема, из-за которой при открытии файлов скетчей или переходе по ссылкам в Excalidraw вкладка сразу помечалась как изменённая (
●). Внутренняя нормализация элементов движком Excalidraw при монтировании и фоновой синхронизации сцены больше не провоцирует ложный флаг изменений и преждевременную запись черновиков. - Реорганизованная панель инструментов с меню «Вставка»: добавлено единое выпадающее меню «Вставка» (Заметка, Изображение, Веб-интерфейс), а инструменты «Рамка» и «Лазерная указка» вынесены напрямую в основную панель инструментов.
- Стандартные цвета и контуры карточек: карточки заметок и стикеры оформлены со стандартной обводкой и цветом (чёрный или белый), устранены двойные рамки и избыточная вложенная кнопка перехода к заметке.
- Читаемый путь к заметке и кнопка «Обзор»: во всплывающей панели ссылки отображается аккуратный декодированный путь к заметке, а вместо кнопок ручного редактирования URL и привязки добавлена удобная кнопка «Обзор» для быстрой смены заметки.
- Компактный раздел фигур «Объект»: геометрические фигуры (прямоугольник, ромб, круг) объединены в выпадающий раздел «Объект», открывающийся по клику. На панели отображается и подсвечивается последняя выбранная фигура. Сочетания клавиш синхронизируют активную фигуру.
- Отображение карточек заметок в стиле Obsidian: карточки заметок теперь отображают полный Markdown с вертикальной прокруткой без искусственного обрезания до 250 символов, выделенным заголовком заметки, стилизованными бейджами тегов и быстрым открытием заметки.
- Надёжное сохранение холста и сброс индикатора изменений: устранён циклический вызов рендера Excalidraw («Maximum update depth exceeded»), вызовы обновления сцены стабилизированы через
useRef, а при успешной фоновой записи холста и скетча на диск индикатор несохранённых изменений (●) на вкладке теперь своевременно очищается. - Взаимное закрытие панелей и открытие библиотеки: открытие меню настроек холста автоматически закрывает боковую панель библиотеки и наоборот, исключая наложение окон; библиотека сразу открывается на вкладке просмотра библиотеки.
- Адаптивность при уменьшении ширины области: при сжатии панели или разделении экрана элементы управления областью аккуратно смещаются на ряд выше, а панель инструментов остаётся снизу со скроллом при необходимости.
3. Стабилизация баз данных и Frontmatter-First архитектура
- YAML Frontmatter как единственный источник истины для свойств: значения свойств строк базы данных теперь сохраняются напрямую в YAML frontmatter самих
.md-файлов. Полностью устранены промежуточные шарды записей.ambd/records/и вспомогательные файлы<note_id>.json. Все свойства читаются, изменяются и версионируются в самих заметках, обеспечивая полную прозрачность и совместимость со сторонними инструментами и системами контроля версий. - Обратимая история изменений ячеек и связей баз данных (Undo / Redo): при редактировании значений свойств в базах данных доступны кнопки «Отменить» (Undo) и «Повторить» (Redo) в панели инструментов, а также сочетания клавиш
Cmd+Z/Cmd+Shift+Z(Ctrl+Z/Ctrl+Shift+Z/Ctrl+Y). - Защита от перезаписи внешних правок (CAS-проверка): если файл заметки был изменён внешней программой с момента мутации, отмена или повтор действия отвергаются с понятным сообщением об ошибке, предотвращая стирание чужих правок.
- Транзакционный откат двусторонних связей: при отмене или повторе установки связи между заметками изменения в обоих файлах (источнике и цели) откатываются согласованно и атомарно.
- Полнофункциональная типизированная фильтрация и сортировка данных: добавлены типизированные операторы фильтрации для дат (
равно,не равно,после,до), множественного выбора (содержит) и отношений/связей (содержитпо реальным связям между заметками). - Единая поддержка всех типов свойств: фильтрация и поиск в таблицах баз данных теперь бесшовно поддерживают все типы данных без исключений: текст, число, флажок, дата, выбор, статус, мультивыбор, ссылки, формулы и связи.
- Вычисление формул (Formula) и агрегаций связанных данных (Rollup): топологическое вычисление формул с защитой от циклов и агрегация связей (
count,countUnique,sum,avg,min,max). - Транзакционные пакетные обновления и атомарный откат при сбоях: при редактировании нескольких ячеек или строк базы данных сбой записи любого из файлов приводит к полному и автоматическому откату всех уже записанных файлов пакета к исходным байтам.
- Контролируемая миграция устаревших форматов баз данных: модуль миграции с предварительным аудитом конфликтов, резервной копией и возможностью полного отката.
- Дедупликация свойств схемы базы данных и YAML frontmatter: устранено дублирование строк свойств при просмотре заметок, входящих в состав базы данных. Свойства схемы базы данных, проецируемые в YAML frontmatter, теперь отображаются строго один раз в блоке свойств базы данных и автоматически исключаются из общего списка свойств frontmatter.
- Устранение ошибки «View revision conflict»: каноническое согласование хэшей ревизий между SQLite-проекцией и манифестом представлений.
Amby v0.1.3
Signed installers and automatic-update metadata for Amby v0.1.3.
Amby v0.1.2
Что изменилось
Исправления
- Исправлено рассыпание вложенных папок заметок-контейнеров в корень после создания и переноса файлов; перестроение дерева теперь выполняется без квадратичного обхода, устраняя сильные задержки на больших хранилищах.
- В панели выбора эмодзи восстановлены штатные стили emoji-mart: поиск, навигация по категориям, сетка и внутренняя прокрутка снова работают, а необработанные огромные SVG больше не перекрывают содержимое. Поиск оформлен как во вкладке «Иконки», рядом возвращена кнопка базового оттенка кожи, а переключатели категорий снова находятся снизу.
- При переименовании рамка поля ввода больше не сдвигает название элемента в дереве.
- Иконки обычных заметок выровнены по одной вертикали с иконками раскрываемых элементов дерева.
- Новые заметки получают свободное имя (
Без названия,Без названия 1,Без названия 2и далее), сразу публикуются атомарно со стабильным идентификатором, а при создании кнопкой или из контекстного меню корня, папки или другой заметки в дереве открывается переименование с фокусом и полным выделением названия. - Только что созданная пустая заметка больше не определяется как внешнее изменение: диалог конфликта не прерывает переименование, пустой редактор не добавляет перевод строки без действия пользователя, а фокус строки дерева не перехватывает фокус поля имени.
- При выборе нескольких элементов контекстное меню показывает массовое удаление: выбранные файлы и папки последовательно перемещаются в корзину, вложенные элементы не удаляются повторно, а панель корзины обновляется сразу.
- Recovery-черновики теперь привязаны к текущему хранилищу и поколению, а устаревшая очистка не может удалить более новую правку; отказ recovery больше не скрывает необходимость основного сохранения.
- Последняя правка в Source и Canvas фиксируется сразу как несохранённая, а штатное закрытие, смена режима и смена хранилища предварительно публикуют отложенные буферы.
- Асинхронные подписки на события Tauri теперь безопасно отменяются даже при поздней регистрации или ошибке, поэтому повторное открытие компонентов не оставляет дублирующиеся обработчики.
- Исправлено восстановление последней правки при быстром наборе: черновики больше не отправляют IPC на каждый символ, а ошибки recovery не выдаются за успешное сохранение.
- Неизвестные поля Canvas, включая данные плагинов, теперь сохраняются при редактировании; изменения во время drag не сериализуются на каждом кадре.
- Быстрый переход показывает относительный путь и ищет по всему хранилищу до ограничения выдачи, поэтому одноимённые заметки различимы.
- Откреплённая панель снова раскрывается при наведении на край после скрытия через контекстное меню.
- Ручная проверка обновлений теперь доступна в Tauri dev-сборках; автоматическая установка по-прежнему не запускается во время разработки.
- На Windows исправлены клики по строкам заметок, переработан заголовок окна и убрана нижняя линия под кнопками управления.
- Ширина боковых панелей и размер окна теперь восстанавливаются после следующего запуска.
- Док больше не скрывается отдельно: в меню осталось только закрепление левой и правой панели, а откреплённые панели вместе с доком автоматически раскрываются поверх основного содержимого с аккуратной тенью и скруглёнными краями.
Улучшения
- В правой части строк появился слабозаметный индикатор типа элемента: папки отмечаются папкой, заметки — файлом, а избранные заметки — файлом со звездочкой. Иконка файла теперь работает как кнопка избранного: по нажатию заметку можно добавить или убрать из избранного. В разделе избранного сохраняются пользовательские эмодзи, кнопка снятия избранного отображается таким же чётким акцентным цветом, а действие избранного в контекстном меню обозначается обычной звездой в цвете текущего оформления.
- Двойной клик по заметке, Canvas или папке в дереве сразу включает переименование с выделением названия.
- Папки теперь всегда располагаются вверху каждого уровня дерева, а обычные заметки и заметки с вложениями сортируются вместе по выбранному имени или дате.
- Перемещение, переименование и активация хранилища теперь согласуются общим шлюзом, а тяжёлые файловые и ссылочные операции не удерживают SQLite-блокировку.
- Граф связей корректно обновляет новые рёбра, Canvas не перепарсивается на каждом кадре, а ручки блоков стали отзывчивее в больших заметках.
- Тяжёлые редакторы активных и split-вкладок получают адресные обновления; скрытые буферы не подписывают весь workspace на каждую правку.
- Проверка совместимости выделенного Markdown выполняется только при смене режима редактора, а не при каждом движении курсора.
- Квота recovery рассчитывается по метаданным без полного повторного чтения всех черновиков; операции recovery сериализованы без блокировки основного сохранения.
- Граф обновляет координаты SVG напрямую через DOM, а таблица и ручки блоков ограничивают работу до необходимых кадров, диапазонов и инвалидирующих событий.
- Индекс заметки после записи строится из уже подготовленных байтов и метаданных, а файловые мутации удерживают SQLite-блокировку только на коротких фазах.
- Перенос и создание файлов больше не запускают повторные полные сканирования хранилища и пересчёт ссылок, поэтому операции выполняются заметно быстрее.
- Перенос файлов в дереве теперь применяется сразу без визуальной перезагрузки, а несколько выбранных файлов можно переместить одним перетаскиванием.
- Дерево файлов обновляет только изменённые ветки, а новая заметка появляется сразу — без промежуточных пустых папок, повторной подгрузки и рывков.
- Появление и скрытие откреплённых панелей стало заметно плавнее.
Для разработчиков
- Подготовлен пошаговый план устранения проблем производительности с проверками сохранности данных и уточнениями по текущему коду.
Amby v0.1.1 — обновления и журнал изменений
Первое накопительное обновление Amby: встроенная система обновлений и прозрачный публичный журнал изменений.
Что нового
- Безопасная проверка и установка новых версий через GitHub Releases.
- Раздел «Обновления» в общих настройках: автопроверка, текущая версия и ручная проверка.
- Понятные статусы загрузки и установки, прогресс и подтверждение перед перезапуском.
- Публичный журнал
updates.mdдля накопительного учёта изменений между выпусками.
Улучшения и безопасность
- Настройка автообновления синхронизируется между главным окном и окном настроек.
- Установщики и updater-архивы подписаны; неподписанные или изменённые пакеты отклоняются.
- Добавлена проверка совпадения версий npm, Rust и Tauri перед выпуском.
- Подготовлена автоматическая сборка macOS, Windows и Linux с публикацией только после успеха всей матрицы.