Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<Nullable>enable</Nullable>
<ImplicitUsings>disable</ImplicitUsings>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Version>0.3.4</Version>
<Version>0.4.0</Version>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<RuntimeFrameworkVersion>10.0.14</RuntimeFrameworkVersion>
<IncludeSourceRevisionInInformationalVersion>true</IncludeSourceRevisionInInformationalVersion>
Expand All @@ -14,6 +14,6 @@
<DefineConstants>$(DefineConstants);MEGAPROXY_DEV</DefineConstants>
<BaseIntermediateOutputPath>obj/dev/</BaseIntermediateOutputPath>
<BaseOutputPath>bin/dev/</BaseOutputPath>
<Version>0.3.4-dev</Version>
<Version>0.4.0-dev</Version>
</PropertyGroup>
</Project>
25 changes: 25 additions & 0 deletions release-notes/v0.4.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# v0.4.0

## English

- License re-scope and installer acceptance: repository root license changed to MIT while src/ and native/core/ contain GPL text, the interactive installer now shows an offline license acceptance page that must be checked to advance, the installer defaults to per-user for new installs and preserves scope on upgrades, silent installs skip the acceptance step, and packaging now includes LICENSING.md plus per-component license files in the payload.
- App update gate depends on WindowsOptions["version"]: if WindowsOptions["version"] is present and not equal to 1, ThroughProxy(...) returns false regardless of the previous option, and Enabled(...) returns true for unsupported version values, changing when update-through-proxy is honored.
- Import/export sanitization and fingerprint normalization: portable configuration import/export now runs ConfigurationFields.Project to prune unknown/unsupported fields and to normalize TLS/SSH fingerprint tokens to canonical uppercase tokens (e.g. CHROME_ANDROID → normalized), and the UI portable-fingerprint controls were updated to those tokens.
- TLS/uTLS behavior and removed "native" special-case: the code no longer treats a "native" fingerprint as a special branch and always enables the uTLS object with a resolved fingerprint; UI options are reduced to DEFAULT, CHROME_ANDROID, FIREFOX_ANDROID, EDGE_ANDROID and RANDOMIZED, which are mapped to lower-case core strings for outbound traffic.
- IPv6 handling change: per-profile allowIpv6 is ignored on Windows (ProxyProfile.AllowIpv6 returns true) and the client no longer injects ip_version=6 reject rules or switches to an ipv4-only DNS strategy when imported settings attempted to disable IPv6.
- Tray icon recovery: MainWindow now watches for TaskbarCreated and polls the NotifyIcon registration, restoring the tray icon automatically if Explorer/taskbar recreation or missing registration is detected.
- Shared SSH fingerprint propagation: a shared SSH fingerprint in settings.SharedOptions["ssh"]["fingerprint"] is applied into SSH and SSH_JUMP profile outbound data at build time, and the profile editor surfaces this global SSH fingerprint when present.
- Source packaging changes: release/source packaging scripts now copy LICENSING.md into the payload and can append linked Go module sources, pinned Go runtime sources and a hash-verified WiX source snapshot into the published source ZIP, and the bundling code fails early if required dependency sources are missing.
- Documentation and UX clarifications: docs were updated to state that portable exports include passwords/private keys by default (documented policy), reverse-DNS and connection-row refresh happen only while the Connections tab is focused, and release notes now document VirusTotal submission as a publication policy (the repo contains the documentation and packaging scripts that change archive composition).

## Русский

- Перераспределение лицензий и приём лицензии в установщике: корневая LICENSE переведена на MIT, в src/ и native/core/ оставлены тексты под GPL, в интерактивном установщике появился офлайн-экран принятия лицензии, который нужно отметить для продолжения; новый установщик по умолчанию предлагает установку для текущего пользователя и сохраняет область установки при обновлении, тихие установки пропускают экран принятия, а пакетный сборщик теперь включает LICENSING.md и файлы лицензий по компонентам в payload.
- Зависимость обновлений от WindowsOptions["version"]: если WindowsOptions["version"] присутствует и не равен 1, ThroughProxy(...) всегда возвращает false независимо от прежней опции, а Enabled(...) возвращает true для неподдерживаемых значений версии, что меняет условие использования обновлений через прокси.
- Санитизация конфигураций и нормализация отпечатков: импорт/экспорт портируемой конфигурации теперь проходят через ConfigurationFields.Project, который удаляет неизвестные/неподдерживаемые поля и нормализует TLS/SSH‑отпечатки к каноническим верхним токенам (например, CHROME_ANDROID), UI‑элементы выбора отпечатка приведены к этим токенам.
- uTLS и удаление ветви "native": код больше не обрабатывает "native" как особый случай и всегда включает объект uTLS с вычисленным отпечатком; в UI остались только DEFAULT, CHROME_ANDROID, FIREFOX_ANDROID, EDGE_ANDROID и RANDOMIZED, которые затем отображаются в ядре в виде нижних строчных строк для исходящего трафика.
- Работа с IPv6: флаг allowIpv6 на уровне профиля игнорируется в Windows (ProxyProfile.AllowIpv6 всегда true), импортированные настройки, отключающие IPv6, больше не создают правил-отказов ip_version=6 и не переключают DNS‑стратегию в ipv4‑only.
- Восстановление иконки в трее: MainWindow отслеживает TaskbarCreated и опрашивает регистрацию NotifyIcon, автоматически восстанавливая иконку в трее при перепуске Explorer/восстановлении панели задач или при пропаже регистрации.
- Глобальный SSH-отпечаток: общий SSH‑отпечаток в settings.SharedOptions["ssh"]["fingerprint"] применяется к профилям типа SSH и SSH_JUMP при построении outbound, а редактор профиля отображает информацию о глобальном SSH‑отпечатке, если он установлен.
- Изменения в упаковке исходников: скрипты упаковки теперь копируют LICENSING.md в payload и могут добавлять в ZIP исходники связанных Go‑модулей, зафиксированные исходники рантайма Go и хеш‑проверенный WiX‑снимок, причём сборка завершается ошибкой при отсутствии ожидаемых зависимостей.
- Документация и UX: обновлены документы — экспорт портируемых конфигураций теперь в тексте документации указан как включающий пароли/ключи по умолчанию, обратный DNS и обновление строк соединений выполняются только при открытой вкладке Connections, а в релизных заметках задокументирована политика отправки сборок в VirusTotal (это зафиксировано в документации и скриптах упаковки).
Loading