Журнал изменений
История версий и примечания к выпускам Wails v3
Условные обозначения:
- — macOS
- ⊞ — Windows
- 🐧 — Linux
/_– Все значимые изменения в этом проекте будут задокументированы в этом файле.
Формат основан на Keep a Changelog, а проект следует принципам семантического версионирования.
Added— новые возможности.Changed— изменения существующей функциональности.Deprecated— возможности, которые вскоре будут удалены.Removed— удалённые возможности.Fixed— исправления ошибок.Security— устранение уязвимостей.
_/
/_ * ПОЖАЛУЙСТА, НЕ ОБНОВЛЯЙТЕ ЭТОТ ФАЙЛ * Добавляйте обновления в v3/UNRELEASED_CHANGELOG.md Спасибо! _/
[Не выпущено]
v3.0.0-beta.21 — 2026-09-13
Добавлено
- Документация Wails v3 теперь предоставляется через M-Press в PR от @leaanthony
Исправлено
- Добавлен разбор JSON-значений slug из метаданных MPD для формирования журнала изменений в PR от @leaanthony
- Средство обновления очищает вспомогательные переменные окружения и повторно запускает исходный целевой файл после сбоев резервного копирования в PR от @cnmax
- Обработчик сигналов по умолчанию запускается во время App.Run в PR от @leaanthony
- Меню Windows корректно обрабатывает меню со значением nil, освобождает заменённые ресурсы и перерисовывает строку меню в PR от @taliesin-ai
- Восстановлена упаковка MSIX для новых проектов, использующих общую конфигурацию YAML, в PR от @leaanthony
- Исправлена ошибка загрузки сгенерированных привязок JavaScript и TypeScript, возникавшая, когда функции создания обобщённых моделей ссылались на вспомогательные объявления, расположенные ниже; также предотвращено переполнение стека при создании взаимозависимых обобщённых моделей (#6062)
v3.0.0-beta.20 — 2026-09-10
Изменено
- Ссылки на демонстрационный проект Clave обновлены и теперь ведут на текущий сайт и репозиторий — PR от @01xR4in
Исправлено
- Отменяются прерванные запросы ресурсов в Windows, включая запросы Worker, при этом обработчики keepalive сохраняются между переходами. На платформах Apple контексты нативных запросов передаются через обёртку приложения. (#5963, #5969)
- Записи журнала изменений сохраняются при конкурирующих отправках изменений благодаря повторным попыткам — PR от @leaanthony
- Исправлен сбой
go mod vendorс ошибкойpattern arm64/WebView2Loader.dll: no matching files foundна всех платформах: удалены встраивания, ссылавшиеся на двоичные файлы, которые никогда не поставлялись в составе модуля. Это исправляет #5782 и #5376 — PR от @Grantmartin2002
Удалено
- Удалена поддержка нативного загрузчика WebView2, заменённого загрузчиком на чистом Go. Удалены встроенные двоичные файлы
WebView2Loader.dllи зависимостьgithub.com/jchv/go-winloader. Тег сборкиnative_webview2loaderпо-прежнему принимается и больше не вызывает ошибку, но не влияет на сборки v3 — PR от @Grantmartin2002 - Из руководства по API macOS удалены неиспользуемые теги сборки и параметр FPS — PR от @leaanthony
v3.0.0-beta.19 — 2026-09-09
Добавлено
- Доступ к закрытым API macOS теперь предоставляется только при явном включении с помощью тегов сборки — см. документацию, документацию, документацию, документацию, документацию, документацию, документацию, документацию и документацию — PR от @leaanthony
Исправлено
- Запросы среды выполнения размером более 64 МиБ отклоняются с кодом HTTP 413 — PR от @leaanthony
Безопасность
- Усилена защита источников MCP и удалённого доступа с помощью аутентификации по токену — PR от @leaanthony
v3.0.0-beta.18 — 2026-09-08
Исправлено
- Устранена утечка памяти Calloc в Linux и Darwin за счёт использования получателей-указателей — PR от @4RH1T3CT0R7
v3.0.0-beta.17 — 2026-09-06
Исправлено
- Windows: ошибка или результат nil при вызове
GetRequestв обработчике WebResourceRequested больше не приводят к завершению процесса (черезlog.Fatalили панику при разыменовании nil). Вместо этого запрос отбрасывается, а событие записывается в журнал — PR от @midagedev
v3.0.0-beta.16 — 2026-08-29
Изменено
- Пароль для нотаризации запрашивается в новом окне терминала — PR от @leaanthony
Исправлено
- Типы щелчков по значку в области уведомлений macOS теперь обрабатываются правильно — PR от @ChewbaccaCookie
- Перед обновлением CI удаляет неиспользуемые репозитории apt от Microsoft — PR от @Grantmartin2002
v3.0.0-beta.15 — 2026-08-27
Исправлено
- Время ожидания встраивания WebView2 увеличено до 60 секунд — PR от @Grantmartin2002
v3.0.0-beta.14 — 2026-08-26
Исправлено
- Нажатия сочетаний Control с буквенными клавишами в macOS теперь именуются правильно — PR от @taliesin-ai
- Исправлены значки формата ICO в области уведомлений и добавлено следование теме панели задач Windows — PR от @nik9play
v3.0.0-beta.13 — 2026-08-25
Исправлено
- В macOS обработка задач главного потока продолжается во время работы модального цикла — PR от @leaanthony
- Операции с защищённым хранилищем на мобильных платформах теперь могут завершаться ошибкой и безопасно блокируют доступ при сбое — PR от @mortenolsrud
- Обработчики событий приложения запускаются, даже если не зарегистрировано ни одного слушателя — PR от @archy-rock3t-cloud
- Исправлены опечатки в комментариях и локализованной документации — PR от @haoku123
- Удалены предварительно скомпилированные двоичные файлы macOS, добавленные в репозиторий в каталоге
v3/examples— PR от @4RH1T3CT0R7
v3.0.0-beta.12 — 2026-08-21
Добавлено
- Добавлены окна уведомлений для области выреза экрана macOS, а также пример управления их жизненным циклом и телеметрией — см. документацию в PR от @leaanthony
- Добавлена поддержка окон NSPanel в macOS с новыми параметрами и нативной интеграцией — см. документацию в PR от @leaanthony
Исправлено
- Предотвращено зависание SQLite Prepare при параллельных вызовах в PR от @archy-rock3t-cloud
v3.0.0-beta.11 - 2026-08-20
Удалено
- Из документации удалён устаревший трекер реализации в PR от @leaanthony
v3.0.0-beta.10 - 2026-08-19
Исправлено
- Исправлена потеря аргументов запуска для пользовательских протоколов и ассоциаций файлов в хосте GTK4 для Linux в PR от @midagedev
- При проверке журнала изменений теперь корректно обрабатываются удалённые строки и исправления из того же источника в PR от @taliesin-ai
v3.0.0-beta.9 - 2026-08-16
Добавлено
- Добавлен защищённый MCP-сервер wails3 для управления проектами с помощью агентов в PR от @leaanthony
- Добавлена документация по моделям в привязках — см. документацию в PR от @taliesin-ai
- Добавлена поддержка установки через rpm-ostree в атомарных системах Linux в PR от @leaanthony
- Добавлены встроенное еженедельное создание и публикация графика истории звёзд — см. документацию, документацию, документацию, документацию, документацию, документацию, документацию, документацию, документацию и документацию в PR от @leaanthony
- Добавлен пакет mac только для Darwin, предназначенный для поиска ресурсов пакета приложения, — см. документацию в PR от @leaanthony
- Добавлены демонстрационная страница Condui и запись в указателе — см. документацию и документацию в PR от @mgueregath
- Добавлена демонстрационная страница Redis Viewer со снимками экрана и ссылкой на проект — см. документацию и документацию в PR от @redisviewer
Изменено
- Флаги приложения GTK для Linux изменены на GAPPLICATIONNON_UNIQUE в PR от @overlordtm
- Отсутствующие события окон теперь регистрируются на уровне отладки, а не предупреждения, в PR от @julianstorer
Исправлено
- Зарегистрированным сочетаниям клавиш macOS разрешено иметь приоритет над webview в PR от @julianstorer
- Исправлены неработающие ссылки на боковой панели документации в PR от @northes
- Контексты запросов ресурсов в macOS и iOS теперь отменяются, когда WebKit прерывает соответствующую задачу пользовательской схемы (#5963)
- Добавлена обработка сообщения WindowSetFullscreenButtonEnabled в PR от @archy-rock3t-cloud
- В шаблон preact-ts импортирован Fragment для устранения ошибки сборки в PR от @haoku123
- Предотвращён сбой устаревших приложений GTK3, выполняющих только сервисы, когда обнаружение экранов выполняется до появления активного окна или доступного дисплея (#5966)
- Запуски выпуска с явно указанной версией теперь могут продолжаться, даже если раздел невыпущенных изменений в журнале пуст (#5977)
Безопасность
- Файлы блокировок nanoid для веб-сайта обновлены до исправленной версии 3.3.18 для устранения уведомлений о проблемах безопасности в PR от @taliesin-ai
v3.0.0-beta.8 - 2026-08-12
Добавлено
- В автоматические записи журнала изменений добавлено создание URL-адресов документации в PR от @taliesin-ai
- Добавлены Streams: двунаправленные потоки байтов между Go и JavaScript с программной моделью WebSocket и без прослушивающего сокета. Объявите поток в Go с помощью
app.HandleStream(name, handler)и подключитесь к нему из фронтенда с помощьюStream(name), который возвращает объект структурыWebSocket. Данные Go→JS передаются через сервер ресурсов посредством одного удерживаемого опроса на окно, а JS→Go — обычным запросом POST; при этом порт TCP не привязывается, а данные не проходят черезevaluateJavaScript. В серверных сборках (-tags server) тот же обработчик вместо этого обслуживается через настоящий WebSocket, поэтому код приложения одинаков во всех сборках. Автор: @leaanthony - Запись журнала изменений о почтовом ящике перенесена в раздел невыпущенных изменений в PR от @leaanthony
Изменено
- Обновлены автоматическое создание боковой панели документации и определение типа автора блога в PR от @leaanthony
Исправлено
- При инициализации WebView2 теперь используются крайний срок и цикл обработки сообщений в PR от @leaanthony
- Тест файлов cookie WebView2 пропускается в CI, если он не включён явно, а его выполнение закрепляется за текущим потоком ОС в PR от @leaanthony
- Построители меню Windows восстанавливают идентификаторы команд для родительских элементов подменю в PR от @gilad-ch
- Официальный образ для кросс-компиляции приведён в соответствие с базовым уровнем поддержки GTK 4.14+ в Linux (#5928)
- Проект Xcode для iOS настроен так, чтобы сохранять унаследованные флаги компоновщика и добавлять -ObjC, в PR от @mortenolsrud
- Устранено чрезмерное создание и закрытие TCP-соединений в прокси ресурсов
wails3 devдля крупных фронтендов, которое могло исчерпать эфемерные порты хоста и привести к сбою несвязанных процессов с ошибкойEADDRNOTAVAIL - JavaScript событий для каждого окна теперь помещается в очередь для упорядоченной доставки и управления обратным давлением в PR от @leaanthony
Удалено
- Удалён конвейер выпуска исполняемых файлов для настольных систем: выпуски v3 теперь представлены только тегами, а CLI
wails3устанавливается с помощьюgo install. Удаленыrelease-v3.ymlи запускавший его этап ночной сборки в PR от @leaanthony
v3.0.0-beta.7 - 2026-08-11
Добавлено
- Добавлена настройка автовоспроизведения в macOS, позволяющая отключить требование пользовательского действия для воспроизведения мультимедиа, в PR от @Eyalm321
- Запись об изменении почтового ящика перенесена в раздел «Невыпущенные изменения» в PR от @leaanthony
Изменено
- Для более плавной анимации масштабирования в macOS теперь используются CADisplayLink или NSTimer в PR от @savely-krasovsky
Исправлено
- Проект Xcode для iOS настроен так, чтобы сохранять унаследованные флаги компоновщика и добавлять -ObjC, в PR от @mortenolsrud
- Устранено чрезмерное создание и закрытие TCP-соединений в прокси ресурсов
wails3 devдля крупных фронтендов, которое могло исчерпать эфемерные порты хоста и привести к сбоям несвязанных процессов с ошибкойEADDRNOTAVAIL - JavaScript-код событий каждого окна теперь ставится в очередь для упорядоченной отправки и обеспечения обратного давления в PR от @leaanthony
Добавлено
- Реализован универсальный асинхронный почтовый ящик FIFO для упорядоченной доставки событий в PR от @savely-krasovsky и @DevLumuz
v3.0.0-beta.6 — 2026-08-09
Добавлено
- Реализовано ограниченное по объёму хранилище на стороне хоста для слишком крупных событий и их упорядоченная доставка в JavaScript в PR от @leaanthony
- Реализовано подпрыгивание значка в Dock macOS при привлечении внимания к окну в PR от @julianstorer
Исправлено
- При сбросе буфера сервер ресурсов теперь сохраняет ошибки анализатора типа содержимого и незаписанные префиксы в PR от @leaanthony
- Предотвращено аварийное завершение приложений macOS при замене меню приложения из обратного вызова Wails
- Исправлены нечитаемые нативные меню в Windows 10 1809 / Windows Server 2019 (сборка 17763). Проверка версии разрешала использование экспортируемых функций uxtheme для тёмного режима только начиная со сборки 18334, поэтому на этих хостах не выполнялось включение тёмного режима на уровне приложения: фон меню отрисовывался тёмным, но Windows продолжала отображать текст меню в светлой теме, из-за чего тёмный текст оказывался на тёмном фоне. Функции с этими порядковыми номерами существуют начиная с 17763, поэтому порог проверки теперь соответствует этой сборке.
- Исправлен вызов
GetDeviceCapsвместоGetStockObjectвw32.GetStockObject, из-за которого для каждого стандартного объекта возвращалось 0. - Улучшены обработка ошибок и сообщения об ошибках при скачивании загрузчика WebView2 в PR от @jannskiee
v3.0.0-beta.5 — 2026-08-07
Исправлено
- Активация приложения в macOS теперь учитывает политику активации только для обычных приложений в PR от @julianstorer
- Добавлена защита от обращения к неинициализированным окнам GTK в сборках для Linux в PR от @julianstorer
- Для окон WebKit в Linux перед загрузкой URL теперь явно задаётся непрозрачный цвет фона в PR от @julianstorer
v3.0.0-beta.4 — 2026-08-05
Изменено
- Задачи сборки Android теперь по умолчанию используют arm64, а deploy-emulator выбирает архитектуру хоста, в PR от @mortenolsrud
Исправлено
- Состояние масштабирования окна macOS теперь сохраняется при перетаскивании, а объём анимации уменьшен в PR от @leaanthony
- Исправлена сборка Windows в серверном режиме: в ограничение сборки
webview_window_windows_nonclient.goдобавлено!server
v3.0.0-beta.3 — 2026-08-03
Добавлено
- В подробностях реализации задокументировано завершение бета-проверки этапа 10 в PR от @leaanthony
Исправлено
- В API тёмного режима Windows теперь передаётся дескриптор окна и проверяются аргументы в PR от @leaanthony
- Централизовано определение состояния кнопок строки заголовка для безрамочных окон macOS в PR от @taliesin-ai
- Предотвращено появление нечитаемого текста в нативных меню, когда приложение Windows запрашивает тёмный режим, а тема приложений Windows остаётся светлой. Теперь меню использует соответствующий светлый нативный фон, пока Windows не сможет отображать текст меню в тёмном режиме.
- Исправлены нечитаемые нативные меню в Windows 10 1809 / Windows Server 2019 (сборка 17763). Проверка версии разрешала использование экспортируемых функций uxtheme для тёмного режима только начиная со сборки 18334, поэтому на этих хостах не выполнялось включение тёмного режима на уровне приложения: фон меню отрисовывался тёмным, но Windows продолжала отображать текст меню в светлой теме, из-за чего тёмный текст оказывался на тёмном фоне. Функции с этими порядковыми номерами существуют начиная с 17763, поэтому порог проверки теперь соответствует этой сборке.
v3.0.0-beta.2 — 2026-08-02
Изменено
- v3 переведена из альфа-версии в бета-версию
- Задокументированы интеллектуальные значения по умолчанию для системного трея и автоматическое скрытие всплывающего меню; добавлены регрессионные тесты выбора обработчика щелчка (#5840).
- Средство обновления через GitHub теперь по умолчанию исключает ресурсы установщика Windows в PR от @leaanthony
- Добавлена поддержка скруглённых и прямых углов, а также углов с настраиваемым радиусом для безрамочных окон macOS в PR от @leaanthony
Исправлено
- Теперь сообщаются текущие размеры окон GTK4, а настроенная поверхность отправляет события изменения размера, разворачивания, сворачивания и изменения состояния полноэкранного режима (#5830).
- Исправлено аварийное завершение WebKit в Linux при отправке Blob или FormData в запросах fetch в PR от @taliesin-ai
- При отсутствии заголовков Blob/FormData прослойка fetch теперь передаёт undefined в PR от @leaanthony
v3.0.0-alpha2.122 — 2026-08-01
Добавлено
Изменено
- Добавлена поддержка скруглённых и прямых углов, а также углов с настраиваемым радиусом для безрамочных окон macOS в PR от @leaanthony
Исправлено
- При отсутствии заголовков Blob/FormData прослойка fetch теперь передаёт undefined в PR от @leaanthony
v3.0.0-alpha2.121 — 2026-07-31
Добавлено
- Добавлена поддержка упаковки в DMG для macOS с новыми параметрами и задачами сборки в PR от @leaanthony
Изменено
- Средство обновления через GitHub теперь по умолчанию исключает ресурсы установщика Windows в PR от @leaanthony
Исправлено
- Исправлен сбой WebKit в Linux при отправке Blob или FormData в запросах fetch в PR от @taliesin-ai
v3.0.0-alpha2.120 — 2026-07-31
Добавлено
- Реализованы действия разворачивания или сворачивания окна по двойному щелчку на строке заголовка в macOS в PR от @taliesin-ai
Изменено
- Руководство по сервису QR обновлено для использования NewServiceWithOptions; также добавлены отступы в PR от @jeongkyu
Исправлено
- Обеспечена отзывчивость WKWebView во время масштабирования в macOS в PR от @leaanthony
- Исправлены запросы размера окна GTK4 и отправка событий изменения размера, разворачивания, сворачивания и изменения полноэкранного состояния из настроенного
GdkSurface.
v3.0.0-alpha2.119 — 2026-07-27
Исправлено
- Документация на нескольких языках дополнена архитектурными диаграммами в PR от @taliesin-ai
v3.0.0-alpha2.118 — 2026-07-26
Добавлено
- Добавлены пути по умолчанию для входных и выходных файлов генерации значков в PR от @taliesin-ai
- Исходные модули точки входа добавлены в sideEffects файла package.json пакета среды выполнения в PR от @savely-krasovsky
- В руководство для участников добавлен раздел о лицензии и происхождении кода в PR от @taliesin-ai
Исправлено
- Применены ограниченные по области действия стили CSS для безрамочных окон GTK4, устраняющие скругление углов, в PR от @savely-krasovsky
- Добавлена корректная обработка ошибок определения положения курсора в Windows для всплывающих меню и перечисления экранов в PR от @wayneforrest
- Диалог открытия файла в macOS теперь правильно фильтрует расширения и проверяет допустимость файлов по суффиксу в PR от @phergul
- Инициализация тёмного режима в Windows защищена от вызовов nil API в PR от @roachadam
- Исправлена ошибка сборки средства обновления для 32-разрядной платформы: при передаче в
fmt.ErrorfнаGOARCH=386константаmaxArchiveTotalSize(2 ГиБ) переполняла платформенный типint. Теперь для неё явно указан типint64. - Исправлена паника из-за nil-указателя при запуске, когда окно использует тёмную строку заголовка (или системную тёмную тему) в сборках Windows, где не загружаются API тёмного режима uxtheme, например в Windows 10 1809 / Windows Server 2019 (сборка 17763). Вызовы
AllowDarkModeForWindowпри настройке темы окна теперь защищены от nil аналогично уже применяемой защите вw32.SetMenuTheme.
v3.0.0-alpha2.117 — 2026-07-08
Добавлено
- Реализована пользовательская логика hit-test для неклиентских областей в Windows в PR от @savely-krasovsky
Изменено
- Определение масштаба монитора в WebView2 настроено в зависимости от UseVisualHosting в PR от @wayneforrest
v3.0.0-alpha2.116 — 2026-07-07
Добавлено
- Документация FAQ обновлена с акцентом на возможности и рекомендации Wails v3 в PR от @taliesin-ai
v3.0.0-alpha2.115 — 2026-07-06
Исправлено
- Исправлена ошибка, из-за которой
Menu.Update()не перестраивал нативное меню в GTK4 Linux (#5659; независимо диагностирована и исправлена @puneetdixit200 в #5539) - Исправлен сбой при перечислении экранов macOS после изменения конфигурации дисплеев: строки идентификаторов и имён экранов теперь копируются, а количество фиксируется в снимке (#5565; проблема независимо диагностирована и исправлена @x-haose в #5584)
- Исправлен сбой в Windows, когда
WM_ERASEBKGNDотрисовывает сплошной фон во время перехода между свёрнутым и восстановленным состояниями, при которомGetClientRectвозвращает nil (о необходимости проверки сообщил @sinspired в #5636) - Исправлена ошибка, из-за которой ошибка привязок фронтенда всегда разбиралась как текст, — @mbaklor в #5690
- Исправлена ошибка сборки для Windows при использовании тега сборки
server, вызванная отсутствием в файлах графического интерфейса Windows ограничения сборки!server, которое уже присутствует в эквивалентных файлах macOS и Linux (#5680)
v3.0.0-alpha2.114 — 2026-07-05
Добавлено
- Реализованы протокол Update Manifest и поставщик конечной точки в PR от @taliesin-ai
Изменено
- Привязка
webview2включена в модуль v3 какv3/internal/webview2; отдельный модуль, его процессы ночных выпусков и синхронизации, а также манипуляции с версией go.mod удалены, поскольку v3 — его единственный потребитель, в PR от @taliesin-ai
Исправлено
- Исправления определения масштаба монитора в WebView2 и повторной синхронизации хоста при изменении DPI перенесены в раздел «Невыпущенные изменения» в PR от @taliesin-ai
- Обновлён маршалинг COM в WebView2 для параметров float64 и BOOL в PR от @wayneforrest
- Предотвращены паника и разыменование nil при обновлении и уничтожении значка в системном трее Windows в PR от @wayneforrest
- Исправлена ошибка, из-за которой скрытые окна в Windows не скрывались повторно должным образом, в PR от @wayneforrest
- Видимость контроллера WebView2 синхронизирована со сворачиванием, разворачиванием и восстановлением окна в PR от @wayneforrest
Исправлено
- Повторно включено определение масштаба монитора в WebView2, а повторная синхронизация хоста теперь выполняется только при изменении DPI — PR от @taliesin-ai на основе исправления, проверенного @randalmurphal, с подтверждением первопричины от @eleclin и тестированием на оборудовании от @qq540491950
v3.0.0-alpha2.113 — 2026-07-04
Добавлено
- Добавлено предупреждение при сборке релизного AAB без заданного
ANDROID_KEYSTORE_FILE(Google Play отклоняет пакеты с отладочной подписью), а также документация по упаковке и подписыванию App Bundle в PR от @taliesin-ai - Добавлена документация Why Wails на нескольких языках в PR от @taliesin-ai
- Добавлена поддержка преобразования Go time.Time в JS Date или строку в привязках в PR от @fbbdev
- Добавлены задачи для упаковки Android App Bundle (AAB) (
bundle,bundle:fat,assemble:aab,assemble:aab:release) для отправки в Play Store; задачи для APK сохранены для локального тестирования и тестирования в эмуляторе — PR от @mortenolsrud (исправляет #5726) - Добавлены задачи для физических устройств Android и возобновление запроса разрешений на использование камеры и геолокации в PR от @taliesin-ai
Изменено
- Версия
webview2повышена до v1.0.28 (примечания к выпуску). - В шаблоне Android версия
compileSdk/targetSdkповышена с 34 до 35, как того требует Google Play для публикации новых приложений, в PR от @taliesin-ai
Исправлено
- Исправлены встроенные маски аватаров в sponsorkit в PR от @leaanthony
- Исправлен выбор неверного образа системы или версии cmdline-tools при автоматическом создании Android AVD из-за лексикографической сортировки версий в PR от @taliesin-ai
- Исправлена устаревшая версия Android NDK, предлагаемая мастером настройки (теперь 26.3.11579264 в соответствии с документированным требованием), в PR от @taliesin-ai
- Обновлена французская документация по SvelteKit и параметрам в PR от @leaanthony
- Исправлен SIGSEGV при перечислении экранов в macOS во время изменения конфигурации дисплеев в PR от @flofreud
v3.0.0-alpha2.112 — 2026-07-03
Добавлено
- Добавлен написанный на Go генератор SVG со списком участников проекта и обновлены страницы благодарностей в документации и на сайте в PR от @taliesin-ai
- Добавлена поддержка преобразования Go time.Time в JS Date или строку в привязках в PR от @fbbdev
Изменено
- Конвейер создания изображений спонсоров на базе Node заменён генератором на Go в PR от @taliesin-ai
Исправлено
- Исправлен скрипт установки зависимостей ресурсов сборки Android в PR от @taliesin-ai
- В
ValidateAndSanitizeURLзапрещён управляющий символ U+0085 (NEXT LINE), что обеспечивает полную проверку пробельных символов валидатором URL - Добавлен повторный расчёт рамки DWM при изменении DPI для окон без системной рамки в PR от @leaanthony
- Исправлена ошибка определения зоны перетаскивания DnD в Windows при масштабировании, отличном от 100%, в PR от @yulesxoxo
- Добавлено явное управление памятью Objective-C для объектов Cocoa в диалоговых окнах, меню, системном трее и уведомлениях Darwin в PR от @taliesin-ai
- Исправлены ошибки бэкенда Linux CGO и проблемы с системным треем в PR от @taliesin-ai
v3.0.0-alpha2.111 — 2026-07-01
Добавлено
- HappyTools добавлен в витрину проектов сообщества в PR от @Aliuyanfeng
- Добавлены поддержка индонезийской локали и подробная документация в PR от @triadmoko
- В WindowsWindow добавлен параметр DisableMenu в PR от @leaanthony
Изменено
- Шаблон Taskfile и CLI обновлены для запуска задач сборки и упаковки с GOOS и ARCH в PR от @leaanthony
Исправлено
- Исправлена проблема с объединением окон macOS во вкладки в PR от @taliesin-ai
Удалено
- Удалены немецкие переводы файлов MDX из разделов об участии в проекте, возможностях и руководствах в PR от @taliesin-ai
v3.0.0-alpha2.110 — 2026-06-30
Добавлено
- Реализованы обычная и принудительная перезагрузка WebView в macOS, а также восстановление после завершения процесса WebContent в PR от @wayneforrest
- Добавлена подробная документация на немецком языке по участию в проекте, возможностям и руководствам в PR от @leaanthony
- Уведомления дополнены звуком, вложениями, планированием и API для их обновления в PR от @popaprozac
Исправлено
- Добавлен повторный расчёт рамки DWM при изменении DPI для окон без системной рамки в PR от @leaanthony
- Исправлена ошибка определения зоны перетаскивания DnD в Windows при масштабировании, отличном от 100%, в PR от @yulesxoxo
v3.0.0-alpha2.109 — 2026-06-29
Добавлено
- В документацию EventsEmit добавлены примеры кода в PR от @iamhabbeboy
- Добавлен параметр визуального хостинга WebView2 в Windows в PR от @MerIijn
- Klustr добавлен в документацию витрины проектов сообщества в PR от @SametKUM
- Kira добавлен в витрину проектов сообщества вместе с новыми страницами и записью в журнале изменений в PR от @thiennguyen93
- В руководство по сервису MCP добавлен раздел обратной связи в PR от @taliesin-ai
Изменено
- В серверном режиме теперь предусмотрена полноценная производственная сборка, согласованная с задачами сборки настольного приложения (#5693). По умолчанию
task build:serverсоздаёт производственный исполняемый файл (-tags server,production,-trimpath, с удалёнными отладочными символами) и принимает параметрыDEV=true(сервер разработки),OBFUSCATED=true(garble) иEXTRA_TAGS.task run:serverзапускает сервер разработки.Dockerfile.server/task build:dockerсначала собирают производственный сервер (-tags server,production) и производственную версию фронтенда; по умолчанию образ содержит статическую сборку на чистом Go на базе distroless/static, аCGO_ENABLED,GO_IMAGEиRUNTIME_IMAGEдоступны как переопределяемые аргументы сборки для приложений с CGO.
Исправлено
- Предотвращён сбой при закрытии окна с ожидающими асинхронными вызовами в PR от @leaanthony
- Предотвращена активация окна при открытии скрытых приложений в Windows в PR от @leaanthony
- Обеспечено выполнение обработки метаданных запросов WebKit, завершения ответов и потоков тела в главном потоке GTK в PR от @taliesin-ai
- Исправлена ошибка, из-за которой
Menu.Update()не пересобирал нативное меню в GTK4 для Linux (#5659; независимо диагностировано и исправлено @puneetdixit200 в #5539) - Исправлен сбой при перечислении экранов macOS после изменения конфигурации дисплеев: строки идентификаторов и имён экранов теперь копируются, а количество фиксируется в снимке состояния (#5565; независимо диагностировано и исправлено @x-haose в #5584)
- Исправлена ошибка, из-за которой содержимое WebView2 сжималось, а затем исчезало после перетаскивания окна между мониторами с разным DPI в Windows: в обработчике
WM_DPICHANGEDтеперь повторно задаются границы контроллера, аналогично повторной синхронизации DPI при восстановлении свёрнутого окна (#5677)
v3.0.0-alpha2.108 - 2026-06-28
Добавлено
- Добавлены глобальные (общесистемные) сочетания клавиш через
app.GlobalShortcut(Register,Unregister,UnregisterAll,IsRegistered,GetAll). Сочетания срабатывают, даже когда приложение не находится в фокусе. Для каждой платформы реализована нативная поддержка без сторонних зависимостей: горячие клавиши Carbon в macOS,RegisterHotKeyв Windows,XGrabKeyв X11 и интерфейс глобальных сочетаний клавиш XDG Desktop Portal в Wayland. - Добавлен встроенный сервер MCP — сервер Model Context Protocol, который запускается автоматически, если приложение собрано с тегом
mcp. Он позволяет LLM-агентам тестировать работающие приложения Wails и управлять ими: управлять окнами, инспектировать DOM, выполнять JavaScript, вызывать привязанные методы, работать с событиями и имитировать ввод с помощью мыши и клавиатуры, отображая анимированный экранный курсор. Пользовательский код не требуется: тегmcpавтоматически добавляется командойwails3 build/wails3 dev, когда заданоWAILS_MCP=1. Настройка полностью выполняется с помощью переменных окружения (WAILS_MCP_HOST,WAILS_MCP_PORT,WAILS_MCP_TIMEOUT,WAILS_MCP_HIDE_CURSOR).
Исправлено
- Исправлена ошибка, из-за которой
Menu.Update()не пересобирал нативное меню в GTK4 для Linux (#5659; независимо диагностировано и исправлено @puneetdixit200 в #5539) - Исправлен сбой при перечислении экранов macOS после изменения конфигурации дисплеев: строки идентификаторов и имён экранов теперь копируются, а количество фиксируется в снимке состояния (#5565; независимо диагностировано и исправлено @x-haose в #5584)
v3.0.0-alpha2.107 - 2026-06-27
Добавлено
- Добавлена экспериментальная документация по Wake с навигацией на боковой панели в PR от @leaanthony
v3.0.0-alpha2.106 - 2026-06-24
Изменено
-
Версия
webview2повышена до v1.0.27.- ci(webview2): исправлена сборка выпуска (кросс-компиляция для Windows и полный go.sum) (#5671)\
Полный список различий: https://github.com/wailsapp/wails/compare/webview2/v1.0.26...webview2/v1.0.27
-
Команда go vet удалена из кросс-компиляции в процессе выпуска webview2 в PR от @taliesin-ai
-
Модель OpenRouter для автоматического создания журнала изменений обновлена до google/gemini-2.5-flash-lite в PR от @taliesin-ai
-
Версия
webview2повышена до v1.0.26.
Исправления
- Восстановление после временных ошибок COM во время выполнения вместо завершения работы (#5658, #5580). Ранее
Chromium.errorCallbackвызывалos.Exit(1)при любой ошибке COM, поэтому устранимый кратковременный сбой после запуска завершал работу всего приложения. Пути выполнения (Resize/GetClientRect,Navigate/NavigateToString,Init,MessageReceived,PutZoomFactor,OpenDevToolsWindow) теперь записывают ошибку в журнал и восстанавливают работу. В частности, некорректное веб-сообщение или веб-сообщение из недоверенного источника вMessageReceivedтеперь отбрасывается, а не завершает процесс. Это устраняет класс сбоев при перемещении окна между мониторами с разным DPI (#5544, #5650). Ошибки на путях создания среды и контроллера по-прежнему являются фатальными.\
Полный список различий: https://github.com/wailsapp/wails/compare/webview2/v1.0.25...webview2/v1.0.26
Исправлено
- Исправлен процесс release-webview2 для корректной обработки файлов go.sum в PR от @taliesin-ai
- Исправлено обновление меню GTK4 в Linux: нативное меню теперь очищается и пересобирается в PR от @taliesin-ai
v3.0.0-alpha2.105 - 2026-06-21
Добавлено
- Добавлено
application.Systemдля определения платформы во время выполнения из общего кода:System.IsMobile()(iOS/Android),System.IsDesktop()(macOS/Windows/Linux),System.IsServer()(тег сборкиserver) иSystem.IsPlatform(application.PlatformMacOS|PlatformWindows|PlatformLinux|PlatformIOS|PlatformAndroid|PlatformServer)для непосредственной проверки одной целевой платформы. Код компилируется для каждой целевой платформы, поэтому ветвление возможно без тегов сборки. Соответствующие вспомогательные функции фронтенда (System.IsMobile/IsDesktop/IsIOS/IsAndroid/...) доступны в@wailsio/runtime - Добавлено руководство «Использование других фронтенд-фреймворков», показывающее, как поместить собственный проект Vite в
frontend/(рассматриваются Solid, Preact, Lit, SvelteKit, Qwik, Angular и другие) - Мастер
wails3 setupтеперь проверяет инструментарий для мобильных платформ (iOS/Android): Xcode и среду выполнения iOS Simulator, JDK, Android SDK/NDK и эмулятор. Там, где это применимо, доступны установка одним щелчком и готовые к копированию исправления конфигурации оболочки - Создаваемые проекты включают
frontend/.npmrc, где задаётсяminimum-release-ageдлительностью 7 дней, чтобы снизить риск, связанный с недавно опубликованными (и потенциально скомпрометированными) пакетами (учитывается pnpm и bun; npm без каких-либо последствий игнорирует эту настройку)
Изменено
- Все встроенные начальные шаблоны получили новый дизайн главного блока с неоновыми горами (для веба, iOS и Android)
- Теперь TypeScript используется по умолчанию для начальных шаблонов и занимает имя шаблона без уточняющего суффикса.
wails3 init(без-t) создаёт каркас проекта TypeScript;-t vanilla,-t react,-t vueи-t svelteиспользуют TypeScript, а их варианты на JavaScript доступны как-t vanilla-js,-t react-js,-t vue-jsи-t svelte-js. Встроенные шаблоны указывают свой язык с помощьюtypescript:вtemplate.yaml; шаблоны сообщества с суффиксом-tsпродолжают работать как резервный вариант - Мастер
wails3 setupполучил новый дизайн в неоновой теме «цифровой Wails» (эффект матового стекла на фоне гор)
Исправлено
- Исправлен сбой в Windows при восстановлении приложения, которое было свёрнуто достаточно долго, чтобы WebView2 приостановил работу или перезапустил процесс рендеринга/GPU. Повторная синхронизация DPI при сворачивании и восстановлении (#5544) теперь обращается к контроллеру WebView2 только при фактическом изменении DPI окна, что позволяет избежать фатальных вызовов COM к приостановленному контроллеру в обычном случае восстановления с прежним DPI (#5605)
- Исправлены повторяющиеся нативные сбои
SIGABRT/SIGSEGV(обычно внутриg_object_unrefво время основного цикла GTK) в длительно работающих приложениях Linux при частой загрузке ресурсов и медиафайлов. Сервер ресурсов завершал обработкуWebKitURISchemeRequestиз рабочих горутин, вызывая не потокобезопасные функции WebKit2GTK вне главного потока GTK; теперь завершение (webkit_uri_scheme_request_finish_with_response/finish_error) выполняется в главном потоке. Это завершает частичное исправление из #5566. Затронуты сборки как с GTK3, так и с GTK4/WebKitGTK 6.0 (#5631, #5557) - Исправлена периодическая ошибка
fatal error: invalid pointer found on stackвsetupSignalHandlersв Linux/GTK3. Идентификаторы окон, передаваемые какuser_dataсигнала, хранились в локальной переменной Go типаunsafe.Pointer, поэтому сборщик мусора аварийно завершал работу, когда при копировании стека сканировал это значение, не являющееся указателем. Теперь на стороне Go идентификатор сохраняется как целое число (uintptr_t): в устаревший код GTK3 перенесено то же исправление, которое в #4958 было применено к коду GTK4 (там функции сигналов C переведены наuintptr_tдля устранения ошибок-race/checkptr) (#5631)
Удалено
- Удалены стартовые шаблоны
react-swc,preact,lit,solid,qwikиsveltekit(включая их варианты-ts). Теперь поддерживаемый встроенный набор включаетvanilla,react,vueиsvelte— по умолчанию каждый использует TypeScript, также доступны варианты JavaScript-js. Любой другой фреймворк по-прежнему можно использовать, подключив собственный фронтенд или пользовательский шаблон
v3.0.0-alpha2.104 — 2026-06-18
Исправлено
- Исправлен сбой iOS (SIGABRT), возникавший, когда метод привязанного сервиса Go возвращал пустую строку. Обработчик ответа с ресурсом в iOS проверял указатель на тело с помощью
buf != nilвместо проверки его длины, поэтому тело нулевой длины вызывало панику в&buf[0]; теперь проверяется длина, как и в обработчиках для настольных платформ
v3.0.0-alpha2.103 — 2026-06-15
Изменено
- Нативные возможности iOS и Android перенесены в менеджеры платформ: теперь вызывайте их через
application.IOS.*иapplication.Android.*(например,application.IOS.Haptic("medium"),application.Android.Share(payload)) вместо прежних свободных функцийapplication.IOS*/application.Android*(#5602) - Переименованы события мобильного моста: кроссплатформенные события теперь используют префикс
common:*(например,common:haptic,common:location), а события только для определённой платформы —ios:*/android:*(например,ios:backgroundTask,android:foregroundService); префиксnative:*больше не используется (#5602)
v3.0.0-alpha.102 — 2026-06-14
Добавлено
- Добавлен экспериментальный мастер
wails3 setupдля интерактивной настройки проекта и проверки зависимостей - В
wails3 doctorдобавлен флаг--jsonдля вывода в машиночитаемом формате - В команду
wails3 doctorдобавлен раздел со статусом подписывания
Исправлено
- Исправлено обнаружение npm в Linux: теперь помимо менеджера пакетов проверяется PATH
v3.0.0-alpha.101 — 2026-06-13
Добавлено
- iOS: нативные диалоговые окна сообщений (UIAlertController) и диалоговые окна открытия файла, файлов и каталога (UIDocumentPickerViewController); диалоговые окна сохранения возвращают явную ошибку
- iOS: поддержка буфера обмена через UIPasteboard
- iOS: реальные параметры экрана через UIScreen (точки, пиксели, масштаб и рабочая область с учётом безопасной зоны)
- iOS: сборки для устройств (
IOS_PLATFORM=device), поддержка идентификатора для подписывания кода, профиля подготовки и прав доступа, упаковка.ipaиdeploy-deviceчерез devicectl - iOS: настраиваемая минимальная версия iOS (
ios.minIOSVersionв build/config.yml) - iOS:
wails3 doctorсообщает о доступности Xcode и iOS SDK в macOS - iOS: системные события — события батареи, сети, темы, блокировки экрана и нехватки памяти предоставляются как события приложения
events.IOS.*и не зависящие от платформыevents.Common.* - iOS: нативный мост мобильных возможностей (экспортируемый
application.IOS*) — меню «Поделиться», открытие URL, предотвращение перехода в спящий режим, фонарик, отступы безопасной зоны, яркость, сведения о приложении, блокировка ориентации, строка состояния, биометрия (Face ID/Touch ID), локальные уведомления и защищённое хранилище Keychain - iOS: датчики и аппаратные возможности — тактильная обратная связь, однократное определение геопозиции, акселерометр, датчик приближения, синтез речи, сведения о хранилище, состояние питания и батареи, состояние сети, отступы для клавиатуры и обнаружение захвата экрана
- iOS: документация (IOS.md и руководство на сайте документации)
- Android: нативные диалоговые окна сообщений (AlertDialog) и диалоговые окна открытия файла и файлов (Storage Access Framework, файлы импортируются в виде копий в кэше); диалоговые окна открытия каталога и сохранения возвращают явную ошибку
- Android: поддержка буфера обмена через ClipboardManager
- Android: реальные параметры экрана через WindowMetrics/DisplayMetrics (dp, пиксели, масштаб и рабочая область с учётом системных панелей)
- Android: методы среды выполнения для тактильной обратной связи (
Android.Haptics.Vibrate), сведений об устройстве (Android.Device.Info) и всплывающих уведомлений toast (Android.Toast.Show) - Android: типизированные события жизненного цикла (
events.Android.*, создаваемые из events.txt), при этомActivityCreatedсопоставляется сCommon.ApplicationStarted - Android: конвейер сборки создаёт устанавливаемые отладочные и релизные APK (
android:run,android:package,android:package:fat); по умолчанию релиз подписывается отладочным хранилищем ключей, а настоящее хранилище ключей можно указать через переменные средыANDROID_KEYSTORE_* - Android:
wails3 doctorсообщает об Android SDK, NDK и JDK - Android: системные события — события батареи, сети, темы, блокировки экрана и нехватки памяти предоставляются как события приложения
events.Android.*и не зависящие от платформыevents.Common.* - Android: нативный мост мобильных возможностей (экспортируемый
application.Android*) — общий доступ, открытие URL, предотвращение перехода в спящий режим, фонарик, отступы безопасной зоны, яркость, сведения о приложении, блокировка ориентации, строка состояния, биометрия (BiometricPrompt), локальные уведомления и защищённое хранилище EncryptedSharedPreferences - Android: датчики и аппаратные возможности — тактильная обратная связь, однократное определение геопозиции, акселерометр, датчик приближения, синтез речи, сведения о хранилище, состояние питания и батареи, состояние сети, отступы для клавиатуры и блокировка захвата экрана с помощью FLAG_SECURE
- Android: документация (ANDROID.md и руководство на сайте документации)
- Пример: в демонстрационном приложении
mobileдобавлены вкладки «Мобильные устройства» и «Оборудование», показывающие работу моста нативных возможностей в iOS и Android (вкладки в форме пилюль переносятся на несколько строк) - Мобильные платформы: экономия заряда батареи — акселерометр, датчик приближения, фонарик и периодические часы в примере приостанавливаются, когда приложение переходит в фоновый режим, и возобновляют работу после возвращения (Android сохраняет процесс работающим в фоне, а состояние фонарика в iOS сохраняется на уровне оборудования); получатели системных событий Android регистрируются только тогда, когда приложение находится на переднем плане
- iOS: съёмка камерой —
application.IOSCapturePhoto/IOSCaptureVideo(UIImagePickerController → событиеnative:captureс миниатюрой в формате base64) - iOS: фоновое выполнение —
application.IOSBeginBackgroundTask/IOSEndBackgroundTask(ограниченный интервал времени для фоновой задачи UIApplication) и настраиваемый параметрios.backgroundModes(build/config.yml), который подставляетUIBackgroundModesв создаваемый файл Info.plist - Android: съёмка камерой —
application.AndroidCapturePhoto/AndroidCaptureVideo(системная камера через FileProvider → событиеnative:capture) - Android: служба переднего плана —
application.AndroidStartForegroundService/AndroidStopForegroundService(WailsForegroundServiceс постоянным уведомлением поддерживает процесс активным для длительной работы в фоновом режиме) - Пример: вкладка «Камера», демонстрирующая съёмку фото и видео, а также фоновое выполнение (служба переднего плана в Android, ограниченный интервал времени для фоновой задачи в iOS)
Исправлено
- Исправлен постоянный сбой
getUserMediaс ошибкойNotAllowedErrorв Linux: WebKitGTK отклоняет запросы разрешений, если их никто не обрабатывает, а сигналpermission-requestне был подключён. Теперь доступ к камере и микрофону обрабатывается с помощью новой кроссплатформенной картыWebviewWindowOptions.Permissions(map[PermissionType]Permission), которая учитывается как в Linux (WebKitGTK), так и в Windows (WebView2). В Linux, где нет нативного запроса разрешения, доступ к камере и микрофону по умолчанию разрешён (что восстанавливаетgetUserMedia), но его можно отключить с помощьюPermissionDeny(#5552) - iOS:
GOOS=iosснова компилируется (экспортированevents.IOS, добавлены заглушки имён методов для мобильных платформ); также теперь компилируются сборки с тегом production (исправлены теги сборки в pkg/application и нескольких сервисах) - iOS: события Go→JS и ExecJS теперь работают — страница больше не загружается дважды при запуске, а рукопожатие
wails:runtime:readyбольше не может быть потеряно - iOS:
ApplicationDidFinishLaunching/ApplicationStartedбольше не вступают в состояние гонки с запуском приложения; удалена фиксированная задержка запуска длительностью 2 с - iOS: устранена утечка C-строки при каждом выполнении JavaScript из Go
- iOS:
hasListenersтеперь отражает фактическую регистрацию слушателей - iOS: отладочное журналирование фреймворка исключается при компиляции production-сборок
- Android:
GOOS=androidснова компилируется — определёнevents.Android, удалён выходящий за границы массив слушателейevents_android.go, добавлена заглушка имени метода для мобильных платформ, а файлы для настольной версии Linux (linux_cgo.*,events_linux.*,environment_linux.go) больше не попадают в сборки Android - Android: привязки JS→Go теперь работают — WebView не может передавать тела POST-запросов
fetch()вshouldInterceptRequest, поэтому вызовы среды выполнения направляются через транспорт JavascriptInterface (nativeHandleRuntimeCall), а не завершаются аварийно из-за тела запроса, равного nil - Android: вызовы среды выполнения
Screens.*возвращают реальные данные — теперь ScreenManager заполняется при запуске (ранее он вообще не был подключён, поэтомуGetAllвозвращал nil) - Android: отладочное журналирование фреймворка исключается при компиляции production-сборок, а в отладочных сборках направляется в logcat с тегом
Wails - Android: полноценный реестр
hasListeners, обработка ссылок и исключений JNI, а также жизненный цикл страницы с однократной загрузкой (без двойной навигации) - Исправлен сбой
wails3 generate bindingsс ошибкой «Access is denied» в Windows при запущенном сервере разработки Vite: теперь созданные файлы синхронизируются с выходным каталогом, а не переименовываются поверх него (#5515) - Исправлен периодический критический сбой в macOS при чтении сведений об экране после изменения конфигурации дисплеев: идентификатор и имя экрана хранили указатели на автоматически освобождаемые буферы
UTF8String, которые могли быть освобождены до их копирования в Go (use-after-free). Теперь для строк вызываетсяstrdup, а после преобразования они освобождаются; перечисление экранов выполняется в явном пуле автоматического освобождения, поэтому при вызове из горутин Go утечек больше нет (#5556) - Исправлен периодический SIGSEGV в Linux при закрытии
WebKitURISchemeRequestсервером ресурсов: финальныйg_object_unrefвыполнялся в горутине сервера ресурсов, из-за чего финализация GObject WebKit происходила вне главного потока GTK. Теперь операция unref передаётся в главный контекст GTK черезg_main_context_invoke(#5557)
v3.0.0-alpha.100 — 2026-06-13
Добавлено
- В
MacWebviewPreferencesдобавлены дополнительные параметры конфигурации WKWebView:EnableAutoplayWithoutUserAction,AllowsAirPlayForMediaPlayback,AllowsMagnification,JavaScriptCanOpenWindowsAutomatically,MinimumFontSizeиApplicationNameForUserAgent(#5549)
Исправлено
- Исправлен сбой
wails3 generate bindingsс ошибкой «Access is denied» в Windows при запущенном сервере разработки Vite: теперь созданные файлы синхронизируются с выходным каталогом, а не переименовываются поверх него (#5561) - Исправлено отсутствие событий JS при изменении размера безрамочных окон в Linux; исправлено определение края полосы прокрутки для безрамочных окон (#5368)
- Исправлен сбой средства обновления в Windows с ошибкой «invalid cross-device link», возникавший, когда временный каталог находился на другом томе, нежели каталог установки (#5560)
v3.0.0-alpha.99 — 2026-06-10
Исправлено
- Исправлен сбой
wails3 generate bindingsс ошибкой «Access is denied» в Windows при запущенном сервере разработки Vite: теперь созданные файлы синхронизируются с выходным каталогом, а не переименовываются поверх него (#5515)
v3.0.0-alpha.98 — 2026-06-03
Исправлено
- Устранено зависание пользовательского интерфейса WebKit в Linux в режиме ожидания (например, при открытом инспекторе):
SA_ONSTACKбольше не устанавливается принудительно дляSIGUSR1, поскольку это нарушало синхронизацию потока сборщика мусора JavaScriptCore (#5527)
v3.0.0-alpha.97 — 2026-05-31
Добавлено
- Добавлена страница отладки и работа с
runtime/trace
Изменено
- Удалены некоторые ненужные импорты
_ "embed", что позволило немного упорядочить код
Исправлено
- Исправлено несоблюдение ограничений минимальной ширины и высоты после выхода окна из развёрнутого состояния в Windows (#4593)
- Исправлено прохождение щелчков мыши сквозь окно в полноэкранном режиме при использовании параметров окна Frameless + Transparent (#4408)
v3.0.0-alpha.96 — 2026-05-25
Добавлено
- Добавлена поддержка обфускации с помощью Garble (#4563): стабильные идентификаторы методов привязок, интеграция со сборкой и Taskfile (
build --obfuscated --garbleargs,generate bindings -obfuscated), а также теги структур JSON для всех данных, доступных среде выполнения (EnvironmentInfo,OSInfo,Screen,Rect,Point,Size,Capabilities), благодаря чему формат обмена сохраняется при переименовании экспортируемых полей средствами Garble.
v3.0.0-alpha.95 — 2026-05-20
Добавлено
- Добавлена отсутствовавшая страница о структуре проекта
Изменено
- Документация: несколько диаграмм на странице архитектуры заменены диаграммами последовательности для более наглядного отображения
- Документация: добавлено примечание об установке D2 как необходимого условия для запуска
Исправлено
- Исправлена работа
wails3 generate appimageсо стеком GTK4 по умолчанию: теперь упаковщик определяет стек GTK по исполняемому файлу до поиска файлов среды выполнения, поэтому для сборок GTK4 он выбираетlibwebkitgtkinjectedbundle.so(вwebkitgtk-6.0/), а для сборок-tags gtk3—libwebkit2gtkinjectedbundle.so(вwebkit2gtk-4.1/). Проверка.relr.dynтакже учитываетlibgtk-4.so.1, поэтому удаление отладочной информации корректно отключается в современных наборах инструментов независимо от стека. (#5475) - Исправлен сбой
wails3 generate appimageпри вызове с относительным-builddir: теперь упаковщик заранее преобразует-binary,-icon,-desktopfile,-builddirи-outputdirв абсолютные пути, чтобы выполняемый в середине процессаs.CDне нарушал работу горутины загрузки AppRun и проверкиlddпосле копирования. - Исправлена ошибка, из-за которой
wails3 generate appimageне удавалось переместить итоговый AppImage в-outputdir, если полеName=desktop-файла не совпадало с базовым именем исполняемого файла: теперь упаковщик через переменную средыOUTPUTпредписывает плагину appimage из linuxdeploy записывать AppImage в<binary>-<arch>.AppImage, а не использовать имя, полученное из desktop-файла. - Исправлена ошибка, из-за которой
events.Common.ApplicationStarted,Common.ThemeChanged,Common.SystemWillSleepиCommon.SystemDidWakeне срабатывали в Linux после того, как стек GTK4 + WebKitGTK 6.0 стал использоваться по умолчанию в alpha.93. Новый используемый по умолчаниюapplication_linux.gorun()не вызывалsetupCommonEvents()(который перенаправляет событияLinux.*в соответствующие событияCommon.*) иmonitorPowerEvents(). Теперь вспомогательный компонент отслеживания питания через DBus используется совместно путями сборки GTK3 и GTK4 посредствомapplication_linux_dbus.go. (#5474)
v3.0.0-alpha.94 — 2026-05-19
Исправлено
- Исправлена ошибка, из-за которой
events.Common.ApplicationStarted,Common.ThemeChanged,Common.SystemWillSleepиCommon.SystemDidWakeне срабатывали в Linux после того, как стек GTK4 + WebKitGTK 6.0 стал использоваться по умолчанию в alpha.93. Новый используемый по умолчаниюapplication_linux.gorun()не вызывалsetupCommonEvents()(который перенаправляет событияLinux.*в соответствующие событияCommon.*) иmonitorPowerEvents(). Теперь вспомогательный компонент отслеживания питания через DBus используется совместно путями сборки GTK3 и GTK4 посредствомapplication_linux_dbus.go. (#5474)
v3.0.0-alpha.93 — 2026-05-17
Добавлено
- В вывод
wails3 doctorв Linux добавленXDG_SESSION_TYPE, автор — @leaanthony
Исправлено
- Исправлен сбой меню окна в Wayland, вызванный обращением appmenu-gtk-module к окну, нативные ресурсы которого ещё не созданы (#4769), автор — @leaanthony
- Исправлен сбой приложения GTK, если имя приложения содержит недопустимые символы (пробелы, круглые скобки и т. п.), автор — @leaanthony
- Исправлена ошибка «недостаточно памяти» при инициализации перетаскивания в Windows (#4701), автор — @overlordtm
- Устранено состояние гонки в хранилище обратных вызовов основного потока, где для удаления из map ошибочно использовалась RLock (Linux, macOS, iOS) (#4424), автор — @leaanthony
- Исправлена обработка переменных при передаче задачам аргументов командной строки. Теперь переменные CLI, заданные парами KEY=VALUE, корректно инициализируются и передаются на всех этапах выполнения задачи.
- Устранён конфликт NSWindowZoomButton в macOS: теперь
MaximiseButtonStateиFullscreenButtonStateприменяют более ограничивающее состояние как при запуске, так и во время выполнения; ни один из сеттеров больше не может незаметно переопределить другой (#5319) - Исправлена группа ранее существовавших ошибок в устаревшем пути сборки GTK3 (
-tags gtk3), выявленных CodeRabbit в #5463: при запуске через файловые ассоциации обработчики запуска больше не пропускаются;getThemeтеперь безопасен с точки зрения границ и типов;appNameбольше не освобождает память, принадлежащую GLib;clipboardGetбольше не приводит к утечке возвращаемого GTK объектаgchar*; теперьCallocиспользует получатели-указатели (аNewCallocвозвращает*Calloc), поэтому пул действительно отслеживает выделение памяти;zoomOutиспользует величину, обратнуюzoomInFactor, вместо отрицательного множителя, из-за которого значение ограничивалось до 1.0;execJSповторно использует заранее выделенное пустое имя мира вместо утечки одногоC.CString("")при каждом вызове; изmenuItem.setAcceleratorудалён отладочныйfmt.Println. Решает #5465. - Исправлена такая же утечка из-за получателя-значения
Callocв используемом по умолчанию пути сборки GTK4 (linux_cgo.go): получатели-указатели иNewCalloc() *Callocобеспечивают фактическое отслеживание и освобождение выделенийc.String(...)для каждого окна.
v3.0.0-alpha.92 — 2026-05-15
Добавлено
- Файлы Taskfile изменены так, чтобы используемым менеджером пакетов фронтенда можно было управлять с помощью параметра
PACKAGE_MANAGER - Данные шаблонов дополнены
{{.Opn}}и{{.Cls}}, чтобы сделать создание шаблонов Taskfile более предсказуемым
Изменено
- Несколько существующих файлов Taskfile изменены для использования
{{.Opn}} and {{.Cls}}
Исправлено
- Устранена фатальная ошибка среды выполнения
concurrent map read and map writeвlinuxSystemTray, возникавшая, когда меню в области уведомлений обновлялось во время его чтения панелью. - Для вывода ошибки и трассировки стека WebView2 теперь используется
logвместоfmt, чтобы сообщения не терялись при работе приложения в Windows без подключённой консоли.
v3.0.0-alpha.91 — 2026-05-12
Изменено
- Обновлён SVG-файл спонсоров в PR, автор —
@github-actions[bot] - ИЗМЕНЕНИЕ, НАРУШАЮЩЕЕ ОБРАТНУЮ СОВМЕСТИМОСТЬ (macOS): система координат macOS нормализована, чтобы
GetScreens,PositionиSetPositionиспользовали единое пространство: логические точки, ось Y направлена вниз, а(0,0)находится в левом верхнем углу основного экрана. Это соответствует Windows, GTK, а также общедоступным API Electron и веб-платформы. Для экранов, физически расположенных выше основного, теперь возвращается отрицательное значениеBounds.Y(ранее положительное), а значенияPosition()/SetPosition()теперь выражаются в логических точках вместоpoints × primaryScale. Корректность преобразования туда и обратноPosition()→SetPosition()сохранена; абсолютные значения, записанные в журналы предыдущими alpha-сборками, и обходные решения с вычислениями вручную (например, умножением наprimaryScaleили инвертированием Y относительно высоты экрана) потребуется обновить. Решает #5117.
Исправлено
- Добавлена защитная проверка имени сигнала DBus и длины его тела для предотвращения паник в PR, автор — @leaanthony
- Исправлена проблема с безопасностью памяти при обработке меню GTK в Linux в PR, автор — @leaanthony
- Добавлено обнаружение графических процессоров NVIDIA и отключение средства визуализации DMA-BUF в Linux в PR, автор — @leaanthony
- Исправлено преобразование координаты Y между экранами в
SetPositionв macOS: высота основного экрана теперь используется как глобальная точка отсчёта, поэтому окна размещаются в правильной позиции на мониторах, смещённых по вертикали относительно основного экрана — #5117 - Исправлен шаблон git для PR: теперь он указывает на правильный URL для обратной связи в PR, автор — @wayneforrest
- Исправлено семейство сбоев
SetMenuсистемного трея Windows, вызванных некорректным системным вызовомDestroyMenu, которому передавалось четыре аргумента вместо одного, поэтому каждый вызов возвращал FALSE и ничего не освобождал. Кроме того, при перестроении меню теперь освобождаются дескрипторы HMENU и HBITMAP (включая выделенные во время выполнения черезMenuItem.SetBitmap), вWin32Menu.Updateсбрасываются устаревшие карты флажков и переключателей, а изsystemtray.updateMenuудалён избыточный вызовUpdate(), удваивавший количество выделений памяти. Длительно работающие приложения с системным треем больше не допускают утечки объектов GDI/USER при каждом перестроении меню.
v3.0.0-alpha.90 — 2026-05-11
Добавлено
- Добавлена возможность настраивать имя приложения в User-Agent WKWebView на macOS в PR, автор: @vinhvoit225
- В пример gin-service добавлена косвенная зависимость github.com/coder/websocket в PR, автор: @taliesin-ai
- В тесты ресурсов сборки добавлена поддержка глубокого сравнения на равенство в PR, автор: @leaanthony
Изменено
- Выходные данные сборки объединены в каталоге assets в PR, автор: @taliesin-ai
- Обновлён SVG-файл спонсоров в PR, автор —
@github-actions[bot]
Исправлено
- Для сообщения единственного экземпляра приложения на macOS теперь используется объект уведомления в PR, автор: @overlordtm
- Обратные вызовы Windows теперь объединяются в пакеты, чтобы предотвратить потерю промисов при высокой нагрузке, в PR, автор: @taliesin-ai
v3.0.0-alpha.89 — 2026-05-10
Добавлено
- Добавлено задание gotestresults для агрегирования результатов тестов Go в PR, автор: @leaanthony
Изменено
- Добавлено условное разделение крупных полезных данных RPC на фрагментированные POST-запросы в PR, автор: @leaanthony
- Во всех шаблонах фронтенда Vite обновлён с версии 5.x.x до 8.0.0 в PR, автор: @leaanthony
- Конфигурация порта сервера разработки Vite перенесена в переменные окружения в PR, автор: @leaanthony
- Во всех шаблонах сервер разработки Vite настроен на привязку к 127.0.0.1 в PR, автор: @leaanthony
- Обновлён SVG-файл спонсоров в PR, автор —
@github-actions[bot]
Исправлено
- При обновлении build-assets теперь очищаются заготовки шаблона Info.plist в PR, автор: @leaanthony
- Исправлено устаревшее состояние меню macOS: методы изменения пунктов меню (
setMenuItemChecked(),setMenuItemLabel(),setMenuItemDisabled(),setMenuItemHidden(),setMenuItemTooltip()) теперь применяются синхронно в основном потоке. Это устраняет состояние гонкиdispatch_async, из-за которого при быстром повторном открытии меню отображалось его предыдущее состояние (#5002) - В режиме разработки файлы
*_test.goтеперь игнорируются, чтобы предотвратить ненужные повторные сборки, в PR, автор: @leaanthony - Предотвращена ошибка сегментации в Menu.Update(), когда приложение не запущено, в PR, автор: @wucm667
- В Windows перерисовка строки меню теперь выполняется в зависимости от lastSizeWParam в PR, автор: @taliesin-ai
v3.0.0-alpha.88 — 2026-05-09
Изменено
- HiddenOnTaskbar переведён на использование WSEXTOOLWINDOW в PR, автор: @leaanthony
- Изменён порядок зависимостей и удалена директива replace для webview2 из go.mod в PR, автор: @atterpac
- Обновлён SVG-файл спонсоров в PR, автор —
@github-actions[bot]
Исправлено
- Удалены обобщённые псевдонимы косвенного обращения, а типы ключей карт унифицированы в PR, автор: @fbbdev
Удалено
- Удалён рабочий процесс PR-master вместе с документацией, тестами Go и механизмом пропуска тестов в PR, автор: @leaanthony
v3.0.0-alpha.87 — 2026-05-07
Добавлено
- Добавлена документация Wails v3 на корейском языке в PR, автор: @leaanthony
- Добавлена документация на французском языке по установке и быстрому началу работы в PR, автор: @leaanthony
- Добавлена документация на португальском языке по быстрому началу работы, концепциям и сообществу в PR, автор: @leaanthony
v3.0.0-alpha.86 — 2026-05-06
Добавлено
- Добавлена французская локализация документации в PR, автор: @leaanthony
- На сайт документации добавлена немецкая локаль в PR, автор: @leaanthony
Изменено
- Все 8 переведённых локалей зарегистрированы в конфигурации документации в PR, автор: @leaanthony
- Обновлены различные связанные с Windows файлы для WebView2 в PR, автор: @leaanthony
Исправлено
- Диспетчеризация диалогов в Linux разделена между GTK3 и GTK4 в PR, автор: @leaanthony
- Выполнение обратных вызовов диалогов в потоке GTK теперь гарантировано, что устраняет ошибки сегментации, в PR, автор: @leaanthony
v3.0.0-alpha.85 — 2026-05-05
Добавлено
- В репозиторий добавлен URL-адрес шаблона PR в PR, автор: @leaanthony
- Добавлена документация Wails v3 на немецком языке в PR, автор: @leaanthony
v3.0.0-alpha.84 — 2026-05-03
Добавлено
- Добавлена возможность отключить выход из полноэкранного режима по клавише Escape на macOS в PR, автор: @leaanthony
- Добавлена возможность отключить выход из полноэкранного режима по клавише Escape на macOS в PR, автор: @leaanthony
- Добавлена документация о проекте Pausa в галерее сообщества в PR от @yuseferi
Изменено
- Обновлён SVG-файл со спонсорами в PR, автор —
@github-actions[bot] - Обновлена команда создания значков для обработки неподдерживаемых платформ в PR от @leaanthony
- Логический API полноэкранного режима заменён на трёхпозиционный ButtonState, реализованы привязки для платформ в PR от @leaanthony
Исправлено
- Операции фокусировки WebView2 защищены от состояния, при котором контроллер равен nil, в PR от @leaanthony
- Рабочий процесс GitHub Actions обновлён для правильного обращения к базовой ветке PR в PR от @leaanthony
- Файлы
*_test.goигнорируются в режиме разработки во избежание лишних пересборок в PR от @leaanthony - Предотвращена ошибка сегментации в Menu.Update(), когда приложение не запущено, в PR от @wucm667
v3.0.0-alpha.83 — 2026-05-02
Добавлено
- Добавлены флаг InstallScope и параметр сборки для установки на уровне компьютера или пользователя в PR от @symball
- В BrowserWindow добавлен ничего не выполняющий метод SetScreen для соответствия интерфейсу Window в PR от @leaanthony
Исправлено
- Добавлено обнаружение графических процессоров NVIDIA и отключение средства визуализации DMA-BUF в Linux в PR от @leaanthony
- Исправлен шаблон PR для Git: теперь он указывает правильный URL для обратной связи, в PR от @wayneforrest
- Исправлена группа сбоев
SetMenuв области уведомлений Windows, вызванных неисправным системным вызовомDestroyMenu, который передавал четыре аргумента вместо одного, поэтому каждый вызов возвращал FALSE и ничего не освобождал. Кроме того, при перестроении меню теперь освобождаются дескрипторы HMENU и HBITMAP, включая выделенные во время выполнения черезMenuItem.SetBitmap; вWin32Menu.Updateсбрасываются устаревшие таблицы флажков и переключателей; а изsystemtray.updateMenuудалён избыточный вызовUpdate(), удваивавший количество выделений памяти. Длительно работающие приложения с областью уведомлений больше не вызывают утечку объектов GDI/USER при каждом перестроении меню.
v3.0.0-alpha.82 — 2026-05-01
Исправлено
- Исправлено создание desktop-файла: теперь имя записи приложения обрабатывается правильно, в PR от @leaanthony
v3.0.0-alpha.81 — 2026-04-30
Изменено
- Расписание ночных выпусков перенесено на 15:00 UTC в PR от @leaanthony
Исправлено
- Исправлены уменьшенные вдвое значения Screen Bounds, WorkArea и Size на компьютерах Mac с дисплеем Retina — (#5168)
v3.0.0-alpha.80 — 2026-04-29
Изменено
- Обновлены зависимости документации и загрузчики коллекций содержимого в PR от @leaanthony
v3.0.0-alpha.79 — 2026-04-29
Добавлено
- Заданию trigger-release предоставлено разрешение actions: write в PR от @leaanthony
Изменено
- Для задачи выпуска веткой по умолчанию назначена master и обновлена формулировка журнала изменений в PR от @leaanthony
- Рабочий процесс автоматического создания журнала изменений обновлён для использования последней версии в PR от @leaanthony
- Повышена эффективность рабочих процессов за счёт добавления фильтров путей и удаления неиспользуемых рабочих процессов в PR от @leaanthony
- В документации для ссылок на примеры теперь указана ветка master в PR от @leaanthony
- Обновлены документация и примеры для v3 в PR от @leaanthony
Исправлено
- В обратный прокси-сервер добавлены повторные попытки и принудительное использование IPv4 при разработке в PR от @AkagiYui
- Переработан рабочий процесс запуска обновления раздела «Невыпущенные изменения» в журнале изменений — PR от @leaanthony
Удалено
- Удалены сценарии оболочки для различных задач тестирования в PR от @leaanthony
- Удалены рабочий процесс развёртывания документации v3-alpha и запись CNAME в PR от @leaanthony
Добавлено
- В боковую панель навигации добавлен пункт «Маршрутизация во фронтенде» в PR от @leaanthony
- Добавлено руководство по маршрутизации во фронтенде с рекомендациями для конкретных фреймворков в PR от @leaanthony
- Добавлена поддержка модальных листов (macOS)
- Версия ghw повышена для улучшения поддержки устройств Apple; автор — @leaanthony (#4977)
- В службу Dock добавлен метод
GetBadge - В команду
wails3 buildдобавлен флаг-tagsдля передачи пользовательских тегов сборки Go (например,wails3 build -tags gtk4) (#4957) - Добавлена документация по автоматическому созданию перечислений в генераторе привязок, включая отдельную страницу «Перечисления» и пункт в боковой панели навигации (#4972)
- В команду
wails3 buildдобавлен флаг-tagsдля передачи пользовательских тегов сборки Go (например,wails3 build -tags gtk4) (#4957) - В
v3/examples/web-apis/добавлены примеры Web API, демонстрирующие 41 браузерный API, включая хранилища (localStorage, sessionStorage, IndexedDB, Cache API), сетевые возможности (Fetch, WebSocket, XMLHttpRequest, EventSource, Beacon), мультимедиа (Canvas, WebGL, Web Audio, MediaDevices, MediaRecorder, Speech Synthesis), возможности устройств (Geolocation, Clipboard, Fullscreen, Device Orientation, Vibration, Gamepad), производительность (Performance API, Mutation Observer, Intersection/Resize Observer), пользовательский интерфейс (Web Components, Pointer Events, Selection, Dialog, Drag and Drop) и многое другое - Добавлен пример средства проверки совместимости API WebView (
v3/examples/webview-api-check/), которое тестирует более 200 API браузера на разных платформах - Добавлен пакет
internal/libpathдля поиска путей к нативным библиотекам в Linux с параллельным поиском, кэшированием и поддержкой Flatpak, Snap и Nix - В разработке: добавлена экспериментальная поддержка WebKitGTK 6.0 / GTK4 для Linux, доступная через
-tags gtk4(GTK3/WebKit2GTK 4.1 по-прежнему используется по умолчанию) - Примечание. В мозаичных оконных менеджерах (например, Hyprland и Sway) операции сворачивания и разворачивания могут работать не так, как ожидается, поскольку геометрией окон управляет оконный менеджер
- В раздел документации «Прослушивание событий в JavaScript» добавлены инструкции по использованию одноразовых обработчиков от @AbdelhadiSeddar
- В
WebviewWindowOptionsдобавлен параметрUseApplicationMenu, позволяющий окнам в Windows/Linux наследовать меню приложения, заданное черезapp.Menu.Set(), от @leaanthony - Добавлена поддержка файлов
.icon(формат Apple Icon Composer) для создания значков Liquid Glass и каталогов ресурсов (macOS) (#4934) от @wimaha - Добавлен экспериментальный серверный режим для безголовых и веб-развёртываний (
-tags server). Он позволяет запускать приложения Wails как HTTP-серверы без зависимостей от нативного графического интерфейса. Выполняйте сборку сwails3 task build:server. Подробности см. вexamples/server. - Добавлен пакет
internal/libpathдля поиска путей к нативным библиотекам в Linux с параллельным поиском, кешированием и поддержкой Flatpak/Snap/Nix - В
MacWindowдобавлен параметрCollectionBehaviorдля управления поведением окна в пространствах macOS Spaces и полноэкранном режиме (#4756) от @leaanthony - Добавлены модульные тесты для pkg/application от @leaanthony
- В упаковку MSIX добавлена поддержка пользовательских протоколов от @leaanthony
- Добавлено определение окружения рабочего стола в Linux PR #4797
- В среду выполнения JavaScript добавлен метод
Window.Print()для открытия диалогового окна печати из фронтенда (#4290) от @leaanthony - В вывод
wails3 doctorв Linux добавленXDG_SESSION_TYPEот @leaanthony - Добавлены дополнительные события изменения состояния загрузки WebKit2 для Linux:
WindowLoadStarted,WindowLoadRedirected,WindowLoadCommitted,WindowLoadFinished(#3896) от @leaanthony - В вывод
wails3 doctorв Linux добавленXDG_SESSION_TYPEот @leaanthony - Файл
.desktopтеперь создаётся во время сборки для Linux, а не только при упаковке (#4575) - Добавлена документация по зависимостям среды выполнения Linux с названиями пакетов для отдельных дистрибутивов и примерами упаковки с помощью nfpm (#4339) от @leaanthony
- В вывод
wails3 doctorв Linux добавлена информация о версии драйвера NVIDIA от @leaanthony - В обработчик необработанных сообщений добавлен источник сообщения от @APshenkin в PR
- Добавлена поддержка универсальных ссылок для macOS от @APshenkin в PR
- Рефакторинг транспортного слоя привязок от @APshenkin в PR
- В шаблоны helloworld добавлены идентификаторы aria-label, чтобы пример приложения можно было легко тестировать с помощью клиентов Appium, от @chinenual в PR
- В обработчик необработанных сообщений добавлен источник сообщения от @APshenkin в PR
- Добавлена поддержка универсальных ссылок для macOS от @APshenkin в PR
- Рефакторинг транспортного слоя привязок от @APshenkin в PR
- Типизированные события от @fbbdev и @ianvs в #4633
- Добавлен пример
systray-clock, демонстрирующий работу приложения в области уведомлений без основного окна с динамическим обновлением всплывающей подсказки (#4653). - Добавлен шаблон протокола NSIS для Windows от @Tolfx в #4510
- Добавлены тесты для build-assets от @Tolfx в #4510
- macOS: нативные элементы управления окном отображаются в строке меню в #4588 от @nidib
- Добавлена служба Dock для macOS, позволяющая скрывать и отображать значок приложения в Dock, от @popaprozac в PR
- Добавлена служба Dock для macOS, позволяющая скрывать и отображать значок приложения в Dock, от @popaprozac в PR
- Добавлена нативная поддержка эффекта Liquid Glass для macOS с NSGlassEffectView (macOS 15.0+) и резервным использованием NSVisualEffectView, включая широкие возможности настройки материала, от @leaanthony в #4534
- Санитизация URL браузера от @leaanthony в #4500. Основано на #4484 от @APShenkin.
- Добавлена защита содержимого в Windows/Mac от @leaanthony на основе исходной работы @Taiterbase в этом PR
- Добавлена поддержка передачи переменных CLI командам Task через псевдонимы
wails3 buildиwails3 package(#4422) от @leaanthony в PR - Поддержка зон перетаскивания, в которых данные о перетаскиваемом элементе поступают из события, от @atterpac в #4318
- В параметры
WindowsWindowдобавленAdditionalLaunchArgs, позволяющий передавать браузеру WebView2 дополнительные аргументы командной строки, в PR - Добавлен автоматический запуск go mod tidy после wails init от @triadmoko в PR
- Функция Windows Snap Assist от @leaanthony в PR
- В параметры
WindowsWindowдобавленAdditionalLaunchArgs, позволяющий передавать браузеру WebView2 дополнительные аргументы командной строки, в PR - Добавлен автоматический запуск go mod tidy после wails init от @triadmoko в PR
- Функция Windows Snap Assist от @leaanthony в PR
- Добавлена реализация
getAccentColorдля Windows от @almas-x в PR - Добавлена реализация
getAccentColorдля Windows от @almas-x в PR - Тёмная тема меню и строки меню в Windows. Реализовано @leaanthony в a29b4f0861b1d0a700e9eb213c6f1076ec40efd5
- Встроенные службы переименованы для создания более понятных привязок JS/TS, от @popaprozac в PR
app.Env.GetAccentColorдля получения системного акцентного цвета пользователя. Работает в macOS. От @etesam913- Добавлен API
window.ToggleFrameless()от @atterpac в #4137 - Добавлены зависимости сборки для Linux с учётом конкретного дистрибутива — @leaanthony в PR
- Добавлено руководство по привязкам — @atterpac в PR
- Упорядочена инфраструктура тестирования: тестовые файлы Docker перемещены в отдельный каталог
test/docker/, образы оптимизированы, а надёжность сборки повышена — @leaanthony в #4359 - Улучшены шаблоны управления ресурсами: в примеры добавлены корректная очистка обработчиков событий и управление горутинами с учётом контекста — @leaanthony в #4359
- Добавлена поддержка сборки AppImage для aarch64 — @AkshayKalose в #3981
- В
wails doctorдобавлен раздел диагностики — @leaanthony - При вызове метода сервиса окно добавляется в контекст — @leaanthony
- Добавлен пример
window-call, демонстрирующий, как определить, какое окно вызывает сервис, — @leaanthony - Новое руководство по меню — @leaanthony
- Улучшена обработка паник — @leaanthony
- Новое руководство по меню — @leaanthony
- Добавлены документирующие комментарии для Service API — @fbbdev в #4024
- Добавлена функция
application.NewServiceWithOptionsдля инициализации сервисов с дополнительной конфигурацией — @leaanthony в #4024 - Улучшено управление меню — @FalcoG и @leaanthony в #4031
- Добавлена дополнительная документация — @leaanthony
- Добавлена поддержка отмены событий в стандартных слушателях событий — @leaanthony
- Добавлена поддержка
Hide,ShowиDestroyдля значка в области уведомлений — @leaanthony - Добавлена поддержка
SetTooltipдля значка в области уведомлений — @leaanthony. Автор исходной идеи — @lujihong - В предупреждениях генератора привязок о неподдерживаемых типах теперь указывается путь к пакету — @fbbdev в #4045
- В генератор привязок добавлена поддержка обобщённых псевдонимов — @fbbdev в #4045
- В генератор привязок добавлена поддержка флага JSON
omitzero— @fbbdev в #4045 - Добавлена директива
//wails:ignore, предотвращающая генерацию привязок для выбранных методов сервиса, — @fbbdev в #4045 - Для сервисов и моделей добавлена директива
//wails:internal, позволяющая использовать типы, которые экспортируются в Go, но не в JS/TS, — @fbbdev в #4045 - В генератор привязок добавлена поддержка констант типа-псевдонима, позволяющая создавать перечисления со слабой типизацией, — @fbbdev в #4045
- Добавлены тесты генератора привязок для возможностей Go 1.24 — @fbbdev в #4068
- В
OSInfo.Brandingдобавлена поддержка macOS 15 «Sequoia» для более точного определения версии ОС — #4065 - Добавлен хук
PostShutdownдля выполнения пользовательского кода после завершения процесса остановки — @fbbdev в #4066 - Добавлена структура
FatalErrorдля поддержки обнаружения фатальных ошибок в пользовательских обработчиках ошибок — @fbbdev в #4066 - Порядок запуска и остановки сервисов стандартизирован и задокументирован — @fbbdev в #4066
- Добавлены тестовая инфраструктура для последовательности запуска и остановки приложения, а также тесты запуска и остановки сервисов — @fbbdev в #4066
- Добавлен метод
RegisterServiceдля регистрации сервисов после создания приложения — @fbbdev в #4066 - В параметры приложения и сервисов добавлено поле
MarshalErrorдля пользовательской обработки ошибок при вызовах привязок — @fbbdev в #4066 - Добавлена отменяемая обёртка промиса, которая передаёт запросы на отмену по цепочкам промисов, — @fbbdev в #4100
- Добавлена возможность привязать отмену вызова привязки к
AbortSignal— @fbbdev в #4100 - В WML наряду с обычными атрибутами
wml-*поддерживаются атрибутыdata-wml-*— @leaanthony - Во все сервисы добавлен метод
Configureдля поздней настройки и динамической перенастройки — @fbbdev в #4067 - Если сервис
fileserverне настроен, он отправляет ответ 503 Service Unavailable — @fbbdev в #4067 - Если сервис
kvstoreне настроен, по умолчанию он предоставляет хранилище ключей и значений в памяти — @fbbdev в #4067 - В сервис
kvstoreдобавлен методLoadдля повторной загрузки данных из файла после изменения конфигурации — @fbbdev в #4067 - В сервис
kvstoreдобавлен методClearдля удаления всех ключей — @fbbdev в #4067 - В сервис
logдобавлен типLevel, предоставляющий константы уровней журналирования на стороне JS, — @fbbdev в #4067 - В сервис
logдобавлен методLogдля динамического задания уровня журналирования — @fbbdev в #4067 - Если сервис
sqliteне настроен, по умолчанию он предоставляет базу данных в памяти — @fbbdev в #4067 - Добавлен метод
Closeв сервисsqliteдля ручного закрытия БД; автор — @fbbdev, #4067 - Добавлена поддержка отмены для методов выполнения запросов в сервисе
sqlite; автор — @fbbdev, #4067 - В сервис
sqliteдобавлена поддержка подготовленных выражений с привязками JS; автор — @fbbdev, #4067 - Поддержка Gin от Lea Anthony в PR на основе исходной работы @AnalogJ в этом PR
- Исправлена проблема, из-за которой автосохранение и автоматическое сохранение паролей всегда были включены; автор — @oSethoum, #4134
- В окно добавлен
SetMenu(), позволяющий назначить окну меню; автор — @leaanthony - Добавлена поддержка уведомлений; автор — @popaprozac, #4098
- Добавлена поддержка ассоциаций файлов для mac; автор — @wimaha, #4177
- Добавлен
wails3 tool versionдля повышения семантической версии; автор — @leaanthony - Добавлена поддержка меток на значке приложения для macOS и Windows; автор — @popaprozac, #
- Добавлена поддержка зарегистрированных событий со строгой типизацией; авторы — @fbbdev и @IanVS, #4161
- Добавлена возможность регистрировать хуки для пользовательских событий; авторы — @fbbdev и @IanVS, #4161
app.OpenFileManager(path string, selectFile bool)для открытия системного файлового менеджера по путиpathс необязательным выделением черезselectFile; авторы — @Krzysztofz01 @rcalixte- Новый флаг
-gitдля командыwails3 init; автор — @leaanthony - Новая команда
wails3 generate webview2bootstrapper; автор — @leaanthony - В среду выполнения добавлен метод
init()для её ручной инициализации; автор — @leaanthony - В WindowOptions окна добавлен параметр
WindowDidMoveDebounceMS; автор — @leaanthony - Добавлена функция единственного экземпляра; автор — @leaanthony. Основано на PR для v2 от @APshenkin.
- Команда
wails3 generate template; автор — @leaanthony - Команда
wails3 releasenotes; автор — @leaanthony - Команда
wails3 update cli; автор — @leaanthony - Параметр
-cleanдля командыwails3 generate bindings; автор — @leaanthony - Добавлена возможность собирать AppImage для Linux на aarch64 (arm64); автор — @AkshayKalose, #3981
- Добавлена гиперссылка для спонсора; автор — @ansxuman, #3958
- Поддержка сборки пакетов deb, rpm и Arch Linux в Linux от
- Добавлена поддержка универсальных сборок и пакетов для darwin от
- Документация по событиям для веб-сайта от
- Шаблоны для sveltekit и sveltekit-ts, настроенные для разработки без SSR
- Обновление ресурсов сборки с помощью новой команды
wails3 update build-assetsот - Пример для тестирования HTML Drag and Drop API от
- Поддержка ассоциаций файлов от leaanthony в
- Новая команда
wails3 generate runtimeот - Новый параметр
InitialPosition, определяющий, следует ли центрировать окно или - Добавлены методы
PathиPathsв пакетapplicationот - Добавлены параметры Windows
GeneralAutofillEnabledиPasswordAutosaveEnabled - Добавлена возможность получить окно, вызывающее метод сервиса, от
- Добавлены параметры
EnabledFeaturesиDisabledFeaturesдля Webview2 от - ⊞ Новая система DIP для улучшенной поддержки мониторов с высоким DPI от
- ⊞ Параметр имени класса окна от windom в
- Сервисы расширены для поддержки функциональности плагинов. Автор —
- 🐧 События WindowDidMove / WindowDidResize в
- ⊞ Событие WindowDidResize в
- Добавлено событие ApplicationShouldHandleReopen для обработки значка в Dock
- В реализацию добавлены getPrimaryScreen/getScreens; автор — @tmclane, в
- Добавлен параметр для отображения панели инструментов в полноэкранном режиме в macOS от
- 🐧 Добавлена логика onKeyPress для преобразования нажатия клавиши в Linux в акселератор
- 🐧 Добавлена задача
run:linuxот - Экспортирован метод
SetIcon; автор — @almas-x, в - Улучшен
OnShutdown; автор — @almas-x, в - В интерфейсе
Windowвосстановлен методToggleMaximiseот - В
Environment()добавлена дополнительная информация. Автор — @leaanthony, в - Метод
WebviewWindow.IsFocusedпредоставлен через интерфейсWindowот - Поддержка нескольких разделённых пробелами событий-триггеров в системе WML от
- Добавлены экспорты ESM из встроенного JS-скрипта среды выполнения от
- Добавлен флаг генератора привязок для использования встроенного JS-скрипта среды выполнения вместо
- Реализован
setIconв linux; автор — @abichinger - В команду dev добавлен флаг
-portи поддержка переменной окружения - Добавлены тесты вызовов привязанных методов, автор:
- ⊞ Добавлен
SetIgnoreMouseEventsдля уже созданного окна, автор: - Добавлена возможность задавать уровень расположения окна (порядок), автор:
Исправлено
- Исправлены уменьшенные вдвое
Screen.Bounds,WorkAreaиSizeна компьютерах Mac с дисплеем Retina: значения точек NSScreen преобразуются в физические пиксели в поляхPhysical*, а поля верхнего уровняScreen.X/Yзаполняются, чтобы корректно определять соприкосновение нескольких мониторов и размещать окна в рабочей области; PR, автор: @wayneforrest - Исправлена гонка данных в ScreenManager, вызывавшая взаимную блокировку WebKit DisplayLink при изменении конфигурации дисплеев (например, при горячем подключении внешнего монитора во время перехода в спящий режим или выхода из него)
- Если Assets.car существует, CFBundleIconName теперь напрямую получает значение appicon; PR, автор: @symball
- Исправлена ошибка, из-за которой
wails3 doctorсообщал о неверных пакетах WebKitGTK в Fedora, openSUSE, Arch и NixOS. Резервные варианты 4.0 удалены, поскольку v3 требует API 4.1 во время компиляции (#5071) - Исправлено имя пакета webkit2gtk, указываемое командой doctor для openSUSE (
webkit2gtk4_1-devel→webkit2gtk3-devel— правильное имя пакета openSUSE) (#5071) - Исправлена ошибка
Unexpected token '<'при отсутствии/wails/custom.jsв режиме разработки настольного приложения. Добавлены явный обработчик 404 для/wails/custom.jsи регистронезависимая проверкаContent-TypeвloadOptionalScript, чтобы предотвратить внедрение резервных HTML-страниц SPA в качестве JavaScript. (#5068) - Исправлено состояние выделения меню в области уведомлений macOS: когда меню открыто, значок теперь отображается как выбранный (#4910)
- Исправлено появление привязанного к области уведомлений окна позади других окон в macOS: теперь используется правильный уровень всплывающего окна (#4910)
- Исправлены неверные примеры импорта
@wailsio/runtimeв документации (#4989) - Исправлена невозможность свернуть безрамочное окно в Darwin (#4294)
- Устранены зависания на 20-30 минут во время
wails3 buildиwails3 dev:node_modules/исключён из проверки актуальности go-task. Ранее glob-шаблонsources: "**/*"заставлял go-task перечислять все файлы вnode_modules/и вычислять их контрольные суммы (50000-100000+ файлов при использовании тяжёлых зависимостей, таких как MUI), что было особенно медленно в Windows/NTFS (#4939) - Исправлен сбой сборки GTK4, вызванный конфликтом C-typedef
Screenс X11 Xlib.h (#4957) - Унифицировано поведение методов управления меткой на значке приложения в Dock в macOS
- Исправлена ошибка, из-за которой
InvisibleTitleBarHeightприменялся ко всем окнам macOS, а не только к безрамочным окнам и окнам с прозрачной строкой заголовка (#4960) - Устранены дрожание и рывки окна при изменении размера за верхние углы с включённым
InvisibleTitleBarHeight: запуск перетаскивания рядом с краями окна теперь пропускается (#4960) - Исправлена генерация отображённых типов с ключами-перечислениями в привязках JS/TS (#4437), автор: @fbbdev
- Исправлена неработающая функция перетаскивания файлов в Windows при масштабе экрана, отличном от 100%
- Исправлена поломка внутреннего перетаскивания HTML5 при включённом сбрасывании файлов в Windows
- Исправлены координаты сбрасывания файлов в Windows, использовавшие неверное пространство пикселей (физические пиксели и CSS-пиксели)
- Исправлена ненадёжная работа перетаскивания файлов с эффектами наведения в Linux
- Исправлена поломка внутреннего перетаскивания HTML5 при включённом сбрасывании файлов в Linux
- Исправлена ошибка, из-за которой после скрытия и показа окна в Linux/GTK4 оно иногда восстанавливалось свёрнутым: теперь используется
gtk_window_present()(#4957) - Исправлено получение и задание положения окна в Linux/GTK4, всегда возвращавшее 0,0: добавлена условная поддержка X11 через
XTranslateCoordinates/XMoveWindow(#4957) - Исправлена ошибка, из-за которой максимальный размер окна не соблюдался в Linux/GTK4: удалённый
gtk_window_set_geometry_hintsзаменён ограничением размера на основе сигналов (#4957) - Исправлено масштабирование DPI в Linux/GTK4: реализованы правильный расчёт PhysicalBounds и поддержка дробного масштабирования через
gdk_monitor_get_scale(GTK 4.14+) - Исправлено дублирование пунктов меню при создании новых окон в Linux/GTK4
- Исправлена генерация отображаемых типов с ключами-перечислениями в привязках JS/TS (#4437), автор: @fbbdev
- Исправлена неработающая функция перетаскивания файлов в Windows при масштабе экрана, отличном от 100%
- Исправлена поломка внутреннего перетаскивания HTML5 при включённом сбрасывании файлов в Windows
- Исправлены координаты сбрасывания файлов в Windows, использовавшие неверное пространство пикселей (физические пиксели и CSS-пиксели)
- Исправлена ненадёжная работа перетаскивания файлов с эффектами наведения в Linux
- Исправлена поломка внутреннего перетаскивания HTML5 при включённом сбрасывании файлов в Linux
- Исправлено масштабирование DPI в Linux/GTK4: реализованы правильный расчёт PhysicalBounds и поддержка дробного масштабирования через
gdk_monitor_get_scale(GTK 4.14+) - Исправлено дублирование пунктов меню при создании новых окон в Linux/GTK4
- Исправлена генерация отображаемых типов с ключами-перечислениями в привязках JS/TS (#4437), автор: @fbbdev
- Исправлена проблема с «окнами-призраками» в macOS, вызванная тем, что AppKit API вызывались не из главного потока в App.Window.Current() (#4947), автор: @wimaha
- Исправлена неработающая функция HTML
<input type="file">в macOS: реализован WKUIDelegate runOpenPanelWithParameters (#4862) - Исправлена неработающая функция нативного перетаскивания файлов при использовании npm-модуля
@wailsio/runtimeв macOS/Linux (#4953), автор: @leaanthony - Исправлена генерация привязок для псевдонимов типов из других пакетов (#4578), автор: @fbbdev
- Исправлен сбой OpenFileDialog в Linux из-за нарушения потокобезопасности GTK (#3683), автор: @ddmoney420
- Исправлен сбой SIGSEGV при вызове
Focus()для скрытого или уничтоженного окна (#4890), автор: @ddmoney420 - Устранена возможная паника при задании пустого значка или растрового изображения в Linux (#4923), автор: @ddmoney420
- Исправлен сбой ErrorDialog при вызове из привязки службы в macOS (#3631), автор: @leaanthony
- Обеспечено отображение меню в ОС Windows в
v3\examples\dialogs, автор: @ndianabasi - Исправлено состояние гонки, вызывавшее TypeError при перезагрузке страницы (#4872), автор: @ddmoney420
- Исправлен неверный вывод тестов генератора привязок: из метода
Collector.IsVoidAlias()удалено глобальное состояние (#4941), автор: @fbbdev - Исправлено неработающее диалоговое окно выбора файлов
<input type="file">в macOS (#4862), автор: @leaanthony - Исправлено использование
Position()иSetPosition()несогласованных систем координат в macOS, из-за которого положение окна смещалось при сохранении и восстановлении состояния (#4816), автор — @leaanthony - Исправлена ошибка SetProcessDpiAwarenessContext «Доступ запрещён», возникавшая, когда режим учёта DPI уже был задан в манифесте приложения (#4803)
- Обновлена страница документации о сочетаниях клавиш и исправлен тип параметра, принимающего функцию обратного вызова, у
KeyBinding.Add, автор — @ndianabasi - Исправлена документация по созданию пользовательских привязок: необходимо использовать
-d Stringвместо-o String - Исправлена ошибка, из-за которой при вызове
menu.Update()не удалялись дочерние элементы меню - Исправлены устаревшие ссылки на Manager API в документации (31 файл обновлён для использования нового шаблона, например
app.Window.New(),app.Event.Emit()и т. д.), автор — @leaanthony - Исправлен аварийный сбой в Linux при панике в методах Go, привязанных к JS, вызванный переопределением обработчиков сигналов в WebKit (#3965), автор — @leaanthony
- Исправлена ошибка, из-за которой SaveFileDialog.SetFilename() не действовал в Linux (#4841), автор — @samstanier
- Исправлена ошибка, из-за которой в примере перетаскивания координаты места сброса отображались как undefined
- Исправлена ошибка создания пакета приложения для macOS, возникавшая, когда APP_NAME содержал пробелы (проблема с раскрытием фигурных скобок)
- Исправлена паника из-за выхода индекса за границы массива в Windows при вызове методов служб (отменён переход на goccy/go-json)
- Исправлено неработающее перетаскивание файлов в Windows при масштабе экрана, отличном от 100%
- Исправлена поломка внутреннего перетаскивания HTML5 при включённом сбросе файлов в Windows
- Исправлено вычисление координат сброса файлов в неверном пространстве пикселей в Windows (физические пиксели вместо CSS-пикселей)
- Исправлена ненадёжная работа перетаскивания файлов с эффектами наведения в Linux
- Исправлена поломка внутреннего перетаскивания HTML5 при включённом сбросе файлов в Linux
- Обновлены все команды в файлах Taskfile.yml для всех операционных систем, чтобы корректно обрабатывать пробелы в таких переменных, как
APP_NAME, автор — @ndianabasi - Исправлена ошибка аргумента команды при выполнении задачи ‘build:universal:lipo:go’ в Linux, автор — @wux1an
- Исправлена ошибка Docker «undefined symbol: **ubsanhandle_xxxxxxx» при выполнении ‘wails3 build GOOS=darwin GOARCH=arm64’ в Linux, автор — @wux1an
- Объединена документация по пользовательским протоколам и добавлены разделы об Universal Links, автор — @leaanthony
- Исправлен аварийный сбой меню системного трея Windows при многократном нажатии на значок: добавлена защита от одновременных вызовов TrackPopupMenuEx (#4151), автор — @leaanthony
- Предотвращён аварийный сбой приложения при вызове systray.Run() до app.Run(), автор — @leaanthony
- Исправлен аварийный сбой в macOS при переключении видимости окна через Hide()/Show(), когда включён параметр ApplicationShouldTerminateAfterLastWindowClosed (#4389), автор — @leaanthony
- Исправлена утечка памяти в контекстных меню macOS и Windows при их многократном открытии (#4012), автор — @leaanthony
- Исправлена ошибка, из-за которой нативные ресурсы контекстного меню в macOS не использовались повторно и при каждом показе создавалось новое меню (#4012), автор — @leaanthony
- Исправлена ошибка, из-за которой нажатие на значок в Dock macOS не отображало скрытые окна, если приложение было запущено с
Hidden: true(#4583), автор — @leaanthony - Исправлена ошибка, из-за которой диалог печати macOS не открывался вследствие неверного типа указателя на окно в вызове CGO (#4290), автор — @leaanthony
- Исправлен аварийный сбой меню окна в Wayland, вызванный обращением appmenu-gtk-module к окну, для которого ещё не созданы нативные ресурсы (#4769), автор — @leaanthony
- Исправлен аварийный сбой приложения GTK, когда имя приложения содержало недопустимые символы (пробелы, круглые скобки и т. д.), автор — @leaanthony
- Исправлена ошибка «недостаточно памяти» при инициализации перетаскивания в Windows (#4701), автор — @overlordtm
- Исправлена ошибка, из-за которой файловый менеджер открывал неверный каталог в Linux вследствие неправильного экранирования URI (#4397), автор — @leaanthony
- Исправлен сбой сборки AppImage в современных дистрибутивах Linux (Arch, Fedora 39+, Ubuntu 24.04+): добавлено автоматическое обнаружение секций ELF
.relr.dynи отключение удаления символов и служебных данных из бинарного файла (#4642), автор — @leaanthony - Исправлена ошибка, из-за которой
wails doctorошибочно сообщал об установленных пакетах webkit в Fedora и системах на основе DNF (#4457), автор — @leaanthony - Исправлена ошибка, из-за которой стандартный
config.ymlзапускалwails3 devсо сборкой для рабочей среды, автор — @mbaklor - Исправлены заглушки служб iOS, вызывавшие сбои сборки из-за импорта несуществующего пакета, автор — @leaanthony
- Исправлено структурированное журналирование в методах debug/info, вызывавшее ошибки «нет директив форматирования», автор — @leaanthony
- Удалены временные отладочные операторы печати, случайно попавшие в код при слиянии изменений для мобильных платформ, автор — @leaanthony
- Исправлен аварийный сбой WebKitGTK в Wayland на графических процессорах NVIDIA (ошибка 71 Protocol error): добавлено автоматическое отключение средства визуализации DMA-BUF, автор — @leaanthony
- Исправлено игнорирование значения альфа-канала в
application.WebviewWindowOptions.BackgroundColourв Linux (#4722, @BradHacker) - Исправлена ошибка, из-за которой значком в системном трее Windows по умолчанию не становился значок приложения, если пользовательский значок не был задан (#4704)
- Добавлено отслеживание владельца
HICON, чтобы уничтожались только созданные пользователем дескрипторы, что предотвращает сбои при перезапуске Explorer (#4653). - При уничтожении теперь освобождаются обработчик изменений системной темы Windows и сохранённые значки трея, что устраняет утечки горутин и контекстов устройств (#4653).
- Всплывающие подсказки значков трея теперь обрезаются до 127 единиц UTF-16, чтобы избежать повреждения суррогатных пар и многобайтовых глифов (#4653).
- Исправлен сбой задачи упаковки для Windows (#4667)
- Исправлена переменная appicon для Linux AppImage в файле задач Linux, PR #4644
- Исправлена ошибка сборки для Windows, вызванная изменением сигнатуры в go-webview2 v1.0.22 (#4513, #4645)
- Исправлена переменная appicon для Linux AppImage в файле задач Linux, PR #4644
- Исправлен перебор протоколов в desktop.tmpl для Linux путём замены
<.Info.Protocol>на<.Protocol>, автор — @Tolfx в #4510 - Исправлена ошибка повторного определения в демонстрации liquid glass в #4542, автор — @Etesam913
- Исправлено обновление меню системного трея в Linux, #4604, автор — @JackDoan
- Исправлено появление белого окна в Windows при создании скрытого окна, автор — @leaanthony в #4612
- Исправлен путь импорта пакета уведомлений в документации, автор — @rxliuli в #4617
- Исправлена неработающая функция перетаскивания при использовании npm-пакета @wailsio/runtime (#4489), автор — @leaanthony, #4616
- Windows: устранены мерцание окна при запуске и некорректное отображение скрытых окон в PR, автор — @leaanthony.
- Исправлены проблемы с размером окна при разворачивании в Wayland (https://github.com/wailsapp/wails/issues/4429), автор — @samstanier
- Исправлены проблемы с размером окна при разворачивании в Wayland (https://github.com/wailsapp/wails/issues/4429), автор — @samstanier
- Исправлена ошибка повторного определения в демонстрационном примере liquid glass в #4542, автор — @Etesam913
- Исправлена проблема, из-за которой AssetServer мог аварийно завершить работу в MacOS, в #4576, автор — @jghiloni
- Исправлена проблема компиляции при сборке с NextJs. Исправление внесено в #4585, автор — @rev42
- Исправлены конвейеры ночных выпусков в #4597, автор — @riadafridishibly
- Исправлена ошибка повторного определения в демонстрационном примере liquid glass в #4542, автор — @Etesam913
- Исправлена проблема, из-за которой AssetServer мог аварийно завершить работу в MacOS, в #4576, автор — @jghiloni
- Исправлена проблема компиляции при сборке с NextJs. Исправление внесено в #4585, автор — @rev42
- Исправлены конвейеры ночных выпусков в #4597, автор — @riadafridishibly
- Исправлена ошибка повторного определения в демонстрационном примере liquid glass в #4542, автор — @Etesam913
- Исправлена работа SetBackgroundColour в Windows, автор — @PPTGamer, PR
- Документация обновлена с учётом изменений после рефакторинга Manager API, автор — @yulesxoxo, PR #4476
- Исправлена переменная appicon для файла Linux .desktop в Linux Taskfile, PR #4477
- Документация обновлена с учётом изменений после рефакторинга Manager API, автор — @yulesxoxo, PR #4476
- Исправлена ошибка разыменования nil-указателя в Windows, о которой сообщалось в #4456; исправление внесено @leaanthony в #4460
- В macOS WKWebView добавлена поддержка
allowsBackForwardNavigationGestures, включающая жесты навигации смахиванием двумя пальцами (#1857) - Исправлена проблема, из-за которой onClick не работал для пунктов меню, изначально заданных как отключённые, автор — @leaanthony, PR #4469. Благодарим @IanVS за первоначальное исследование.
- Исправлена проблема, из-за которой сервер Vite не завершал работу после сбоя сборки (#4403)
- Устранена паника при закрытии или отмене
SaveFileDialogв windows. Исправление внесено в PR, автор — @hkhere - Исправлено перетаскивание на уровне HTML в Windows, автор — @mbaklor, в #4259
- В macOS WKWebView добавлена поддержка
allowsBackForwardNavigationGestures, включающая жесты навигации смахиванием двумя пальцами (#1857) - Исправлена проблема, из-за которой onClick не работал для пунктов меню, изначально заданных как отключённые, автор — @leaanthony, PR #4469. Благодарим @IanVS за первоначальное исследование.
- Исправлена проблема, из-за которой сервер Vite не завершал работу после сбоя сборки (#4403)
- Исправлен разбор уведомлений в Windows, автор — @popaprozac, PR
- Команда doctor исправлена для проверки зависимостей Windows SDK, автор — @kodumulo, в #4390
- Исправлено разыменование nil-указателя в processURLRequest на Mac, автор — @etesam913, в #4366
- Исправлена ошибка в linux, препятствовавшая работе диалоговых окон с фильтрами, автор — @bh90210, в #4287
- Исправлены проблемы меню «Правка» в Windows и Linux, автор — @leaanthony, в #3f78a3a
- Минимальная версия системы в файлах macOS .plist обновлена с 10.13.0 до 10.15.0, автор — @AkshayKalose, в #3981
- Исправлена проблема с пропуском идентификаторов окон, автор — @leaanthony
- Исправлена проблема с nil-меню при вызове RegisterContextMenu, автор — @leaanthony
- Исправлены циклические зависимости в выходных данных генератора привязок, автор — @fbbdev, в #4001
- Исправлены ошибки использования до объявления в выходных данных генератора привязок, автор — @fbbdev, в #4001
- В генератор привязок передаются флаги сборки, автор — @fbbdev, в #4023
- В путях в Windows Taskfile обратные косые черты заменены на прямые, чтобы обеспечить работу на платформах, отличных от Windows, автор — @leaanthony
- Исправлены события Mac и Mac JS, автор — @leaanthony
- Исправлена взаимная блокировка событий в macOS, автор — @leaanthony
- Исправлена ошибка
Parameter incorrectпри инициализации Window в Windows, когда предоставлен HTML, но отсутствует JS, автор — @leaanthony - Исправлен размер префикса ответа, используемого сервером ресурсов для определения типа содержимого, автор — @fbbdev, в #4049
- Исправлена обработка ответов, отличных от 404, для корневого пути индекса на сервере ресурсов, автор — @fbbdev, в #4049
- Исправлено неопределённое поведение генератора привязок при проверке свойств обобщённых типов, автор — @fbbdev, в #4045
- Исправлены выходные данные генератора привязок для моделей, у которых базовый тип имеет свойства, отличные от свойств именованной обёртки, автор — @fbbdev, в #4045
- Исправлены выходные данные генератора привязок для типов ключей отображений и предварительная обработка, автор — @fbbdev, в #4045
- Исправлены выходные данные генератора привязок для структур, реализующих интерфейсы маршалинга, автор — @fbbdev, в #4045
- Исправлено обнаружение циклов типов с участием обобщённых типов в генераторе привязок, автор — @fbbdev, в #4045
- Исправлены недопустимые ссылки на неэкспортируемые модели в выходных данных генератора привязок — @fbbdev в #4045
- Внедряемый код перемещён в конец файлов сервисов — @fbbdev в #4045
- Исправлена обработка ошибок операций закрытия файлов в генераторе привязок — @fbbdev в #4045
- Отключены предупреждения для сервисов, которые определяют методы жизненного цикла или HTTP, но не имеют других привязанных методов, — @fbbdev в #4045
- Исправлена ошибка, из-за которой шаблоны без React не отображали нижний колонтитул Hello World при использовании светлой системной цветовой схемы, — @marcus-crane в #4056
- Исправлены скрытые пункты меню в macOS — @leaanthony
- Исправлены обработка и форматирование ошибок в обработчиках сообщений — @fbbdev в #4066
- Исправлен пропуск завершения работы сервиса при выходе из приложения — @fbbdev в #4066
- Обновления меню теперь выполняются в главном потоке — @leaanthony
- Механизм перетаскивания и изменения размера стал надёжнее и теперь точнее соответствует ожидаемому поведению платформы — @fbbdev в #4100
- Исправлена ошибка #4097, из-за которой Webpack/Angular отбрасывал код инициализации среды выполнения, — @fbbdev в #4100
- Исправлены пункты меню, изначально находящиеся в скрытом состоянии, — @IanVS в #4116
- Исправлена ошибка, из-за которой assetFileServer не отдавал файлы
.htmlпри запросе без расширения, когда[request]не существует, а[request].htmlсуществует - Исправлены пути генерации значков — @robin-samuel в #4125
- Исправлена ошибка, из-за которой события
fullscreen,unfullscreen,unminimiseиunmaximiseне генерировались, — @oSethoum в #4130 - Исправлена ошибка NSIS, возникавшая из-за неверного префикса версии по умолчанию в конфигурации, — @robin-samuel в #4126
- Исправлена функция среды выполнения Dialogs, возвращавшая экранированные пути в Windows, — TheGB0077 в #4188
- Исправлен путь обнаружения WebView2 в HKCU — @leaanthony.
- Исправлена проблема с вводом в macOS — @leaanthony.
- Исправлено имя файла задачи генерации значков Windows — @yulesxoxo в #4219.
- Исправлена проблема с прозрачностью безрамочных окон — @leaanthony на основе работы @kron.
- Исправлены вызовы установки фокуса, когда окно отключено или свёрнуто, — @leaanthony на основе работы @kron.
- Исправлена ошибка, из-за которой значки в системной области не появлялись после перезапуска панели задач, — @leaanthony на основе работы @kron.
- Исправлена отсутствующая реализация Flush() в fallbackResponseWriter в #4245
- Исправлена отсутствующая реализация Flush() в fallbackResponseWriter — [@superDingda] в #4236
- Исправлены сбои при закрытии окна macOS, когда ожидалось завершение асинхронного вызова функции, привязанной к Go, — @joshhardy в #4354
- Исправлено состояние гонки при запуске режима эффективности Windows — @leaanthony
- Исправлено освобождение дескриптора значка Windows — @leaanthony.
- Исправлено
OpenFileManagerв Windows — @PPTGamer в #4375. - Исправлены параметры минимальной и максимальной ширины для Linux — @atterpac в #3979
- Определения типов для шаблонов TypeScript обновлены посредством повышения версии npm — @atterpac в #3966
- Исправлена ссылка на CSS в шаблоне SvelteKit — @atterpac в #3945
- Ключевые функции обратного вызова в run() окна теперь гарантированно вызываются в главном потоке — @leaanthony
- Исправлены примеры выбора каталога в диалоговом окне — @leaanthony
- Создана новая страница ошибки на китайском языке, отображаемая при отсутствии index.html, — @leaanthony
- Функция обратного вызова
windowDidBecomeKeyтеперь гарантированно выполняется в главном потоке — @leaanthony - Добавлена поддержка полноэкранного режима для безрамочных окон — @leaanthony
- Улучшена логика уничтожения окон — @leaanthony
- Исправлена логика позиционирования окон, прикреплённых к значкам в системной области, — @leaanthony
- Добавлена поддержка полноэкранного режима для безрамочных окон — @leaanthony
- Исправлена обработка событий — @leaanthony
- Исправлена логика завершения работы окна — @leaanthony
- Общий taskfile теперь по умолчанию генерирует привязки TypeScript для шаблонов TypeScript — @leaanthony
- Исправлено закрытие приложения при получении сообщения WM_CLOSE, когда нет открытых окон и используется только значок в системной области, — @mmalcek в #3990
- Исправлена сборка с garble — @5aaee9 в #3192
- Исправлены сборки NSIS для Windows — @leaanthony
- Исправлена взаимная блокировка в диалоговом окне Linux при выборе нескольких элементов, вызванная незакрытым
- Исправлена кроссплатформенная очистка файлов .syso во время сборки для Windows —
- Исправлена компиляция AppImage для amd64 — @atterpac в
- Исправлено обновление ресурсов сборки — @ansxuman в
- Исправлена реализация
OnClickиOnRightClickдля области уведомлений Linux; автор — @atterpac - Исправлена неработоспособность
AlwaysOnTopна Mac; автор — - Исправлено дублирование в
application.NewEditMenu - 🐧 Исправлена компиляция для aarch64
- ⊞ Исправлены пункты меню с переключателями; автор —
- Исправлена ошибка при сборке запускаемого пакета .app на MacOS, когда ’name’ и ‘outputfilename’
- Исправлена ошибка использования customEventProcessor в примере drag-n-drop; автор —
- 🐧 Исправлена ошибка компиляции в Linux, появившаяся после добавления IgnoreMouseEvents; автор —
- ⊞ Исправлена ошибка создания файла значка syso; автор —
- 🐧 Интегрировано исправление для нативного запуска в Wayland из
- Не привязывать внутренние методы сервисов в
- ⊞ Исправлена паника при запуске области уведомлений в
- Не привязывать внутренние методы сервисов в
- ⊞ Исправлена паника при запуске области уведомлений в
- Значительно переработаны пункты меню и обработка событий. Пока что в основном улучшена macOS. Автор —
- Исправлены тесты после переработки плагинов и событий в
- ⊞ Исправлено предупреждение
Failed to unregister class Chrome_WidgetWin_0. Автор — - Проблемы с модулями
- Исправлена передача сообщений о событии изменения размера; автор — atterpac, в
- 🐧 Исправлена ошибка обработки темы в NixOS; автор —
- Исправлена установка проекта между разными томами в Windows; автор —
- Исправлены стили CSS шаблона React, чтобы отображался нижний колонтитул; автор —
- Устранены процессы-зомби при работе в режиме разработки благодаря обновлению refresh до последней версии
- Исправлен поиск файла WebKit для AppImage; автор — Atterpac
- Исправлена проверка пакетов apt в Doctor; автор — Atterpac, в
- Исправлено зависание приложения при завершении работы (Darwin); автор — @5aaee9, в
- Исправлены цвета фона примеров в Windows; автор —
- Исправлены контекстные меню по умолчанию; автор — mmghv, в
- Исправлены шестнадцатеричные значения клавиш со стрелками в Darwin; автор —
- В Windows реализована работа drag-n-drop. Добавил
- Исправлена ошибка в Doctor для Linux, возникавшая при отсутствии у пользователя подходящих драйверов
- Исправлено масштабирование DPI при запуске (Windows). Изменил @almas-x, в
- Исправлена строка замены в
go.mod: теперь используются относительные пути. Это исправляет пути Windows с - Исправлена обработка щелчков по значку в области уведомлений MacOS при отсутствии связанного окна; автор —
- Исправлен сбой сборки для Windows из-за неизвестного параметра; автор —
- Исправлен сбой в Windows при щелчке левой кнопкой по значку в области уведомлений, когда отсутствует
- Исправлен неверный baseURL при повторном открытии окна; автор — @5aaee9, в PR
- Исправлен порядок ветвей if в методе
WebviewWindow.Restore; автор — - Реализовано правильное вычисление
startURLпри нескольких вызовахGetStartURL, когда - Тип JS структуры
Screenприведён в соответствие с её аналогом в Go; автор — - Исправлен метод
WML.Reload, чтобы обеспечить надлежащую очистку зарегистрированного события - Исправлено немедленное закрытие пользовательского контекстного меню в Linux; автор —
- Исправлены выходной путь и расширение файлов моделей, создаваемых генератором привязок
- Исправлены пути импорта файлов моделей в JS-коде, создаваемом генератором привязок
- Исправлена работа drag-n-drop в некоторых дистрибутивах Linux; автор —
- Добавлена отсутствовавшая задача для macOS при использовании
wails3 task dev; автор — - Исправлена ошибка присваивания в nil-карту при регистрации событий; автор —
- Исправлена десериализация параметров привязанных методов; автор —
- Исправлена обработка нескольких возвращаемых значений привязанных методов; автор —
- Исправлено обнаружение в Doctor пакета npm, установленного не через системный менеджер пакетов
- Добавлен отсутствовавший MicrosoftEdgeWebview2Setup.exe. Благодарим
- Исправлен случайный сбой в Linux из-за обработки идентификатора окна; автор — @leaanthony. На основе
- Исправлен сбой systemTray.setIcon в Linux; автор —
- Исправлено применение рамки окна при первом вызове функции
setFramelessв
Изменено
- ИЗМЕНЕНИЕ, НАРУШАЮЩЕЕ ОБРАТНУЮ СОВМЕСТИМОСТЬ: ключи карт в сгенерированных привязках JS/TS теперь помечаются как необязательные, чтобы точно отражать семантику карт Go. Теперь доступ к значению карты в TypeScript возвращает
T | undefinedвместоT, поэтому требуются проверки на null или утверждения типов (#4943); автор —@fbbdev - Использование
Eventзаменено наEventsв соответствии с изменениями в@wailsio/runtime; соответствующие вызовы функций в документации обновлены вFeatures/Events/Event System; автор — @AbdelhadiSeddar EnabledFeatures,DisabledFeaturesиAdditionalBrowserArgsперенесены из параметров отдельных окон вOptions.Windowsуровня приложения (#4559); автор — @leaanthony- Обновлён README для примера
Drag N Drop; подчёркнуто, что пример демонстрируетInternal Drag and Drop; автор — @ndianabasi - Уровень различных отладочных сообщений изменён с Info на Debug (автор — @mbaklor)
- ИЗМЕНЕНИЕ, НАРУШАЮЩЕЕ ОБРАТНУЮ СОВМЕСТИМОСТЬ:
EnableDragAndDropпереименован вEnableFileDropв параметрах окна - ИЗМЕНЕНИЕ, НАРУШАЮЩЕЕ ОБРАТНУЮ СОВМЕСТИМОСТЬ:
DropZoneDetailsпереименован вDropTargetDetailsв контексте события - ИЗМЕНЕНИЕ, НАРУШАЮЩЕЕ ОБРАТНУЮ СОВМЕСТИМОСТЬ: метод
DropZoneDetails()объектаWindowEventContextпереименован вDropTargetDetails() - ИЗМЕНЕНИЕ, НАРУШАЮЩЕЕ ОБРАТНУЮ СОВМЕСТИМОСТЬ: событие
WindowDropZoneFilesDroppedудалено; вместо него используйтеWindowFilesDropped - ИЗМЕНЕНИЕ, НАРУШАЮЩЕЕ ОБРАТНУЮ СОВМЕСТИМОСТЬ: HTML-атрибут
data-wails-dropzoneзаменён наdata-file-drop-target - ИЗМЕНЕНИЕ, НАРУШАЮЩЕЕ ОБРАТНУЮ СОВМЕСТИМОСТЬ: CSS-класс наведения
wails-dropzone-hoverзаменён наfile-drop-target-active - ИЗМЕНЕНИЕ, НАРУШАЮЩЕЕ ОБРАТНУЮ СОВМЕСТИМОСТЬ: из Windows удалены параметры
DragEffect,OnEnterEffectиOnOverEffect(они относились к удалённому IDropTarget) - Для всей обработки JSON во время выполнения (привязок методов, событий, запросов WebView, уведомлений и kvstore) теперь используется goccy/go-json, что повышает производительность на 21-63% и сокращает количество выделений памяти на 40-60%
- Оптимизирована компоновка структуры BoundMethod и кэшируется флаг isVariadic, чтобы сократить накладные расходы при каждом вызове
- Для методов с
<=8аргументами используется выделяемый в стеке буфер аргументов, чтобы избежать выделений памяти в куче - Оптимизирован сбор результатов вызовов методов, чтобы не выделять срез для единственного возвращаемого значения
- Для кэша MIME-типов используется sync.Map, что повышает производительность при конкурентном доступе
- Для чтения тела запросов HTTP-транспорта используется пул буферов
- Канал CloseNotify в определителе типа содержимого теперь выделяется отложенно, чтобы сократить количество выделений памяти на каждый запрос
- С сервера ресурсов удалено отладочное журналирование CSS
- Карта расширений MIME-типов дополнена поддержкой более 50 распространённых веб-форматов (шрифтов, аудио, видео и т. д.)
- Обновлена документация по параметрам Window
X/Y— @ruhuang2001 - В документацию по
Frontend Runtimeдобавлены дополнительные параметры генерации привязок для фронтенда — @ndianabasi - Обновлена страница документации по серверу ресурсов Wails v3 — @ndianabasi
- КРИТИЧЕСКОЕ ИЗМЕНЕНИЕ: удалены функции диалогов уровня пакета (
application.InfoDialog(),application.QuestionDialog()и т. д.). Вместо них используйте менеджерapp.Dialog:app.Dialog.Info(),app.Dialog.Question(),app.Dialog.Warning(),app.Dialog.Error(),app.Dialog.OpenFile(),app.Dialog.SaveFile() - Документация по диалогам приведена в соответствие с фактическим API: используются
app.Dialog.*,AddButton()с функциями обратного вызова (неSetButtons()),SetDefaultButton(*Button)(не строка),AddFilter()(неSetFilters()),SetFilename()(неSetDefaultFilename()) иapp.Dialog.OpenFile().CanChooseDirectories(true)для выбора папки - КРИТИЧЕСКОЕ ИЗМЕНЕНИЕ: теперь по умолчанию создаются производственные сборки. Чтобы создавать сборки для разработки, укажите
DEV=trueв файлах Taskfile. Для примеров создайте новый проект — @leaanthony - При отправке пользовательского события без аргументов данных или с одним таким аргументом значение данных присваивается непосредственно полю Data без оборачивания в срез — @fbbdev в #4633
- Значки приложений в области уведомлений Windows теперь учитывают
SystemTray.Show()/Hide(), переключаяNIS_HIDDEN, благодаря чему приложения могут полностью исчезать и возвращаться (#4653). - При регистрации значка в области уведомлений повторно используются уже полученные значки,
NOTIFYICON_VERSION_4задаётся один раз, аNIF_SHOWTIPвключается, чтобы всплывающие подсказки восстанавливались после перезапуска Explorer (#4653). - macOS: для центрирования окна используется
visibleFrameвместоframe, чтобы исключить области строки меню и Dock - macOS: для центрирования окна используется
visibleFrameвместоframe, чтобы исключить области строки меню и Dock - При запуске
wails3 update build-assetsс параметром-configзначения, заданные через параметры-product*, window.NativeWindowHandle()→window.NativeWindow()— @leaanthony в #4471- Переработана внутренняя обработка окон — @leaanthony в #4471
- Удалены
application.WindowIDKeyиapplication.WindowNameKey(заменены наapplication.WindowKey) — @leaanthony - ContextMenuData теперь возвращает строку вместо any — @leaanthony
- В привязках JS/TS поля классов с типами массивов фиксированной длины теперь инициализируются с ожидаемой длиной, а не остаются пустыми — @fbbdev в #4001
- ContextMenuData теперь возвращает строку вместо any — @leaanthony
application.NewServiceбольше не принимает параметры в качестве необязательного аргумента (вместо этого используйтеapplication.NewServiceWithOptions) — @leaanthony в #4024- Удалена зависимость
nanoid— @leaanthony - Обновлён пример Window для стилей окон mica/acrylic/tabbed — @leaanthony
- Из привязок JS/TS удалены файлы моделей
internal.js/ts; теперь все модели находятся вmodels.js/ts— @fbbdev в #4045 - В привязках JS/TS именованные типы больше никогда не отображаются как псевдонимы других именованных типов; прежнее поведение теперь применяется только к псевдонимам — @fbbdev в #4045
- В привязках JS/TS в режиме классов поля структур, типом которых является параметр типа, помечаются как необязательные и никогда не инициализируются автоматически — @fbbdev в #4045
- ESLint удалён из шаблонов — @IanVS в #4059
- Год в уведомлении об авторских правах обновлён до 2025 — @IanVS в #4037
- Добавлена документация по event.Sender — @IanVS в #4075
- Поддержка Go 1.24 — @leaanthony
- Обработчики
ServiceStartupтеперь вызываются при вызовеApp.Run, а не вapplication.New— @fbbdev в #4066 - Ошибки
ServiceStartupтеперь возвращаются изApp.Runвместо завершения процесса — @fbbdev в #4066 - Вызовы привязок и диалогов из JS теперь отклоняются с объектами ошибок вместо строк — @fbbdev в #4066
- Улучшено позиционирование меню области уведомлений в Windows — @leaanthony
- Среда выполнения JS перенесена на TypeScript — @fbbdev в #4100
- Среда выполнения инициализируется сразу после импорта, поэтому ждать загрузки окна не требуется; автор: @fbbdev, см. #4100
- Среда выполнения больше не экспортирует метод init. Для её инициализации можно использовать импорт только ради побочных эффектов; автор: @fbbdev, см. #4100
- Связанные методы теперь возвращают
CancellablePromise, который при отмене отклоняется сCancelError. Фактический результат вызова отбрасывается; автор: @fbbdev, см. #4100 - Типы встроенных сервисов теперь единообразно называются
Service; автор: @fbbdev, см. #4067 - Функции создания встроенных сервисов с параметрами теперь единообразно называются
NewWithConfig; автор: @fbbdev, см. #4067 - Метод
Selectсервисаsqliteтеперь называетсяQueryдля согласованности с API Go; автор: @fbbdev, см. #4067 - Шаблоны: среда выполнения перенесена в “dependencies”, файлы package.json упорядочены; автор: @IanVS, см. #4133
- В режиме разработки создаёт пакеты приложений и выполняет их ad-hoc-подпись, чтобы сделать доступными некоторые API macOS; автор: @popaprozac, см. #4171
- Ресурсы сборки перенесены в каталоги для соответствующих платформ; автор: @leaanthony
- Файлы Taskfile перемещены, переименованы и помещены в каталоги для соответствующих платформ; автор: @leaanthony
- Значительно улучшено взаимодействие при отсутствии
index.html; автор: @leaanthony - [Windows] Повышена производительность сворачивания и восстановления окон; автор: @leaanthony. На основе исходного PR от 562589540
- Удалён параметр
ShouldClose(вместо него зарегистрируйте обработчик для events.Common.WindowClosing); автор: @leaanthony - [Windows] Уменьшено мерцание при открытии окна; автор: @leaanthony
- Удалена
Window.Destroy, поскольку эта функция предназначалась для внутреннего использования; автор: @leaanthony - События
WindowCloseпереименованы вWindowClosing; автор: @leaanthony - Сборки фронтенда теперь используют окружение vite “development” или “production” в зависимости от типа сборки; автор: @leaanthony
- Обновление до go-webview2 v1.19; автор: @leaanthony
- Обеспечено использование форка taskfile; автор: @leaanthony
- Форк Taskfile обновлён для устранения проблем с версией при установке с помощью
- Использование форка Taskfile для устранения проблем с версией при установке с помощью
service.OnStartupтеперь завершает работу приложения при ошибке и запускает- Обмен сообщениями о нажатиях на значок в области уведомлений переработан для лучшего соответствия действиям пользователя; автор:
- Во встраиваемые ресурсы добавлен
all:frontend/distдля поддержки фреймворков, которые создают - Рефакторинг Taskfile; автор: leaanthony, см.
- Обновление до
go-webview2v1.0.16; автор: - Тип
Screenисправлен: теперь он включаетID, а неId; автор: - Версия Wails в
go.mod.tmplобновлена для поддержкиapplication.ServiceOptions; автор: - Исправлено определение имени сервиса; автор: windom, см.
- mkdocs serve теперь использует Docker; автор: leaanthony
- Конфигурация разработки объединена в
config.yml; автор: - Диалоговое окно значка в области уведомлений теперь по умолчанию использует значок приложения, если он доступен (Windows); автор:
- Улучшено отображение сведений о GPU и памяти в macOS; автор:
- Удалены
WebviewGpuIsDisabledиEnableFraudulentWebsiteWarnings - Изменение API событий:
On/Emit-> пользовательские события,OnApplicationEvent-> - Исправление API событий в Linux; автор: TheGB0077, см.
- [CI] улучшены рабочие процессы и добавлена возможность запускать их также в форках и
AbsolutePosition()переименован вPosition(); автор:- Зависимость Linux WebKit обновлена с webkitgtk2-4.0 до webkit2gtk-4.1, чтобы
- Встроенный скрипт среды выполнения JS теперь является модулем ESM: теги script, импортирующие его
- Пакет
@wailsio/runtimeне публикует свой API вwindow.wails - Модуль API окон
@wailsio/runtime/src/windowтеперь предоставляет содержащий его - API окон JS обновлён в соответствии с текущим
WebviewWindowGo - Генератор привязок теперь по умолчанию использует вызовы по идентификатору. Параметр CLI
-id - Новая структура кода привязок: ранее выходные файлы были организованы по каталогам
- Поле структуры
application.Options.Bindпереименовано в - Новый синтаксис привязки сервисов: экземпляры сервисов теперь необходимо оборачивать в
- Отключение индикатора выполнения в нетерминальной среде или среде CI; автор:
Удалено
- НЕСОВМЕСТИМОЕ ИЗМЕНЕНИЕ: из параметров
WindowsWindowдля отдельных окон удаленыEnabledFeatures,DisabledFeaturesиAdditionalLaunchArgs. Вместо них используйте параметры уровня приложенияOptions.Windows.EnabledFeatures,Options.Windows.DisabledFeaturesиOptions.Windows.AdditionalBrowserArgs. Эти флаги глобально применяются к общей среде WebView2 (#4559); автор: @leaanthony - Удалена нативная реализация
IDropTargetв Windows в пользу подхода на основе JavaScript (как в v2) - Удалена зависимость github.com/wailsapp/mimetype в пользу расширенной карты расширений и http.DetectContentType из стандартной библиотеки, что уменьшает размер двоичного файла примерно на 1.2 МБ
- Удалена зависимость gopkg.in/ini.v1: для файлового менеджера Linux реализован минимальный синтаксический анализатор файлов .desktop, что экономит около 45 КБ
- Удалить samber/lo из кода среды выполнения, используя пакет slices стандартной библиотеки Go 1.21+ и минимальные внутренние вспомогательные функции, что сократит размер примерно на 310 КБ
- Удалить отладочные вызовы printf из обработчика схем URL для Darwin (#4834)
- ИЗМЕНЕНИЕ, НАРУШАЮЩЕЕ ОБРАТНУЮ СОВМЕСТИМОСТЬ: удалено событие
linux:WindowLoadChanged; вместо него используйтеlinux:WindowLoadFinished, чтобы определять завершение загрузки WebView (#3896), автор — @leaanthony
Изменения, нарушающие обратную совместимость
- Рефакторинг API менеджеров: плоская структура API приложения преобразована в упорядоченный набор менеджеров для лучшей организации кода и упрощения поиска возможностей; автор — @leaanthony, изменение внесено в #4359
app.NewWebviewWindow()→app.Window.New()app.CurrentWindow()→app.Window.Current()app.GetAllWindows()→app.Window.GetAll()app.WindowByName()→app.Window.GetByName()app.EmitEvent()→app.Event.Emit()app.OnApplicationEvent()→app.Event.OnApplicationEvent()app.OnWindowEvent()→app.Event.OnWindowEvent()app.SetApplicationMenu()→app.Menu.SetApplicationMenu()app.OpenFileDialog()→app.Dialog.OpenFile()app.SaveFileDialog()→app.Dialog.SaveFile()app.MessageDialog()→app.Dialog.Message()app.InfoDialog()→app.Dialog.Info()app.WarningDialog()→app.Dialog.Warning()app.ErrorDialog()→app.Dialog.Error()app.QuestionDialog()→app.Dialog.Question()app.NewSystemTray()→app.SystemTray.New()app.GetSystemTray()→app.SystemTray.Get()app.ShowContextMenu()→app.ContextMenu.Show()app.RegisterKeybinding()→app.KeyBinding.Register()app.UnregisterKeybinding()→app.KeyBinding.Unregister()app.GetPrimaryScreen()→app.Screen.GetPrimary()app.GetAllScreens()→app.Screen.GetAll()app.BrowserOpenURL()→app.Browser.OpenURL()app.Environment()→app.Env.GetAll()app.ClipboardGetText()→app.Clipboard.Text()app.ClipboardSetText()→app.Clipboard.SetText()- Методы Service переименованы:
Name->ServiceName,OnStartup->ServiceStartup,OnShutdown->ServiceShutdown; автор — @leaanthony - Методы
PathиPathsперенесены в пакетapplication; автор — @leaanthony - Меню приложения теперь доступно только в macOS; автор — @leaanthony
v3.0.0-alpha.78 - 2026-04-21
Добавлено
Исправлено
v3.0.0-alpha.77 - 2026-04-18
Исправлено
v3.0.0-alpha.76 - 2026-04-17
Исправлено
v3.0.0-alpha.75 - 2026-04-16
Исправлено
v3.0.0-alpha.74 - 2026-03-01
Добавлено
Исправлено
v3.0.0-alpha.73 - 2026-02-27
Исправлено
v3.0.0-alpha.72 - 2026-02-16
Исправлено
v3.0.0-alpha.71 - 2026-02-10
Добавлено
Исправлено
v3.0.0-alpha.70 - 2026-02-09
Добавлено
Исправлено
v3.0.0-alpha.69 - 2026-02-08
Добавлено
Исправлено
v3.0.0-alpha.68 - 2026-02-07
Добавлено
Изменено
Исправлено
v3.0.0-alpha.67 - 2026-02-04
Добавлено
Изменено
Исправлено
v3.0.0-alpha.66 - 2026-02-03
Добавлено
Изменено
Исправлено
Удалено
v3.0.0-alpha.65 - 2026-02-01
Добавлено
v3.0.0-alpha.64 - 2026-01-26
Добавлено
v3.0.0-alpha.63 - 2026-01-25
Исправлено
v3.0.0-alpha.62 - 2026-01-22
Исправлено
v3.0.0-alpha.61 - 2026-01-20
Исправлено
v3.0.0-alpha.60 - 2026-01-14
Исправлено
v3.0.0-alpha.59 - 2026-01-11
Изменено
v3.0.0-alpha.58 - 2026-01-09
Исправлено
v3.0.0-alpha.57 - 2026-01-05
Изменено
Исправлено
v3.0.0-alpha.56 - 2026-01-04
Добавлено
Изменено
Исправлено
Удалено
v3.0.0-alpha.55 - 2026-01-02
Изменено
Исправлено
Удалено
v3.0.0-alpha.54 - 2025-12-29
Добавлено
Исправлено
Удалено
v3.0.0-alpha.53 - 2025-12-27
Добавлено
Исправлено
v3.0.0-alpha.52 - 2025-12-26
Исправлено
v3.0.0-alpha.51 - 2025-12-23
Исправлено
v3.0.0-alpha.50 - 2025-12-21
Изменено
v3.0.0-alpha.49 - 2025-12-18
Изменено
v3.0.0-alpha.48 - 2025-12-16
Добавлено
Изменено
Исправлено
v3.0.0-alpha.47 - 2025-12-15
Добавлено
Исправлено
v3.0.0-alpha.46 - 2025-12-14
Добавлено
Удалено
v3.0.0-alpha.45 - 2025-12-13
Добавлено
Исправлено
v3.0.0-alpha.44 - 2025-12-12
Добавлено
Изменено
Исправлено
v3.0.0-alpha.43 - 2025-12-11
Добавлено
v3.0.0-alpha.42 - 2025-12-10
Добавлено
v3.0.0-alpha.41 - 2025-11-23
Исправлено
v3.0.0-alpha.40 - 2025-11-13
Исправлено
v3.0.0-alpha.39 - 2025-11-12
Добавлено
Изменено
v3.0.0-alpha.38 - 2025-11-04
Добавлено
Изменено
Исправлено
v3.0.0-alpha.37 - 2025-11-02
Исправлено
v3.0.0-alpha.36 - 2025-10-15
Исправлено
v3.0.0-alpha.35 - 2025-10-14
Исправлено
v3.0.0-alpha.34 - 2025-10-06
Добавлено
Исправлено
v3.0.0-alpha.33 - 2025-10-04
Исправлено
v3.0.0-alpha.32 - 2025-10-02
Исправлено
v3.0.0-alpha.31 - 2025-09-27
Исправлено
v3.0.0-alpha.30 - 2025-09-26
Исправлено
v3.0.0-alpha.29 - 2025-09-25
Добавлено
Изменено
Исправлено
v3.0.0-alpha.29 - 2025-09-25
Добавлено
Изменено
Исправлено
v3.0.0-alpha.27 - 2025-09-07
Исправлено
v3.0.0-alpha.26 - 2025-08-24
Добавлено
v3.0.0-alpha.25 - 2025-08-16
Изменено
больше не игнорируются и переопределяют значение конфигурации.
v3.0.0-alpha.24 - 2025-08-13
Добавлено
v3.0.0-alpha.23 - 2025-08-11
Исправлено
v3.0.0-alpha.22 - 2025-08-10
Добавлено
Изменено
- Исправлены чрезмерно широкие зависимости пакетов Linux и устаревшие зависимости RPM.
v3.0.0-alpha.21 - 2025-08-07
Исправлено
v3.0.0-alpha.20 - 2025-08-06
Исправлено
v3.0.0-alpha.19 - 2025-08-05
Добавлено
Исправлено
v3.0.0-alpha.18 - 2025-08-03
Добавлено
Исправлено
v3.0.0-alpha.17 - 2025-07-31
Исправлено
v3.0.0-alpha.16 - 2025-07-25
Добавлено
v3.0.0-alpha.15 - 2025-07-25
Добавлено
v3.0.0-alpha.14 - 2025-07-25
Добавлено
v3.0.0-alpha.12 - 2025-07-15
Добавлено
Исправлено
v3.0.0-alpha.11 - 2025-07-12
Добавлено
v3.0.0-alpha.10 - 2025-07-06
Несовместимые изменения
Добавлено
Исправлено
Изменено
v3.0.0-alpha.9 - 2025-01-13
Добавлено
Исправлено
Изменено
v3.0.0-alpha.8.3 - 2024-12-07
Изменено
v3.0.0-alpha.8.2 - 2024-12-07
Изменено
go install, автор: @leaanthony
v3.0.0-alpha.8.1 - 2024-12-07
Изменено
go install, автор: @leaanthony
v3.0.0-alpha.8 - 2024-12-06
Добавлено
@atterpac в #3909 ansxuman в #3902 atterpac в #3867 — atterpac в #3829 leaanthony FerroO2000 в #3856 #3873 leaanthony размещено в заданных координатах X/Y — leaanthony в #3885 ansxuman и leaanthony в #3823 — leaanthony в #3766 leaanthony в #3888 leaanthony. -
Изменено
service.OnShutdownдля всех ранее запущенных сервисов — @atterpac в #3920 @atterpac в #3907 вложенные папки — @atterpac в #3887 #3748 leaanthony etesam913 в #3778 northes в #3836 #3827 leaanthony @leaanthony @leaanthony (заменено параметрами EnabledFeatures и DisabledFeatures) — leaanthony
Исправлено
переменная канала — @michael-freling в #3925 ansxuman в #3924 #3898 #3901 в #3886 leaanthony в #3841 PasteAndMatchStyle роль в меню редактирования на Darwin — johnmccabe в #3839 #3840 в #3854 — kodflow @leaanthony различаются — @nickisworking в #3789
v3.0.0-alpha.7 — 2024-09-18
Добавлено
mmghv в #3665 #3682 atterpac и leaanthony в #3570
Изменено
События приложения OnWindowEvent → события окна — leaanthony #3734 ветки с префиксом v3/ или v3- — stendler в #3747
Исправлено
etesam913 в #3742 atterpac в #3721 atterpac в #3675 #1811 в #3614 — @stendler #3720 — leaanthony #3693 — @DeltaLaboratory #3720 — leaanthony #3693 — @DeltaLaboratory leaanthony #3746 — @stendler leaanthony
v3.0.0-alpha.6 — 2024-07-30
Исправлено
v3.0.0-alpha.5 — 2024-07-30
Добавлено
#3580 #3580 щелчок по значку — @5aaee9 в #2991 #2618 @fbbdev в #3282 @Atterpac в #3022 @marcus-crane в #3146 PR PR @fbbdev в #3281 aba82cc на основе PR от @Mai-Lapyst @fbbdev в #3295 @fbbdev в #3295 @fbbdev в #3295 пакет npm — @fbbdev в #3334 в #3354 WAILS_VITE_PORT — @abichinger в #3429 @abichinger в #3431 @bruxaodev в #3667 @OlegGulevskyy в #3674
Исправлено
#3606 tmclane в #3515 atterpac в #3512 atterpac в #3477 от Atterpac в #3320. в #3306. #2972. #2982 mmghv в #2750. #2753. jaybeecave в #3052. @pylotlight в PR установлен. Добавлено @pylotlight в PR PR пробелы — @leaanthony. thomas-senechal в PR #3207 thomas-senechal в PR #3208 прикреплённое окно tw1nk в PR #3271 #3273 @fbbdev в #3279 FRONTEND_DEVSERVER_URL присутствует. #3299 @fbbdev в #3295 обработчики событий от @fbbdev в #3295 @abichinger в #3330 генератор от @fbbdev в #3334 генератор от @fbbdev в #3334 @abichinger в #3346 @hfoxy в #3417 @hfoxy в #3426 @fbbdev в #3431 @fbbdev в #3431 от @pekim в #3458 @robin-samuel. PR #3466 от @5aaee9. @windom в #3636. Windows от @bruxaodev в #3691.
Изменено
mmghv в #3611 поддержка Ubuntu 24.04 LTS от atterpac в #3461 должен иметь атрибут type="module". Автор: @fbbdev, в #3295 объект и не запускает систему WML. Это сделано для улучшения инкапсуляции. При необходимости систему WML можно запустить вручную, вызвав новый метод WML.Enable. Встроенный скрипт среды выполнения JS по-прежнему автоматически выполняет обе операции. Автор: @fbbdev, в #3295 объект окна в качестве экспорта по умолчанию. Импортировать отдельные методы с помощью синтаксиса именованного импорта или импорта пространства имён ESM больше нельзя. API. У некоторых методов изменились имя или прототип, а именно: Screen заменён на GetScreen; GetZoomLevel/SetZoomLevel заменены на GetZoom/SetZoom; GetZoom, Width и Height теперь возвращают значения напрямую, а не оборачивают их в объекты. Автор: @fbbdev, в #3295 удалён. Чтобы вернуться к вызовам по имени, используйте параметр CLI -names. Автор: @fbbdev, в #3468 именовались по содержащим их пакетам; теперь используются полные пути импорта Go, включая путь модуля. Автор: @fbbdev, в #3468 application.Options.Services. Автор: @fbbdev, в #3468 вызов application.NewService. Автор: @fbbdev, в #3468 @DeltaLaboratory в #3574