Repository navigation
Releases
Release v0.1.42
PDFCompare Local v0.1.42
Обмен ручными решениями AI-отчёта между коллегами.
До сих пор решения по зонам («Правка / Проверить / Шум») и поправленные контуры хранились только в браузере
того, кто их принял, и в ссылке между листами. Коллега, получивший ZIP отчёта, их не видел.
На странице обзора AI-отчёта появились кнопки «Сохранить решения» и «Загрузить решения». Первая скачивает
JSON-файл с решениями и контурами, вторая загружает такой файл в открытый отчёт. Решения привязаны к зонам
отчёта, а не к папке, в которую он распакован, поэтому файл подходит к любому экземпляру того же отчёта.
Записи, не относящиеся к зонам этого отчёта, пропускаются; страница сообщает, сколько загружено и сколько
пропущено. Файл другого формата не принимается.
Формат данных AI-отчёта не изменился. Уже выданные отчёты остаются в прежнем виде.
Release v0.1.41
PDFCompare Local v0.1.41
Ручная доработка AI-отчёта на странице листа.
Решение по зоне принимается тремя кнопками «Правка / Проверить / Шум» прямо под заголовком зоны
(клавиши 1–3). Рядом видно, совпадает ли решение с выводом AI; вернуть вывод AI можно одним щелчком.
Зоны с ручным решением помечены в списке; зона, которую текущий фильтр скрыл бы после смены класса,
остаётся в списке, пока она выбрана.
Контур зоны, нанесённый AI, можно поправить: кнопка «Править контур» (клавиша E) позволяет сдвинуть
контур, перетащить вершины, добавить вершину двойным щелчком по ребру и удалить Alt+щелчком; Ctrl+Z
отменяет шаг, Esc завершает правку, «Вернуть контур AI» восстанавливает исходный. Детальный фрагмент
OLD / NEW строится по новому контуру. Поправленные контуры хранятся в браузере вместе с ручными
решениями и передаются ссылкой между листами; исходный вывод AI не меняется.
На каждой странице листа появилась кнопка «Листы» — перечень всех листов отчёта со счётчиками правок
и «проверить», главными объектами и превью OLD / NEW.
Исправлено: в AI-отчёте, построенном приложением, кнопки перехода между листами вели и на листы,
для которых нет ответа AI.
Формат данных AI-отчёта не изменился. Уже выданные отчёты остаются в прежнем виде.
Release v0.1.40
PDFCompare Local v0.1.40
Обновлён дизайн AI-отчёта.
В матрице листов вместо одинакового служебного текста в каждой строке теперь перечислены изменённые
объекты: красным — правки, оранжевым — наблюдения, которые AI не подтвердил и которые нужно проверить.
Список пересчитывается с учётом ручной оценки: если пометить зону шумом, она исчезает из сводки.
Над матрицей добавлен фильтр листов «Все / С правками / Проверить / Без правок».
На странице листа зоны подписаны названиями объектов. Для наблюдений со структурированным ответом
модели показаны значения OLD и NEW и последствие правки. Если номера ревизий неизвестны, подписи
«OLD · OLD» больше не выводятся.
Формат данных AI-отчёта не изменился. Уже выданные отчёты остаются в прежнем виде.
Release v0.1.39
PDFCompare Local v0.1.39
Обновлён дизайн итогового HTML-отчёта сравнения.
На главной странице под карточками статусов появилась полоса «Серьёзность изменений»: сколько листов
крупных, средних, малых, другого формата и без изменений. Нажатие на сегмент фильтрует матрицу.
Столбцы уровня, «заполнено %», «лист %», мм² и числа зон сортируются нажатием на заголовок.
Легенда теперь описывает фактическое правило: уровень листа — худший из трёх сигналов
(доля изменённого от нарисованного, площадь крупнейшей зоны, число зон). Поэтому лист с 6% изменений
может быть «крупным» из-за множества зон; подсказка на бейдже уровня показывает расчёт по этому листу.
Страница листа показывает метрики плитками, включая добавленную и удалённую площадь в цветах DIFF,
и заметки об автовыравнивании: компенсированный сдвиг листа или то, что выравнивание не применялось.
Исправлено:
- уже совмещённый лист помечался как сбой выравнивания ECC; теперь это метод
ALREADY_ALIGNED
без предупреждения.ECC_FAILEDостаётся для листов, где общего сдвига нет — обычно виды перенесены
по-разному. Изображение для diff и метрики не меняются; - лист несовместимого формата показывал битое изображение DIFF и необработанный ключ
SIZE_MISMATCH; - Enter на странице листа открывал слайдер даже при фокусе на кнопке «Вперёд» или ссылке;
- в карточках документов выводилась заглушка «ред. ?»;
- итоговые сообщения CLI не учитывали
--lang.
Движок сравнения и метрики не изменились. report.json дополнен полями ecc_failed и notes_by_lang.
Release v0.1.38
PDFCompare Local v0.1.38
В AI-отчёте можно вручную изменить классификацию наблюдения на «правка», «шум» или «проверить»,
а затем вернуть исходный вывод AI. Сводка пересчитывается с учётом ручных решений. На главной странице
появился общий переключатель «По умолчанию показывать только правки на всех листах».
Решения сохраняются локально в браузере. Переходы кнопками отчёта переносят их между локальными HTML;
исходные JSON/ZIP, модель и серверный кэш не редактируются. Для другого браузера или новой копии
каталога отчёта локальное сохранение не гарантируется.
Просмотрщик поддерживает приблизительные контуры объектов вместо обязательных прямоугольных зон
и отдельное оранжевое обозначение неопределённости. Скрытые фильтром зоны скрываются и на чертеже.
В отдельной поставке Telegram-сервиса фрагменты служат для чтения листа, а находки формируются
по объектам. Красная метка требует читаемых OLD → NEW фактов изменения проекта. Печать, сглаживание,
шрифты и перенос неизменённого блока считаются оформлением; неподтверждённые выводы требуют проверки.
Кэш прежнего формата сохраняется, новый анализ требует новых обращений к провайдеру.
Приватный Telegram-сервис по-прежнему не входит в публичную сборку.
Release v0.1.37
PDFCompare Local v0.1.37
Версия синхронизирована с обновлением отдельно развёрнутого Telegram-сервиса.
На экране перед запуском теперь доступны обычное сравнение, AI всего комплекта и AI одной пары страниц.
Для всего комплекта пользователь выбирает Gemini/Qwen и подтверждает внешнюю передачу JPEG-фрагментов.
После сравнения автоматически проверяются все сопоставленные пары, включая неизменённые; добавленные
и удалённые страницы перечисляются отдельно без AI. Частичный результат не получает статус завершённого.
Публичная сборка по-прежнему не содержит приватный Telegram-сервис. Движок и форматы совместимы с v0.1.36.
Проверки: Windows/Linux private release gates, сценарии выбора всего комплекта без повторной загрузки,
полная автоматическая AI-обработка с имитацией провайдера и неизменённым листом, защита от повторного
запуска и регрессия частичного результата.
Release v0.1.36
PDFCompare Local v0.1.36
Исправлено ложное завершение MCP-сравнения при параллельной обработке больших комплектов.
- Python
spawnповторно импортировал модуль worker в каждом дочернем процессе. Эти процессы перезаписывалиworker.jsonсвоим PID. После завершения дочернего процесса MCP мог ошибочно объявить основной worker погибшим и удалить ещё используемый временный отчёт. - Идентификатор публикует только основной процесс, до тяжёлых импортов. Дочерние процессы сохраняют его без изменений. Проверка PID по времени создания и безопасная отмена сохранены.
- Очистка повторно читает статус после обнаружения завершившегося процесса, чтобы не заменять уже записанное
completedошибкой из устаревшего снимка.
Включены улучшения v0.1.35: уникальное обозначение DWG в штампе сохраняет соответствие страниц при изменении формата бумаги.
Проверки: Ruff, mypy, регрессии spawn-импорта и гонки очистки, полный набор тестов; полный серверный прогон комплекта больших чертежей с несколькими worker.
Release v0.1.35
PDFCompare Local v0.1.35
Сопоставление одного чертежа после изменения формата бумаги.
- Движок извлекает однозначное обозначение DWG из физической области правого нижнего штампа. Уникальное совпадение в обоих документах вместе с общим текстом позволяет сохранить пару OLD/NEW даже при другом соотношении сторон.
- Повторяющиеся, противоречивые и отсутствующие обозначения сохраняют обычные проверки размеров и содержимого. Ссылки на другие чертежи вне штампа не используются как идентичность страницы.
- При несовместимом формате отчёт сохраняет оба исходных растра с пометкой
size_mismatchи подтверждённым обозначением. Изображения не растягиваются; физические зоны исключения и эффективный DPI сохраняют прежнюю семантику.
Проверки: Ruff, mypy, полный набор регрессий и тесты извлечения обозначений, неоднозначных совпадений и изменения формата бумаги.
Release v0.1.34
PDFCompare Local v0.1.34
Явное сравнение одной пары страниц в движке и MCP.
preview_pdf_comparisonиstart_pdf_comparisonпринимаютforce_single_pair=true. Каждый входной PDF должен содержать ровно одну страницу.- Выбранные страницы сравниваются между собой, без автоматического поиска соответствий. Это позволяет проверять выбранную пару даже при больших различиях между ревизиями.
- Физические зоны исключения, эффективный DPI, лимит мегапикселей и отмена сохраняют прежнее поведение. По умолчанию сопоставление остаётся автоматическим.
Проверки: Ruff, mypy, регрессионные тесты и отдельные проверки явной пары и отклонения многостраничных входов.
Release v0.1.33
PDFCompare Local v0.1.33
Обновление безопасности зависимостей.
- PyJWT обновлён до 2.15.1 в runtime и сборочном окружении.
- urllib3 обновлён до 2.8.0 в окружении проверки и сборки.
- Оба hash-lock обновлены. Проверка известных уязвимостей по-прежнему блокирует выпуск небезопасной сборки.
Дистрибутивы: EXE, portable ZIP, установщик и SHA256SUMS.txt.