release: LexPatrol 1.7.1
Обновления из GitHub (in-app)
- Поток обновления без electron-updater: проверка релизов через публичный GitHub API, сравнение версий, выбор установочного ассета.
- Модуль
src/main/updater/: загрузка с прогрессом и отменой, проверка размера и SHA256, установка под Windows (в т.ч. helper через PowerShell), файл сессии обновления, отложение (snooze), логupdater.log. - Интерфейс: баннер о доступном обновлении, модалка установки, хук
useInAppUpdateFlow; доработки настроек и моста IPC/preload под скачивание и запуск установщика.
Стабильность и безопасность (аудит)
- Строгая проверка URL перед
shell.openExternal(толькоhttp:/https:через разборURL). - Один экземпляр приложения:
requestSingleInstanceLockи обработка повторного запуска. - Предсказуемые ошибки при резервном копировании БД и прочие точечные правки по отчёту аудита; расширен typecheck на main-процесс при необходимости.
Оверлей и интерфейс
- Вынесены/зафиксированы константы раскладки оверлея (
overlay-layout-constants), правки оверлейного окна и связанных экранов (дашборд, государственный раздел, оверлей, настройки, оболочка приложения и навигация) в связке с горячими клавишами и подсказками.
Тесты и покрытие
- Vitest и @vitest/coverage-v8: два профиля — полный набор с порогами coverage и «критический» (
vitest.critical.config.ts) для CI. - Vitest 3 /
test.projects: отдельные проекты node (main, shared, parsers, services) и jsdom (renderer); без устаревшегоenvironmentMatchGlobs. В каждом проекте заданыresolve(алиас на stubelectron),pluginsиsetupFiles, чтобы стабильно работали stub и@testing-library/jest-dom. - Stub Electron для юнит-тестов: в т.ч. расширенный
globalShortcutиglobalShortcutTestHooks(сброс, подменаregister, учётunregister/unregisterAll). - Юнит-тесты updater: checker (semver, выбор ассета, фикстуры API), validator, downloader, installer (чистая логика + моки spawn), state, snooze, logger.
- Поиск и данные:
search-tokens,article-number, retrieval и теги на in-memory БД с миграциями; сиды при необходимости. - Парсеры и утилиты: article-import-filter, html-element-plain-text; константы оверлея; backup-restore / restore-сценарии.
- Горячие клавиши:
validateAccelerator,applyOverlayGlobalShortcutsна stub; чтение/сохранение хоткеев в БД, humanize для Windows. - IPC: вынесен
mergeAgentConfigв отдельный модуль с тестами на in-memory БД. - Renderer: smoke-тесты на
@testing-library/react(в т.ч.RouteEmptyState, формат хоткеев вlib).
CI и релиз
ci.yml: на PR и push в основные ветки — параллельно lint и test; тесты сnpm rebuild better-sqlite3; сначала критический coverage, затем полный; сборка Windows после успешных проверок; на тегv*— публикация GitHub Release с установщиками и.sha256.release-windows.yml: только ручной workflow_dispatch для сборки артефактов без публикации релиза (теги обрабатываются вci.yml).- После полного прогона тестов:
vitest-coverage-report-action— комментарий в PR с summary изcoverage/coverage-summary.json; в артефакт coverage добавленыcoverage-summary.jsonиcoverage-final.json(включаяcoverage/critical/, если файлы есть). - Краткий блок Coverage в summary job для ссылки на HTML-отчёт в артефакте.
Документация
- README: команды проверки (
verify, тесты, coverage), описание CI, опциональные секреты; актуализация под новый пайплайн и обновления.
Версия
- Версия приложения: 1.7.1.
Full Changelog: v1.7.0...v1.7.1