История версий

Версии перечислены от самой новой к самой старой, по одному пункту на изменение, и каждая версия заканчивается ссылками на страницы, подробно описывающие то, что она принесла. Пункт, отменённый более поздней версией, несёт упоминание той версии, что его заменила: он рассказывает историю программы, а не описывает установленную версию.

После обновления

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

  • Повторный анализ устаревших позиций (0.38.0, 0.40.0). Анализ gammonNet, записанный до версии 0.40.0, был выполнен более ранним движком (с тех пор gammonNet v1.7.0): blunderdb analyze --stale или строка Устаревшие анализы gammonNet на вкладке Обслуживание перезаписывает его. Импортированный анализ никогда не затрагивается.

  • Переимпортировать исходные файлы, чтобы получить удачу (0.33.0). Матчи, импортированные раньше, несут тире в столбце Удача, а тире — это не ноль. Форматы, которые удачу не переносят (BGF, Jellyfish .mat), не дадут её никогда.

  • Переимпортировать файлы XG, чтобы получить метки (0.30.0). Метки, поставленные в eXtreme Gammon, попадают в базу при переимпорте, не затрагивая существующие комментарии и анализы.

  • Запустить догоняющий анализ gammonNet (0.34.0) — из интерфейса, командой blunderdb analyze или в серверном режиме: он заполняет позиции, у которых нет ни одного анализа, никогда не затирая импортированный анализ.

  • Перезапустите дообработку анализа gammonNet (0.39.0). Миграция стирает вердикты gammonNet по принятию или отказу, вычисленные как решение принимающего; дообработка переписывает их как решение предлагающего дабл до дабла.

  • Исправление матчей с перевёрнутыми игроками (0.40.0). До 0.40.0 переворот заменял позиции матча другими, без анализа: blunderdb match repair --list находит матчи, отличающиеся от своего исходного файла, а match repair --id или кнопка ⟲ карточки перезаписывают их из этого файла.

0.44.0 (2026-10-19)

  • Упражнение Дебют выбирает один из двух режимов: Категории XG (Money, DMP, Gammon save и Gammon go, их можно сочетать) или Матч до 5, который с равной вероятностью выбирает один из двадцати пяти счетов матча до 5 очков, включая DMP и игры Crawford, без выбора счёта. Сетка счётов матча до 7 исчезает.

  • Встроенная дебютная книга охватывает все двадцать пять счетов матча до 5: добавлены 2-4, 4-2, 2-5, 5-2, 3-5, 5-3 и игры Crawford 1-3, 3-1, 1-5 и 5-1; blunderdb openingbook и маршруты openingbook.* сервера выдают их так же, как остальные счета.

  • На стороне сервера: search.find сортирует по счёту пипсов и по дате, analyses.queueStatus описывает очередь анализа, статистику можно фильтровать по сопернику, positions.setIndividuallyImported снимает пометку «внесена вручную» с позиции, а matches.lastVisited возвращает последний посещённый матч, а не последний импортированный; blunderdb stats принимает --opponent.

  • См. Панель Тренировка, openingbook — Какой ход при этом счёте? и Контракт API.

0.43.0 (2026-10-18)

  • Упражнение Дебют выбирает по категориям: Money, DMP, Gammon save (начинающий при 1 away Crawford, отвечающий при 2 away) и Gammon go (наоборот) — категория выпадает с равной вероятностью наравне с остальными, затем один из её счетов; в задании категория названа рядом со счётом. Сетка счётов матча до 7 остаётся опцией, по умолчанию выключенной, потому что от 4 до 7 away лучшие ходы почти не меняются от счёта к счёту.

  • Встроенная дебютная книга охватывает игру на деньги и DMP: blunderdb openingbook и маршруты openingbook.* сервера выдают их так же, как остальные счета.

  • См. Панель Тренировка, openingbook — Какой ход при этом счёте? и Дебютная книга: разрыв, 95 %-й ДИ и равенство.

0.42.0 (2026-10-17)

  • Какой ход при этом счёте? Упражнение Дебют: вкладка Тренировка задаёт дебютный ход (1st roll) или ответ (2nd roll) партии при некотором счёте; ход делается на доске и оценивается по встроенной дебютной книге, рассчитанной роллаутами blunderDB для двадцати счетов; любой ход, равный лучшему, верен, а в режиме 2nd roll уже сыгранный дебютный ход выбирается среди них. Вердикт — отметка «верно» или «неверно» и таблица кандидатов книги. train opening, blunderdb openingbook и маршруты openingbook.* сервера — его другие формы.

  • ENTER связывает вопросы тренировки: во время Решения или Дебюта ENTER подтверждает ход, сыгранный на доске, где бы ни был фокус вне поля, кнопки или окна, а затем, когда вердикт показан, переходит к следующему вопросу или завершает сеанс; два быстрых нажатия подряд не оценивают ответ дважды.

  • На стороне сервера: маршрут matches.byPosition перечисляет матчи, в которых в позиции был сыгран ход, а импорт файла XG в базу PostgreSQL делает вдвое меньше запросов на позицию и идёт вдвое быстрее.

  • Заметные исправления: файл матча, в котором в позиции у одной стороны шестнадцать шашек, сервер отклоняет как недопустимый, а не внутренней ошибкой.

  • См. Панель Тренировка, Горячие клавиши, openingbook — Какой ход при этом счёте?, Дебютная книга: разрыв, 95 %-й ДИ и равенство и Контракт API.

0.41.0 (2026-10-16)

  • Чтение позиции со скриншота: вставка, перетаскивание или открытие скриншота доски eXtreme Gammon на доске редактирования считывает шашки, кости, куб и счёт без обученной модели; сомнительные считывания обводятся на доске, и ничего не сохраняется до привычного жеста. blunderdb capture и маршрут positions.fromImage сервера — другие формы.

  • Основной игрок и окно «Управление игроками»: звезда у игрока назначает его основным игроком, которого при импорте помещают на место 1, и предлагает за один раз перевернуть матчи, где он играет с противоположной стороны; окно перечисляет игроков с их псевдонимами (× отменяет слияние) и числом матчей, которое открывает эти матчи. blunderdb players main и players matches, а также маршруты players.main.* — другие формы. В панели Турниры PR и MWC строки относятся к основному игроку, как только он в ней играл.

  • Импорт базы переносит и матчи: вместе с их партиями, ходами, анализами и происхождением, турниры (с их Руководством и Встречей), черновики транскрипции и псевдонимы игроков, без дубликатов и без изменений при повторном импорте того же файла; живая коллекция или сохранённый фильтр, указывающие строки по номеру, перенумеровываются для принимающей базы. blunderdb import --type database и сервер делают то же самое.

  • Предварительный просмотр перед экспортом: окно экспорта подсчитывает по семействам, что будет в файле, до его записи; blunderdb export --plan и маршрут exports.plan дают тот же подсчёт. Выбранный турнир всегда забирает свои матчи, а Руководство и Встреча турнира уходят вместе с ним.

  • Отмена последнего повторения Anki: кнопка Отменить повторения или клавиша u возвращает последнюю оценку сеанса и снова показывает карточку; blunderdb anki card --action undo и маршрут anki.undoReview сервера выполняют то же действие.

  • Поиск gammonNet распределяется по свободным ядрам: gammonNet v1.8.0 делит поиск на 2 хода и глубже между несколькими ядрами с теми же числами, что и на одном; все вычисления процесса (анализ, пакет, панели, сервер) берут из одного бюджета ядер, а сервер засчитывает за одну единицу время каждого занятого ядра.

  • Флажки игроков в легенде графиков матча: снятие флажка с игрока скрывает его отметки на трёх графиках, а наведение, щелчок и стрелки нацеливаются только на другого; настройка запоминается для каждого матча.

  • Счётчики статистики открывают свои позиции: панели Смещение, До/после и Время добавляют к каждому счётчику решений столбец Позиции, который открывает соответствующие различные позиции.

  • Более читаемая транскрипция: цифровая клавиша сообщает о своём действии индикатором режима (Ввод или Правка) и действием Enter; стрелки доски следуют за ходом, записанным в решении под курсором, серым цветом, а недопустимый шаг рисуется красным пунктиром; выбор первой строки анализа заменяет решение.

  • Видео больше не подвешивает приложение: видеопанель возобновляет воспроизведение после неудавшегося перехода, никогда не перезагружает видео на паузе и называет недостающие плагины GStreamer; неверно мультиплексированный файл .webm или .mkv отмечается при открытии с командой ffmpeg, которая исправляет его без перекодирования.

  • Заметные исправления: сыгранный ход сопоставляется с кандидатами по доске, на которой он оказывается, а не по записи, так что два хода одной формы, но с разными взятиями больше не путаются; скриншот с дробным масштабом читается верно; видео на паузе больше не перезагружается.

  • См. Руководство, Горячие клавиши, Интерфейс командной строки (CLI), Безголовый режим (сервер) и Контракт API.

0.40.0 (2026-10-12)

  • Поиск gammonNet на 3 и 4 хода глубиной (ply) работает в несколько раз быстрее: один ответ на внутренний узел и ступенчатый корень, который доводит до полной глубины только лучших кандидатов из ранжирования на 2 ply; движок переходит на gammonNet v1.7.0. Любой анализ gammonNet, записанный раньше, устарел и перезаписывается строкой Устаревшие анализы gammonNet на вкладке Обслуживание; роллаут, политика которого играет на 3 ply, больше не даёт прежних цифр.

  • Анализ gammonNet можно отменить посреди поиска: строка состояния показывает его глубину и ход выполнения, а кнопка отмены прерывает и уже начатый глубокий поиск — в интерфейсе, в командной строке и на сервере.

  • Вкладка Обслуживание настроек показывает состояние здоровья базы, одна строка на операцию (позиции без анализа, устаревшие анализы gammonNet, матчи без статистики, освобождаемое место…) с её счётчиком, последним запуском и действием; ничто там не запускается само, а blunderdb maintenance и маршруты сервера maintenance.* — другие формы. Открытие базы больше ничего туда не записывает: статистика матча считается при первом чтении или с этой вкладки.

  • В базу пишет только одна долгая операция за раз: во время операции обслуживания, анализа gammonNet или роллаута другое действие отклоняется с названием той, что занимает базу, а автоматический анализ (после импорта, транскрипции или Дуэли) ждёт своей очереди.

  • Экспорт Anki .apkg: набор для изучения или коллекция записывается в пакет Anki .apkg, который приложение Anki импортирует на компьютере или телефоне (AnkiDroid, AnkiMobile); каждая позиция становится карточкой: на лицевой стороне доска, счёт, куб и кости, на обратной — лучший ход или верное решение по кубу, его эквити и ошибка сыгранного хода. Кнопка экспорта панели Anki, blunderdb anki export и маршрут сервера anki.exportApkg — три его формы, а повторный экспорт обновляет карточки в Anki, а не дублирует их.

  • Дуэль начинается откуда угодно: верхняя полоса панели Дуэль задаёт Старт — начальную позицию или доску, отредактированную как в панели Eval, причём её счёт и поля счёта составляют одно целое, — играет кости доски или перебрасывает их и ставит решение по кубу до или после броска; Одна партия останавливает Дуэль в конце первой партии, чтобы потренироваться на счёте. blunderdb duel create принимает --away, --reroll, --after-cube и --single-game.

  • Контроль времени в минутах на очко: Standard (2 мин на очко + 12 с), Speed (0,4 мин на очко + 10 с) или контроль, сохранённый под именем; запас каждого игрока соотносится с длиной матча или с тем, что осталось сыграть от стартового счёта.

  • Пипкаунт скрыт во время Дуэли: если флажок снят при запуске, он остаётся скрытым даже по кнопке панели инструментов или клавише P и возвращается при выходе из Дуэли.

  • Поворот видео: кнопка ⟳ панели видео, имеющаяся и в панели режима театра, или клавиша o поворачивает видео на четверть оборота, будь то локальный файл или ссылка YouTube; угол запоминается для черновика на этом компьютере.

  • Дата турнира, выведенная из его матчей: у турнира без даты берётся дата его самого старого матча; она показывается серым и предлагается формой редактирования, не записываясь в базу; каждая строка панели Турниры начинается с # и Date, как в панели Матчи, а Прогресс располагает турниры в хронологическом порядке.

  • Карточка матча в панели Турниры: щелчок по матчу турнира показывает под таблицей карточку панели Матчи с её вкладками, а поле фильтра сужает список турниров по мере ввода.

  • Вся библиотека экспортируется одинаково везде: новое окно экспорта — одна строка на семейство со счётчиком, файл выбирается последним —, blunderdb export --type database и сервер переносят одни и те же семейства: матчи с черновиками транскрипций и псевдонимами их игроков и событий, коллекции, турниры, пакеты Anki с историей повторений или без неё (--anki-history, включая приостановленные карточки), каждое из которых можно убрать или ограничить идентификаторами (--match-ids, --tournament-ids…). Живая коллекция или сохранённый фильтр, указывающие позиции, матчи или турниры по номеру, перенумеровываются для файла, а живая коллекция оценивается там в пределах 5 000 позиций; исходный файл и локальное видео матча уходят сведёнными к имени, URL видео — без содержащихся в нём учётных данных. Отфильтрованный список экспортирует только матчи, где сыграны его позиции, каждый со всеми своими позициями.

  • Исправление матча по исходному файлу: кнопка ⟲ в строке Исходный файл карточки или blunderdb match repair перечитывает файл и перезаписывает позиции, анализы и ошибки матча как при новом импорте, сохраняя введённое с тех пор (турнир, имена, переворот игроков, комментарии, транскрипцию, видео и метки) и более глубокие анализы; match repair --list находит матчи, отличающиеся от своего файла, а маршрут matches.repair делает то же самое на сервере.

  • Панель «Статистика»: один фильтр, общий для всех вкладок, с полем игрока, которое ищет по мере ввода; фильтр дат считает свой последний день целиком, а фильтр Движок — это меню движков, присутствующих в анализах базы (blunderdb stats engines). Каждая таблица сортируется и фильтруется по столбцам (>500, 3-7…), её сортировка запоминается. Каждый счётчик открывает ровно то, что считает — матчи, турниры, позиции, ошибки (blunder) —, строка игрока ставит его в фильтр, а заголовок матча, панель анализа и турнир открывают «Статистику» на них; blunderdb stats matches и stats tournaments выдают матчи и турниры, которые считает цифра. Рейтинг переходит с вкладки Corpus на вкладку Игроки, отсортированный по PR (stats ranking по-прежнему выдаёт его в командной строке); строка таблицы под курсором подсвечивается.

  • Окно «Слияние игроков» остаётся открытым между двумя слияниями; Закрыть или ESC закрывает его.

  • Невход вводится одной клавишей в Транскрипции: когда игрок на ходу на баре, f вводит бросок, при котором он не входит, — первый, сначала не дубли, — и ход переходит без хода для ввода; вне бара, или если входит любой бросок, ничего не вводится, и строка состояния сообщает об этом.

  • Сдача вводится клавишей в Записи: r открывает выбор уровня (простая, гаммон, бэкгаммон); в режиме театра небольшое окно предлагает его, а клавиши 1, 2 и 3 подтверждают выбор.

  • Ход играется на мини-доске режима театра: те же жесты, что и на доске, правый щелчок забирает ход; стрелки предыдущего хода стираются с первого шага.

  • Флажок Post-Crawford в Записи появляется при начальном счёте, когда один из игроков на L-1; каждая отметка несоответствия в записи показывает свою причину.

  • Масштаб интерфейса регулируется с клавиатуры: Ctrl++, Ctrl+- и Ctrl+0 увеличивают, уменьшают и восстанавливают его, как в браузере; увеличенный интерфейс занимает всё окно.

  • Роллаут переходит на SHIFT-R; r остаётся случайной позицией.

  • Заметные исправления: переворот игроков матча в 0.39.0 и раньше заменял его позиции другими, без анализа, и убирал его решения из PR, MWC и L₇; теперь переворот затрагивает только имена и места и сохраняет анализы и цифры с точностью до бита, а уже испорченный матч исправляется по исходному файлу командой match repair или кнопкой ⟲ его карточки. gammonNet больше не переполняется на дубле с очень большим числом ходов, из-за которого не завершался неусечённый роллаут; кривая «PR по матчам» отображается в Linux; счётчик позиций панели «Статистика» выходит из режима матча перед открытием своего списка; открытие турнира из «Статистики» выбирает его в панели Турниры; карточка экспорта .apkg называет партию Crawford и пост-Crawford; мини-доска режима театра следует ориентации основной доски; щелчок по истории записи больше не сдвигается воспроизводимым видео, а переходы по видео ограничены и сериализованы; исправление больше не оставляет лишних шашек, а цепочка последующих позиций пересчитывается после изменения.

  • См. Руководство, Интерфейс командной строки (CLI) и Безголовый режим (сервер).

0.39.0 (2026-10-10)

  • Видео матча: локальный файл или ссылка YouTube прикрепляется к матчу, и панель Матчи открывает видео за секунду до броска изучаемого решения (значок строки или клавиша v).

  • Видео рядом с доской: область доски делится между видео и доской по обе стороны от рукоятки, положение которой запоминается; ⇄ или рукоятка выбирает сторону видео, [ и ] регулируют скорость, которую крупный индикатор показывает в центре видео.

  • Транскрипция следует за видео: видеопанель ставит метки каждого действия (момент броска, момент действия), ПРОБЕЛ, SHIFT со стрелками, v и SHIFT-V управляют воспроизведением и метками, щелчок по ячейке переводит видео к её метке, а курсор следует за видео во время воспроизведения.

  • Длительность каждого хода читается в столбце записи, выводится из меток; у хода без момента действия длительность оценочная, она показывается как остальные.

  • Панель Записи читается в три группы: черновики, ввод с меню Видео (локальный файл, ссылка YouTube, убрать видео), затем Готово, Сдаться и меню ⋯, в котором текст и экспорт .mat.

  • Режим театра: F11 переводит окно в полноэкранный режим с видео и плавающей мини-доской поверх него, при этом клавиатура ввода остаётся активной.

  • Карточка матча во вкладках: заголовок и сводка итогов по игрокам остаются вверху, а под ними вкладки Запись, Графики, К разбору, Подробности, Информация и Статистика прокручиваются каждая отдельно; выбранная вкладка запоминается, а графики делят высоту вкладки Графики.

  • Итоги матча: решения для пересмотра, результат с поправкой на удачу, переведённый в MWC, темп ошибок (поспешных или обдуманных, относительно медианы длительностей игрока), а также PR и потеря L₇ с их интервалами; blunderdb match --format summary и маршрут stats.matchReview тоже их выдают.

  • Потеря MWC, приведённая к матчу до 7 очков (L₇), читается рядом с PR в списке матчей, статистике матча, турнирах, панели показателей и прогрессе, а также в blunderdb stats, stats progression и match.

  • Сложность каждого решения и устранимая ошибка: их показывают транскрипция и график потерь, а заголовок матча даёт по каждому игроку сложность, превышение, отношение и число устранимых ошибок.

  • 95-процентный интервал сопровождает PR и каждую ячейку разбивок, пересэмплированный по матчам.

  • Итоги турнира: кнопка Итоги панели Турниры сравнивает турнир игрока с его обычным уровнем с разбивкой по раундам, по рангу решения, по счетам давления и по темпу, затем по семействам ошибок; blunderdb stats tournament и сервер тоже их выдают.

  • Карточка «План обучения» панели показателей ранжирует семейства ошибок по возвращаемому MWC, и каждое из них питает очередь изучения, викторину или колоду Anki; blunderdb stats plan — её форма в командной строке.

  • До и после изучения и знаковые смещения: панель показателей измеряет, обходится ли изученное дешевле в матче и в какую сторону ошибается игрок; blunderdb stats effect и stats biases тоже их выдают.

  • Опорные позиции: кнопка Предложить… панели Коллекции предлагает позиции для изучения в заданной области (база, текущий матч, турнир, фильтр Статистики), чтобы сделать из них коллекцию, колоду Anki или викторину; blunderdb collection suggest — другая её форма.

  • Матч проходит через корзину: удалённый, он восстанавливается в точности, с его номером, датой импорта, партиями, анализами и позициями; blunderdb trash delete --kind match делает тот же жест.

  • Страница «Метрики» даёт определение, формулу и пределы каждой меры: ошибка, PR, потеря MWC, сложность, интервалы, итоги, план обучения, опорные позиции, до/после и смещения.

  • Ход вводится на доске везде одинаково: в Дуэли, Тренировке, ответе на доске в Anki и Записи щелчок по шашке играет её левой ещё свободной костью, щелчок по костям меняет их порядок, затем подтверждает завершённый ход, как ENTER, а правый щелчок забирает текущий ход; ввод источника, а затем цели исчез.

  • Anki и Тренировка подтверждают на доске: ENTER или щелчок по костям оценивает сыгранный ход вместо кнопки Проверить.

  • Запись требует кости перед ходом: без введённых костей доска ничего не играет; когда обе кости введены, ход играется на доске, как в других режимах.

  • Оценить в новой вкладке: правый щелчок по доске открывает в панели Eval вид Вариант #n на показанной позиции, а исходный вид сохраняет свою позицию, свой список и свой анализ; каждый вид находит свою собственную доску Eval.

  • Вызов: кнопка Вызов на панели инструментов (клавиша m) закрывает анализ панели Анализа до щелчка при каждой смене позиции; при разборе матча она также скрывает пометки, потери и сложность списка ходов.

  • Каждый счётчик позиций открывается щелчком: столбцы Позиции и Грубые ошибки в разбивках, семейства плана занятий (теперь список действий Учить, Квиз, Anki), счётчики колоды Anki (к повторению, новые, в изучении, на повторении), счётчик турнира и пометки партии загружают ровно сосчитанные позиции.

  • Панели делят одну полосу заголовка: название, счётчик и фильтры слева, основное действие на правом краю (Поиск, Начать, Играть…); Поиск помещает Критерии, История и Сохранённые в свою полосу.

  • Живая коллекция создаётся вместе со своим запросом: blunderdb collection create --query и маршрут collections.create; collection evaluate читает её целиком до 5 000 позиций и выдаёт реальный итог, а колода Anki, взятая из живой коллекции, повторяет её запрос в каждом сеансе.

  • Форма Метаданные в Записи занимает тело черновика, в два столбца, когда позволяет ширина, при этом запись остаётся видимой; та же кнопка или ESC возвращает ввод.

  • Поиск по справке считает и подсвечивает вхождения по мере набора.

  • Схема 2.41.0: источник видео матча и метки каждого хода; каждый ход несёт ошибку собственного решения, а PR уже имеющихся в базе матчей пересчитывается по правилам eXtreme Gammon. Миграция с 2.36.0 автоматична при открытии и необратима (Приложение: Схема базы данных).

  • Заметные исправления: gammonNet анализирует принятие или отказ как решение удваивающего перед удвоением, включая роллауты, а миграция стирает устаревшие вердикты gammonNet для этих позиций; PR считает вынужденные ходы, решения по кубу и неотмеченные ошибки, как eXtreme Gammon; усечённый файл .xg отклоняется с кодом invalid; отключённый звук и громкость видео переживают смену скорости; перетаскивание, начатое в диалоге и отпущенное на фоне, больше его не закрывает; каждая вкладка настроек сохраняет положение прокрутки.

  • См. Руководство, Метрики и инструменты для изучения, Интерфейс командной строки (CLI) и Безголовый режим (сервер).

0.38.0 (2026-10-06)

  • Дуэль: целый матч играется против бота, который играет по стратегии gammonNet, под арбитражем blunderDB — кости выводятся из зерна, отпечаток SHA-256 которого публикуется при создании, правила, счёт и часы ведёт приложение. Вкладка «Дуэль», кнопка « Jouer » панели инструментов и режим DUEL; матч от 1 до 25 очков или сессия на деньги, старт с начальной позиции, с позиции на доске или с выбранного счёта, дуэль, приостановленная и затем продолженная. blunderdb duel и маршруты duels.* сервера — две другие её формы.

  • Дуэль играется на доске: до броска щелчок по доске или по костям бросает их, а щелчок по кубику предлагает удвоение; щелчок по шашке играет её, щелчок по костям меняет их порядок или подтверждает ход, как ENTER или ПРОБЕЛ, а правый щелчок забирает текущий ход или открывает меню дуэли (Стопка, сдача, приостановка, остановка).

  • Контроль времени и длительность решения: резерв на игрока и бесплатная задержка на каждом ходу, а истёкшее время либо отмечается, либо приводит к проигрышу матча. Каждое решение дуэли несёт свою длительность, которую показывает просмотр (столбец Durée, сводка по игрокам, график), по которой фильтрует поиск с tm>x, в сочетании с E>x, и которую вкладка «Статистика» сопоставляет с ошибкой.

  • Происхождение матча, сыгранного здесь, читается в начале его транскрипции: старт, контроль времени, проигрыш по времени или остановка, уровень бота и версия gammonNet, по стратегии которой он играл, раскрытое зерно и его SHA-256 — достаточно, чтобы пересчитать каждый бросок, не доверяя blunderDB.

  • Стопка: клавиша b, закладка панели инструментов или двойной щелчок вне доски откладывает показанную позицию, во всех режимах, а тот же жест убирает её; закладка в углу доски показывает это. blunderdb collection pile выполняет тот же жест.

  • Роллауты запускаются правым щелчком, из таблицы ходов панели «Анализ», как и из панели Eval, по выбору ходов (Ctrl+щелчок, Shift+щелчок) или по решению с кубиком, с настройкой — Быстрая, Стандартная или Свободная, — которая сохраняется от сеанса к сеансу. То же меню копирует позицию с её анализом или с выбранными ходами.

  • Без открытой базы панель Eval расставляет, вставляет, оценивает, прокатывает роллаутом и копирует позицию, вкладка «Тренировка» предлагает Счёт, Фишки, Bearoff и Оценка, а import XGID=… ставит позицию на черновую доску.

  • Правый щелчок вне доски предлагает Effacer la position и Position de départ в режиме правки и в Eval; при ходе, сыгранном на доске (викторина, Транскрипция), его меню начинается с Recommencer.

  • Подсказки Дуэли располагаются в середине правой половины доски в типографской шкале приложения; игрок 1 остаётся внизу независимо от того, чей ход, а отпечаток зерна читается во всплывающей подсказке строки приглашений.

  • Сдаться, приостановить, отменить: меню Дуэли позволяет сдать матч, приостановить или отменить его; в игре на деньги сдача проигрывает простую партию по значению куба. Матч до очков записывается только целиком, а зерно ожидающей Дуэли не попадает ни в один экспорт.

  • Селектор уровня Бота показывает глубину каждого уровня, прочитанную из таблицы gammonNet.

  • Дуэль можно играть против внешней Стороны: внешняя Сторона объявляет Бота, играющего за ней (--side external:<configuration>@<engine>, sides[i].declared), а происхождение Матча читает это как объявленное клиентом и не удостоверенное; при объединённом зерне (--combined-seed, duel contribute, duels.contribute) вклад каждой внешней Стороны добавляется к запечатанному зерну, и броски выходят из него, формула опубликована.

  • Несколько Дуэлей открыты одновременно: открытие Дуэли не приостанавливает ни одну другую, а у открытой Дуэли часы идут, пока её не приостановят, в том числе при остановке или сбое процесса; настольное приложение держит на доске одну Дуэль и приостанавливает ту, которую покидает, не трогая те, что сервер или командная строка держат открытыми в той же базе.

  • Запись матча получает столбцы Куб, Игра и Часы; каденция и банк времени указаны в сведениях о матче, а ячейка времени без длительности содержит тире.

  • Строка состояния: ссылка на блундеры запускает поиск, а её две цифры — отдельные ссылки: блундеры списка на экране и блундеры всей библиотеки.

  • Движок переходит на gammonNet v1.6.0 (сеть strehl-prob5-512-512-256-256); легальные ходы выдаются в порядке первоисточника, сначала меньшая кость.

  • Материализация записи одним вызовом в строгом режиме: blunderdb transcribe --materialize и маршрут transcriptions.materialize записывают Матч либо отклоняют первое ошибочное Действие с указанием номера и причины, ничего не записывая.

  • Схема 2.36.0: таблицы Дуэли, длительность каждого решения, объявленный Бот, вклады внешних Сторон и признак открытости каждой Дуэли. Миграция с 2.31.0 автоматична при открытии и необратима (Приложение: Схема базы данных).

  • Заметные исправления: нечитаемый файл импорта отклоняется с кодом invalid, а internal остаётся для сбоев; в Windows сжатие действительно уменьшает файл или сообщает, почему не смогло; CTRL-C больше не перехватывается копированием встроенного браузера, а CTRL-X CTRL-X копирует оценку gammonNet в режиме EVAL.

  • См. Руководство, Интерфейс командной строки (CLI) и Безголовый режим (сервер).

0.37.0 (05.10.2026)

  • Транскрипция бумажного матча: вкладка и режим TRANSCRIBE, где матч вводится ход за ходом — кости, треугольник 21 броска, ход, сыгранный на доске или набранный в нотации, кубик, исправление на месте, устойчивый черновик, который восстанавливается после сбоя. blunderdb transcribe и маршруты transcriptions.* сервера — две другие формы.

  • Руководство турниром: клубный турнир проводится из панели «Турнир» — справочник игроков, предложения пар, подтверждаемые одним жестом, сетка столов и протоколы результатов, сетки и таблица жизней, рейтинг, призы и призовой фонд, настенная страница зала, печатные листы, Встречи (Rencontre) из нескольких состязаний в общем зале. blunderdb tournament и serve --direction — две другие формы.

  • Тренировка: вкладка «Тренировка» (Счёт, Фишки, Bearoff, Оценка, Решение) и её журнал, режим викторины, где PR выражен в шкале реальной игры, пропущенные вопросы, повторяемые колодой или коллекцией, очередь изучения необработанных блундеров, объяснение ошибки на обороте карточки Anki, карточки счёта и решения по кубику в виде двух карточек.

  • Уроки: курс, написанный за письменным столом, читается из приложения, командной строки (blunderdb lesson) или сервера и экспортируется вместе с базой; прогресс записывается только по явному действию ученика.

  • Поиск опрашивает корпус: токены игрока, соперника, турнира, раунда, длины, даты и PR, like, ранжирующий похожие позиции, игровой план gt:, словарь тегов, фраза обычным языком, переводимая в токены, закреплённые избранные фильтры, нечёткая палитра команд (CTRL-SHIFT-P), контактный лист из мини-досок и живые коллекции.

  • Панель «Статистика» получает вкладку «Корпус» (очные встречи, PR по окнам, рейтинг, псевдонимы игроков и событий, вероятные дубликаты), двух игроков рядом, повторяющиеся ошибки по игровым планам, разбивку по фазе, метке и счёту, цель прогресса, автономный HTML-отчёт и экспорт в CSV; матч, импортированный без анализа, получает PR.

  • Оценщик переходит на gammonNet v1.4.0 — фильтр ходов по тройкам, beaver и raccoon только в money game — и получает усечённые, cubeful и воспроизводимые роллауты, хранимые как второй анализ, движки рядом, матрицу кубика при всех счётах матча и таблицу эквити матча, импортированную из .xml gnubg, своя для каждой базы.

  • Импорт становится параллельным, с массовым режимом для больших партий, журналом и возобновлением прерванной партии, отслеживаемой папкой, матчами HedgeHog .ogxm, OGID из OpenGammon и метаданными заголовка XG (Elo, транскрибер, комментарии); точный дубликат приносит свои более глубокие анализы.

  • Комментарии подписываются: параметр «Ваше имя» (--author в командной строке) указывает их автора, который передаётся при экспорте.

  • В интерфейсе: экран приветствия, четыре именованные темы, изображение доски в SVG, справка с поиском, отменяемое удаление, настраиваемые по библиотекам пороги ошибок, а также библиотека, поиск и список матчей, просматриваемые окнами, без загрузки всего.

  • Ассистент через MCP: приложение и сервер предоставляют свои инструменты ассистенту (Model Context Protocol). На стороне сервера: очередь анализа, общая для тенантов, квоты (в том числе квота хранимых байтов), поток событий /v1/events, веб-страница просмотра, обмен колодами Anki и коллекциями между тенантами и сгенерированный клиент на Python.

  • Схема 2.31.0: даты в виде целых чисел, позиция и анализ в двоичном виде, закодированные метки действий — более лёгкая база. Миграция с 2.18.0 выполняется автоматически при открытии и необратима (Приложение: Схема базы данных).

  • Заметные исправления: усечённый .mat или .txt BGBlitz без позиции отклоняется, а не входит наполовину, отметки XG дубликата сохраняются, вердикт gammonNet сохраняет сыгранные ходы, в PostgreSQL отказ в записи больше не раскрывает того, чем располагает другой тенант, а кнопка настенной страницы Дирекции открывает её в системном браузере, сообщая о неудаче.

  • См. Руководство, Интерфейс командной строки (CLI) и Безголовый режим (сервер).

0.36.0 (05.09.2026)

  • Исполняемый файл на 7,3 МБ меньше: таблицы выбрасывания больше не встроены и не загружаются, а вычисляются при первом запуске, в фоне и молча — побайтово идентичные таблицам gnubg, с проверкой отпечатка SHA-256. Расширенная таблица TS-06-11 вычисляется во вкладке Bearoff, а не скачивается на 1,2 ГБ.

  • Турниры заполняются сами при импорте: матч относится к турниру, который назван в его файле, и турнир создаётся при необходимости; уже размещённый матч никогда не переносится.

  • Единая грамматика поиска, теперь читаемая из командной строки (blunderdb search --query) так же, как из приложения.

  • Командная строка получает --format json в девяти командах, автодополнение для bash, zsh и fish, команду repair и подкоманды anki card и anki log.

  • Вкладки Сочетания клавиш и Команды встроенной справки порождаются из страниц руководства, которые их описывают: они больше не могут от них отстать и становятся таблицами, без врезок. Вкладка Руководство справки остаётся кратким изложением, отличным от полного руководства в сети. Ещё три обзорных тура (Eval, Anki, Stats).

  • Двоичный файл Linux arm64, поставляемый архивом, .deb, .rpm и пакетом AUR.

  • Панель Eval снова находит доску, на которой её оставили, различает money-эквити и match-эквити и просматривается с клавиатуры.

  • На стороне сервера: контракт API, порождённый из кода (openapi.yaml и его приложение, 135 маршрутов), идентификатор корреляции для каждого запроса, показатели выполняемой работы, сжатие потоков NDJSON (13,5 % размера), и два вызова, выходящих за пределы тенанта — vacuum и purge — переходят под /ops/.

  • Схема 2.18.0: Jacoby и beaver покидают идентичность позиции, так что одна и та же позиция в money-игре больше не попадает внутрь дважды через разные двери. Миграция выполняется автоматически при открытии и необратима (Приложение: Схема базы данных).

  • Заметные исправления: панель подробностей панели «Матчи» больше не занимает половину экрана, когда ничего не выбрано; первая партия записи сворачивается, как и остальные; SHIFT-J и SHIFT-K переключают вид из любой панели; восемь сочетаний «показать/скрыть» наконец скрывают.

  • См. Интерфейс командной строки (CLI), Безголовый режим (сервер) и Руководство.

0.35.0 (2026-09-02)

  • Командная строка получает два семейства команд: blunderdb collection (список, показ, создание, переименование, удаление, экспорт коллекции) и blunderdb anki (колоды, статистика, прогноз повторений, ресинхронизация колоды).

  • Серверный режим публикуется в виде образа Docker (ghcr.io/kevung/blunderdb-serve, amd64 и arm64), получает маршрут maintenance.vacuum и ставит водяной знак на свои экспорты с идентичностью издателя сервера (--identity-dir).

  • Оценщик gammonNet оценивает свои листья с учётом куба: при матчевом счёте вердикты поиска приближаются к вердиктам eXtreme Gammon.

  • Каждый релиз теперь поставляет манифесты winget и Homebrew и пакет Flatpak, в дополнение к пакетам Debian, RPM и AUR.

  • В интерфейсе библиотека теперь постраничная (база из 50 000 позиций больше не загружает всё в память при каждом обновлении), модальные окна используют общую основу (фокус, Escape, доступность), доска перерисовывает только то, что меняется, а встроенный японский шрифт сокращён до своего полезного подмножества (на 5,5 МБ меньше).

  • Заметные исправления: база, импортированная через «Импортировать базу», сохраняла позиции, невидимые для фильтров и дублирующиеся при повторном импорте (исправляется при открытии); кнопка «Объединить» в окне слияния игроков оставалась серой; экспорт сервера был пустым; а в Windows удаление скачанной базы bearoff и create --force завершались ошибкой.

  • См. Интерфейс командной строки (CLI), Безголовый режим (сервер) и Руководство.

0.34.0 (2026-09-02)

  • Встроенный оценщик: gammonNet, портированный на Go и скомпилированный в blunderDB, оценивает любую позицию офлайн, без XG или gnuBG — нейросеть, поиск от 0 до 2-ply с отсечением, решение по кубу по Яновскому и таблице матчевого эквити blunderDB, и поиск, учитывающий счёт матча.

  • Панель Bearoff становится панелью Eval: она показывает факты позиции (шансы на выигрыш, гаммон и бэкгаммон для обеих сторон, эквити), а затем единственное решение, которое требует доска, на стабильной сетке без прокрутки; матчевые эквити нормализованы, и вердикт «слишком хорошо для удвоения» снова виден.

  • Оценка прогрессивная: 0-ply сразу же при жесте, затем 2-ply в покое, отменяемая любым новым жестом, с меткой глубины, всегда называющей ту, что дала это число.

  • Вся доска, кости и счёт редактируются прямо там, кликом или клавиатурой, и позиция из библиотеки входит в панель и выходит из неё.

  • В гонке за пределами двусторонней базы третий, вычисленный режим предоставляет вердикт по кубу при данном счёте, который панель раньше не давала.

  • Вкладка gammonNet в настройках отделяет глубину отображения от глубины анализа.

  • После импорта ограниченная, видимая, отменяемая и возобновляемая партия анализа заполняет позиции, вовсе не имеющие анализа, никогда не перезаписывая импортированный анализ; догоняющий анализ существующей библиотеки запускается из интерфейса, новой командой blunderdb analyze или в серверном режиме.

  • Заметные исправления: ответ на удвоение, импортированный из eXtreme Gammon, наследовал анализ удваивающего игрока без переворота; нотация ходов Белых и входов с бара теперь следует gnuBG и XG; глубина анализа gnuBG считывается корректно; размер боковой панели запоминается.

  • См. Панель Eval, Руководство и Интерфейс командной строки (CLI).

0.33.0 (2026-08-26)

  • В панели статистики появилась вкладка Игроки: три прежние вкладки описывают одного игрока, а эта сравнивает всех — по строке на каждого игрока базы: матчи, победы/поражения, учтённые решения, PR общий / шашки / куб, Snowie Error Rate, бландеры и удача. Таблицу можно сортировать по любому столбцу, ограничивать датами турнира обычными фильтрами, а щелчок по строке переключает на подробности этого игрока. Прочерк означает величину, которая никогда не измерялась, но не ноль. Таблица доступна и в командной строке (blunderdb list --type players — текст, JSON или CSV), и в режиме сервера.

  • Удача каждого броска теперь сохраняется в базе и отображается: средняя удача за бросок в тысячных долях очка, со знаком. Она считывается при импорте как из файлов eXtreme Gammon, так и из gnuBG. Задним числом она не появляется — у ранее импортированных матчей стоит прочерк, и чтобы её получить, исходные файлы нужно импортировать заново; форматы, которые её не переносят (BGF, Jellyfish .mat), не дадут её никогда.

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

  • Новая команда Сжать базу, возвращающая место, оставшееся после удалений: кнопка в настройках и подкоманда blunderdb vacuum. Сама по себе она не запускается никогда.

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

  • Заметные исправления: недаблы, помеченные gnuBG как «Double No», считались даблами и искажали PR по кубу (уже накопленную базу можно починить без повторного импорта, в режиме сервера); фильтр по игроку ошибочно сужал знаменатель Snowie Error Rate; экспорт записывал устаревшую схему; а blunderdb vacuum открывал графический интерфейс вместо сжатия базы.

  • См. Панель Stats и Интерфейс командной строки (CLI).

0.32.0 (2026-08-09)

  • Панель EPC становится панелью Bearoff и получает полный анализ гонки. (Переименована в панель Eval в 0.34.0.)

  • На чистой позиции bearoff отображаются — помимо EPC, подсчёта пипсов, потерь и среднего числа бросков каждого игрока, теперь представленных в таблице со знаковой строкой Δ — вероятности выигрыша обоих игроков и денежные эквити (cubeless, без удвоения, удвоение/принятие, удвоение/отказ, с разрывом каждого решения от лучшего), а также лучшее решение по кубу.

  • Два чётко различаемых режима: точный (чтение из двусторонней базы; встроенная база TS-06-06 GNUbg, покрывающая до 6 шашек на игрока) и оценённый (калиброванная свёртка, показывается погрешность — вердикт по кубу никогда не оценивается).

  • Расширенная база TS-06-11 (точный вердикт до 11 шашек на игрока, 1,2 ГБ) загружается с новой вкладки Bearoff в настройках, с проверкой целостности и возобновлением прерванных загрузок; можно также указать любой двусторонний файл .bd от gnubg. (Заменено в 0.36.0: таблица вычисляется на самой машине, никаких загрузок.)

  • Режим вызова для тренировки: результаты скрываются при каждом изменении и раскрываются зона за зоной по клику.

  • Полное редактирование на доске: шашки обеих сторон, игрок на ходу (клик по прямоугольнику снятия/счёта) и позиция куба (клик по кубу).

  • Клик по доске теперь точен при любом масштабе интерфейса (клик по пункту 1 мог попадать на пункт 2).

  • Новая команда blunderdb epc в командной строке и опция --bearoff-ts серверного режима.

  • Новый раздел руководства, «Методология и допущения панели Bearoff», исчерпывающе излагает допущения, стоящие за каждым отображаемым значением. (Раздел переименован вместе с панелью в 0.34.0.)

  • См. Панель Eval и Методология и допущения панели Eval.

0.31.0 (2026-08-04)

  • Распространение базы среди третьих лиц: два независимых механизма, оба необязательны и выбираются при экспорте.

  • Водяной знак происхождения записывает в файл, что это такое и откуда оно взялось, подписанный идентичностью издателя, создаваемой самой собой при первом использовании; отметка не поддаётся подделке, читается вверху панели Метаданных (или через blunderdb info, никогда не записываясь в файл) и ничего не фиксирует на стороне получателя — ни журнала, ни отслеживания.

  • Защита паролем создаёт зашифрованный файл .dbx (AES-256-GCM, ключ, выведенный через Argon2id), проверяемый при каждом открытии, заголовок которого остаётся читаемым в открытом виде; идентичность экспортируется и импортируется как единый файл из настроек.

  • Окно экспорта переработано: один экран вместо четырёх, напоминание о том, что действительно уходит (отображаемые позиции), покрытая доля каждой коллекции, отмеченная красным при частичном охвате, турниры экспортируются только вместе со своими матчами — и экспорт в три раза быстрее.

  • Окно настроек реорганизовано в три вкладки (Интерфейс, Цвета доски, Идентичность издателя), со стабильным размером и позицией.

  • Панель Метаданных перекомпонована в единую сетку.

  • Панель Журнал, которая получала лишь эхо команд, удалена.

  • Заметные исправления: неверный пароль больше не открывает защищённую базу; поля модальных окон больше не теряют фокус при клике; вычисление показателей PR/MWC больше не падает на денежной партии; временные файлы (-wal, -shm, блокировка) очищаются при закрытии.

  • См. Распространение базы: происхождение и пароль и Руководство.

0.30.0 (2026-07-26)

  • Поиск по комментарию: фильтр «Текст поиска» становится фильтром «Комментарий» и предлагает три взаимоисключающих режима — содержит текст (прежнее поведение, токен t""слово1;слово2""), есть комментарий (токен co) и без комментария (токен xco) — чтобы одним движением находить прокомментированные позиции или, наоборот, те, что ещё предстоит прокомментировать.

  • Позиции, помеченные в eXtreme Gammon: метки (flags), проставленные при анализе матча XG, теперь считываются при импорте и находятся через фильтр «Помеченная» (токен fl), сочетаемый с любым другим критерием; помеченное решение по кубу даёт две помеченные позиции — удвоение и принятие/отказ.

  • Поскольку разметка не является ретроактивной, достаточно повторно импортировать соответствующий файл .xg, чтобы его метки попали в базу, не затрагивая существующие комментарии или анализы.

  • Заметные исправления: PR, отображаемый на значке турнира, теперь относится к эталонному игроку, а не к сумме обоих игроков; колоды Anki, построенные на основе поиска, снова учитывают фильтры этого поиска, а не всю базу; исправлено зависание поиска при сочетании определённых фильтров (текст, дата, ошибка сыгранного хода).

  • См. Список команд и Руководство.

0.29.0 (2026-07-18)

  • Экспорт матча в формате Jellyfish/gnubg (.mat) из интерфейса (панель Матчи), а также из командной строки, с соответствующим серверным маршрутом — удобно для повторного проигрывания матча в другой программе для нард.

  • Поиск: новый различитель «исключённые кости» (токен xD65, допускается несколько), который отбрасывает позиции, чей бросок совпадает с заданным.

  • Безопасное параллельное открытие: база, уже открытая для записи в другом окне blunderDB, теперь открывается только для чтения (навигация, поиск и анализ по-прежнему возможны, изменения отключены, отметка «[только чтение]» в заголовке окна) вместо риска повреждения.

  • Происхождение позиций: вне режима матча информационная панель над доской показывает матч — и его турнир — из которого происходит изучаемая позиция, со значком «+N», если она встречается в нескольких матчах.

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

  • Явная перезагрузка библиотеки (CTRL-R, кнопка панели инструментов или команда e) заново открывает панель анализа на отображаемой позиции.

  • Заметные исправления: устранено зависание при экспорте больших баз; кнопка «Нет» экспорта, которая на самом деле не исключала ни одного матча; фильтрация комментариев по нескольким словам; устранение дублирования события и турнира в информационной панели; различные визуальные доработки.

  • См. Список команд, Панель матчей и Руководство.

0.28.0 (2026-07-15)

  • Панель поиска: единый фильтр «Матчи и турниры», заменяющий текстовые поля идентификаторов окном выбора (списки с фильтрацией по тексту, кнопки Все/Ничего, отметка турнира отмечает его матчи-участники) — быстрее на больших базах, вкладка Матчи и вид Турниры теперь пересчитывают показатели PR/MWC только для отображаемых матчей; cli list --type tournaments закрывает соответствующий пробел паритета.

  • Новый фильтр «Импортирована индивидуально» (флажок группы «Прочее» или токен i в командной строке, s i; также доступен в CLI через --individual) для поиска позиции, сохранённой или импортированной отдельно, а не затерянной внутри импорта матча.

  • Исправлена потеря данных: удаление матча больше не удаляет индивидуально импортированные позиции, позиции, помещённые в коллекцию, или позиции, включённые в колоду Anki, которые этот матч также содержал.

  • Серверный режим (headless): шесть новых методов для планировщика интервального повторения Anki — журнал повторений (anki.reviewLog), прогноз карточек, подлежащих повторению (anki.forecast), приостановка/откладывание/удаление карточки (anki.suspendCard, anki.buryCard, anki.removeCard) и автоматическая настройка целевого удержания колоды к наблюдаемому проценту успеха (anki.optimizeParams, заменён в 0.36.0 на anki.retention, который измеряет наблюдаемый процент, никогда не записывая цель); новый метод tenant.purge для окончательного удаления данных тенанта в многопользовательском развёртывании PostgreSQL; новые методы matches.list (фильтрация/сортировка/пагинация) и stats.matchBadges (показатели PR/MWC, ограниченные списком матчей).

  • Нативное распространение для Linux: пакеты .deb/.rpm, сохраняющие бит исполнения, теряемый при скачивании сырого бинарника.

  • Импорт: после импорта матча теперь отображается вкладка Матчи, и импортированные позиции сразу видны; после импорта отдельной позиции (файл XGP, позиция BGBlitz, текстовый файл позиции, вставленная позиция или пакет позиций) вкладка Анализ теперь открывается сразу на импортированной позиции, а не вкладка Матчи; исправлена вставка анализа eXtreme Gammon на французском или немецком языке с macOS, которая оставалась пустой (акценты разбирались буфером обмена системы на составляющие).

  • См. Безголовый режим (сервер), Список команд и Загрузка и установка.

0.27.0 (2026-06-13)

  • Панель Anki: новый режим свободной тренировки (cram), доступный по кнопке Cram рядом с Study, который показывает случайные позиции из колоды, не изменяя график интервального повторения — идеально для разминки перед турниром или интенсивного повторения колоды без нарушения её порядка.

  • Поиск: новая команда blunders (псевдоним bl), загружающая худшие ошибки (equity/MWC) прямо в представление анализа, с необязательным числом для выбора количества (bl 50); новый фильтр по игроку pl'имя', находящий все позиции из матча с участием заданного игрока на любой стороне; и всплывающие подсказки, показывающие при наведении на каждый фильтр панели поиска соответствующий командный токен.

  • Серверный режим (headless): новые методы matches.movesByMatch (все ходы матча за один вызов) и positions.epc (Effective Pip Count для обоих игроков).

  • См. Панель Anki и Список команд.

0.26.0 (2026-06-09)

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

  • Добавлена информационная панель над доской, напоминающая игроков и контекст матча (событие, место, раунд, дата, длина).

  • При открытии базы панель матчей теперь сразу отображается, и просмотр начинается с первой позиции.

  • Клавиатурные сочетания теперь не зависят от раскладки клавиатуры (AZERTY, QWERTY, QWERTZ…).

  • Исправлено декодирование XGID (флаги Jacoby/Beaver и значение куба).

  • Добавлены вкладки множественных представлений: несколько независимых рабочих пространств (список позиций, текущая позиция, поиск) с сочетаниями CTRL-T (новое представление), CTRL-W (закрыть), CTRL-PageUp/CTRL-PageDown (переключение представления) и переименование двойным щелчком по вкладке.

  • См. Конфигурация и Вкладки представлений.

0.25.0 (2026-06-07)

  • Серверный режим (headless): два новых метода для восстановления позиции без её сохранения — positions.fromXGID декодирует строку XGID в позицию, а positions.fromXGP читает файл одиночной позиции .xgp.

  • См. Безголовый режим (сервер).

0.24.0 (2026-06-06)

  • Добавлен образ контейнера (Docker) для headless-режима: выделенная точка входа serve и Dockerfile.serve, создающий статический бинарный файл без графического интерфейса, для развёртывания движка blunderDB как службы за обратным прокси-сервером.

  • См. Безголовый режим (сервер).

0.23.0 (2026-06-05)

  • Добавлены управляемые обзорные туры по интерфейсу (общий тур, поиск, матчи, турниры), воспроизводимые с панели инструментов или командой tour, а также демонстрационная база, загружаемая командой demo, чтобы познакомиться с инструментом без импорта собственных партий.

  • Настройка цветов доски (фон, рамка, стрелки, шашки, кости, куб) из окна настроек.

  • Автодополнение командной строки (клавиша TAB).

  • Панель поиска: явный выбор типа решения (Шашки / Куб), с подтипом Удвоение / Без удвоения или Принятие / Отказ для решений по кубу, синхронизированный с доской; предлагаемый куб отображается в центре доски для решений о принятии/отказе.

  • Поиск позиции по её идентификатору (фильтр id).

  • Исправлено отнесение ошибки по кубу к игроку 1.

  • См. Обучающие туры и образец базы данных.

0.22.0 (2026-06-02)

  • Добавлен безголовый (серверный) режим, продвинутый и необязательный, дополняющий настольное приложение: демон serve, предоставляющий движок по HTTP + JSON, многопользовательский бэкенд PostgreSQL с разделением по тенантам (и Row-Level Security по выбору), команда migrate для переноса базы SQLite в PostgreSQL и универсальный диспетчер call, дающий доступ из командной строки ко всем операциям хранения.

  • Импорт отдельных позиций из новых форматов (eXtreme Gammon .xgp, текст BGBlitz, нативная библиотека .db) с обогащением дубликатов между форматами.

  • Исправления: панели больше не вызывают ошибку, когда ни одна база не открыта, а панель Комментарии больше не зацикливается при открытии.

  • См. Безголовый режим (сервер).

0.21.0 (2026-06-01)

  • Интернационализация интерфейса: весь интерфейс blunderDB (панель инструментов, панели, сообщения, справка) теперь может отображаться по выбору на английском, французском, немецком, итальянском, испанском, финском, японском, греческом или русском языке.

  • Добавлено окно настроек, доступное через кнопку в виде шестерёнки на панели инструментов, позволяющее выбрать язык.

  • Выбор языка сохраняется от сеанса к сеансу.

  • См. Конфигурация.

0.20.0 (2026-05-31)

  • Добавлена структура исключения Except на панели поиска: исключает позиции, содержащие одну из нарисованных шашек, с маркером «должно быть пусто» (двойной щелчок) и неограниченным числом шашек на пункт (команда x).

  • Добавлена опция «только первая кость» в фильтр броска (вариант D1, опция CLI --dice).

  • Панель Комментарии: автоматический фокус на поле ввода при открытии, кнопки редактирования/удаления всегда видны.

  • Исправлен фильтр «Search Text», который находил не все теги комментариев.

0.19.0 (2026-05-07)

  • Добавление панели Статистика: показатели PR (Performance Rating), Snowie Error Rate и MWC cost (стоимость шанса выиграть матч), панель фильтров (игрок, турнир, даты, тип решения, длина матча), вкладка Dashboard с карточками уровня / скользящим PR / топом бландеров, вкладка Прогресс с кривой по турнирам и диаграммой рассеяния по матчам, вкладка Ошибки с распределением по действиям с кубом и гистограммой величин.

  • Интерактивный drill-down к позициям / матчам / турнирам из всех показателей.

  • Мгновенное переключение PR / MWC.

  • Команда CLI list –type stats.

  • Согласование показателей PR / Snowie ER / MWC с eXtremeGammon и gnuBG (порог эквити 0.16 для близких кубов).

  • Исправлено вычисление cube_error для решений Double/Pass.

  • Документация модели статистики (Приложение: Модель статистики — выравнивание XG / gnuBG / blunderDB).

  • См. Панель Stats.

0.18.0 (2026-04-20)

  • Крупный рефакторинг кода: разделение db.go (10 тыс. строк) на 19 специализированных файлов, извлечение 7 сервисных модулей из App.svelte (4888→469 строк), консолидация модальных/панельных сторов.

  • Полная миграция на руны Svelte 5.

  • Замена 9 табличных модальных окон общим компонентом DataTableModal.

  • Добавлены ESLint + Prettier + vitest (125 фронтенд-тестов) с CI.

  • Соответствие WCAG 2.1 AA (видимый фокус, роли ARIA, навигация с клавиатуры).

  • Переход мьютекса Database на RWMutex для лучшего параллелизма чтения.

  • Полная документация CLI (CLI_USAGE.md + Sphinx FR/EN).

  • Переписан README.

  • Исправлены все предупреждения ESLint (46→0) и Vite (6→0).

0.17.0 (2026-04-20)

  • Оптимизация хранения: сжатие zlib данных анализа (~80% сокращение), компактное кодирование позиций (~90% уменьшение размера).

  • Добавлены 5 недостающих индексов для повышения производительности поиска.

  • Исправлен поиск по ошибке куба.

  • Исправлен режим EDIT после поиска без результатов.

  • Восстановление состояния панели поиска при переключении вкладок.

  • Удалены 62 отладочные инструкции из критических путей.

0.16.0 (2026-04-18)

  • Схема базы данных v2.0.0: дедупликация позиций через хеш Зобриста, денормализованные столбцы фильтрации, предфильтр шаблонов на битбордах, журналирование WAL (Приложение: Схема базы данных).

  • Пакетный импорт в >=3 раза быстрее, фильтрованный поиск <=100 мс на 10k+ позициях.

  • ПРИМЕЧАНИЕ: файлы DB, созданные с v0.16.0, не могут быть открыты более старыми версиями; старые DB автоматически мигрируются на месте (сначала сделайте резервную копию).

0.15.0 (2026-03-31)

  • Экспорт позиции в PNG-изображение в буфер обмена (только доска через Ctrl+X, или доска с анализом через Ctrl+X Ctrl+X).

0.14.0 (2026-03-30)

  • Выделенная панель Anki для изучения методом интервального повторения (алгоритм FSRS).

  • Импорт комментариев из файлов XG.

0.13.0 (2026-03-28)

  • Упрощение интерфейса: навигация по матчам и коллекциям теперь выполняется непосредственно через панели.

  • Командная строка, интегрированная в строку состояния.

  • Панель Консоль переименована в панель Log. (Панель удалена в 0.31.0.)

  • Выделенная панель Bearoff в нижней панели.

  • Копирование/вставка позиции в панели поиска.

  • Перетаскивание для изменения порядка коллекций, позиций в коллекциях и матчей в турнирах.

  • Столбец турнира в панели матчей со встроенным редактированием.

  • Автоматическое отображение панели анализа после поиска.

0.12.0 (2026-03-19)

  • Импорт файлов позиций eXtreme Gammon (XGP) с анализом.

0.11.0 (2026-03-06)

  • Фильтр для поиска среди текущих позиций.

  • Добавление фильтров по матчу и по турниру.

  • Автоматическая очистка доски при открытии панели поиска.

0.10.0 (2026-02-25)

  • Импорт матчей из eXtreme Gammon (XG/XGP), GNUbg (SGF), Jellyfish (MAT/TXT) и BGBlitz (BGF/TXT).

  • Навигация по матчам: просмотр ходов импортированного матча с подсветкой сыгранного хода.

  • Панель матчей: список, сортировка, встроенное редактирование, смена игроков, назначение турнира.

  • Рекурсивный импорт из папки и импорт перетаскиванием.

  • Калькулятор EPC (Effective Pip Count) со встроенной базой данных bearoff GNUbg. (Заменено в 0.36.0: таблица вычисляется на самой машине, ни одна больше не встраивается.)

  • Коллекции: пользовательская группировка позиций.

  • Турниры: группировка матчей по событию.

  • Сохранение и восстановление состояния сессии (последний поиск, текущая позиция).

  • Автоматическая миграция схемы базы данных.

  • Отображение нескольких движков в анализе.

  • Фильтр ошибок/бландеров игрока 1 при поиске.

  • Экспорт базы данных с детальным выбором (матчи, коллекции, турниры, сыгранные ходы).

  • Кнопка навигации по матчам.

  • Отображение подсчёта шашек (pipcount) в навигации по матчам.

  • Полный интерфейс командной строки (CLI).

  • Автоматическое открытие последней базы данных.

  • Улучшение панели инструментов и иконок.

0.9.0 (2025-11-02)

  • Исправление ошибки в библиотеке фильтров.

  • Импорт/экспорт базы данных.

  • Отображение стрелок для выбранных ходов.

  • Горячие клавиши для импорта/экспорта.

0.8.0 (2025-05-03)

  • Новая кнопка для скрытия подсчёта шашек.

  • Кнопка загрузки случайной позиции.

0.7.0 (2025-02-16)

  • Поддержка японского и немецкого языков в экспорте XG.

0.6.0 (2025-02-13)

  • Добавление библиотеки фильтров.

  • Отображение версии базы данных в метаданных.

0.5.0 (2025-02-04)

  • Добавление новых фильтров (зеркало, нет контакта, блот в яне, блот в аутфилде).

0.4.0 (2025-02-03)

  • Исправление различных ошибок.

  • Добавление иконки для blunderDB.

  • Исправление фильтров.

  • Добавление поддержки macOS.

0.3.0 (2025-01-27)

  • Исправление различных ошибок.

  • Автоматическое сохранение размера окна.

  • Импорт комментариев из XG.

0.2.0 (2025-01-06)

  • Исправление различных ошибок.

  • Добавление таблиц матчей/TP/GV.

  • Добавление фильтров поиска (ходы, решение видо, дата).

  • Добавление метаданных для позиций.

  • Функция импорта/экспорта между экземплярами blunderDB.

  • Добавление функции метаданных для баз данных.

  • Введение номеров версий (база данных и приложение).

0.1.0 (2024-12-31)

  • Создание бета-версии.