3016 Commits
Author SHA1 Message Date
NickVs2015 02838a94d5 fix: add new dep to test (#3301) 2026-10-20 10:22:09 +08:00
NickVs2015 9a1200d6f3 fix: build libagw with go 1.27.1 (#3303) 2026-10-20 10:21:53 +08:00
NickVs2015andvkamn ddde43635e feat: local proxy mode (#3166)
* fix: share double-stop guard via VpnProtocol base class

* feat: add local proxy core module

* feat: local proxy settings api

* feat: wire local proxy into app controllers

* feat: local proxy settings ui

* feat: arbitrate shared xray engine ownership via ipc tokens

* fix: remove connection type

* chore: add qthttpserver to desktop ci qt modules

* fix: local proxy port fallback and active port reporting

* fix: keep text field button aligned when error is shown

* fix: hide local proxy for free servers and guard device unlink

* fix: show local proxy state per server

* fix: anchor text field button to content

* fix: adapt local proxy pages to design

* fix: copy logic and port logic

* refactor: move local proxy files to controllers and utils

* refactor: merge local proxy into LocalProxyController

* refactor: reuse gateway config request and keep local proxy state in memory

---------

Co-authored-by: vkamn <vk@amnezia.org>
2026-10-18 21:25:04 +08:00
vkamn ffba1cb2a4 chore: minor ui fixes (#3295)
* fix: sync ds component sizes with updated figma

* fix: hover only on action buttons in list rows, standalone country row
2026-10-17 23:51:22 +08:00
vkamn 30ff3451c7 fix: prepare gateway request (#3291)
* fix: prepare the gateway request once instead of a blocking callback per attempt

* chore: libagw 1.0.8, gateway and failover timeouts 6s, health check 1s
2026-10-16 00:10:29 +08:00
vkamn db951e9928 chore: minor ui fixes (#3290)
* chore: change amnezia hosting description

* fix: ios safe areas and ds component alignment

- extend window into ios safe areas, pass insets to PageController
- use dark interface style and portrait-only orientation on iphone
- drop bottom inset while keyboard is open
- align controls with figma: title-only cards, caption height,
  selectable list items, nav bar spacing, chip hover, switch rows

* fix: news settings icon unread badge

* fix: align ds effects with figma

- three-layer selection glow for switch, radio and connect ring
- connect button disk with glow in all states
- snackbar elevate shadow spread, dropdown panel shadow
- backdrop blur for loading overlay container
- pressed state layer 0.1 for icon buttons, segments, list items, cards

* refactor: remove Qt5Compat.GraphicalEffects
2026-10-15 23:50:51 +08:00
vkamn a36399a4c3 chore: minor ui fixes (#3289) 2026-10-15 12:58:24 +08:00
vkamn 8940f8e273 chore: minor ui fixes (#3288) 2026-10-15 12:13:31 +08:00
NickVs2015 705a373d51 feat: cover test gateway service config import (#3239)
* feature: cover gateway service config import

* fix: use AmneziaApplication in gateway service import test

* feature: cover gateway service update

* fix: drain gateway workers before test teardown
2026-10-14 21:52:29 +08:00
vkamn 3d4a45246a fix: fix missing includes (#3281) 2026-10-14 11:28:24 +08:00
vkamn 11355e1de0 feat: new design system (#3280)
* refactor: focus controller refactoring

* feat: update to new design system

* feat: update to new desing system

* chore: bump version
2026-10-14 11:13:36 +08:00
yp 3e8077f2ca feat: split app/tunnel logs viewer (#3262)
* feat: split app/tunnel log streams and add in-app log viewer

* fix: report real save result on android

* remove dead logging code & open qt log on start, stop ne logging on auto-off, pin log date locale

* drop dead share api and simplify logs ui components

* add ru strings for logs redesign
2026-10-13 22:10:30 +08:00
yp c52b1a50a8 fix: hint xray settings file on main import (#3276) 2026-10-13 21:26:55 +08:00
yp 2c0f169946 fix: location separation texts (#3275) 2026-10-13 21:26:20 +08:00
vkamn 693d00ded5 feat: use libagw (#3028)
* feat: use libagw

* feat: add conanfile for libagw

* chore: fix android build with agw

* refactor: gateway error code parsing

* fix: build fixes

* fix: return proxy cache

* chore: update link to libagw

* fix: libagw 1.0.6, log request trace, persist state synchronously

* chore: fetch libagw as a release archive with sha256 instead of git clone
2026-10-13 21:25:58 +08:00
Yakimov GrigoryandGrigory Yakimov f1af8efb4b feat: add Thai (th_TH) localization (#3253)
* Add Thai language

* Update amneziavpn_th_TH.ts

* Add small test for check languages

---------

Co-authored-by: Grigory Yakimov <GYakimov@alfabank.ru>
2026-10-12 11:50:24 +08:00
NickVs2015 4c2e950864 fix: restore backup from content:// uri on android (#3218) 2026-10-08 23:59:22 +08:00
yp 9017984b1d fix: rework xray settings - split client/server data, unify saving, fix tls (#3006)
* Feat: split xray client and server settings

* remove test logs

* in-place save and TLS pin

* fixed xhttp/mkcp + tls

* remove check version xray in start connect

* address review findings for the settings split

* reset namespace

* reset namespace

* remove template xray

* fix: stop xray defaults from overwriting entered settings

* revert dropdown selection refactor from the defaults fix

* move save 'updateServerConfig'

* remove comment
2026-10-08 23:58:25 +08:00
yp c5ecf6281f feat: location separation (#3181)
* Feat: location separation

* remove temp code

* remove tab filter

* fixed models

* remove settings button in native configs

* reset & fixed crash focus

* derive country list use-case set from listId

* fixed: search field: Esc on empty field -> passed on, page closes

* country list: three levels, split by full catalog

* favorites: keep unstarred row until list refresh

* favorites on configuration files screen

* split country list by visible locations

* hysteresis for region split: split above 15, merge below 13

* section counters ignore search, follow chip

* empty state: suggest switching keyboard layout

* section header: counter in parentheses on collapsed sections only

* country list: scroll-linked large title header

* current section expanded on entry without overwriting saved collapse

* country list: raise scrollbar above pinned overlays, drawer above it

* qml: collapsing header component, config files header, country list parts extracted

* country list: ignore unknown use case ids from catalog

* country list: use case names from catalog (nameLocalized), ui language in model

* country list: collapsed sections kept for the session only, as in the task

* country list: design review fixes

* favorites limit: toast from the mockup with 'show' action

* toast: geometry, typography, shadow and action button from figma
2026-10-08 23:31:05 +08:00
NickVs2015 3e9b70a5f1 feature: bump go toolchain to 1.27.1 (#3238)
* chore: bump go toolchain to 1.27.1

* chore: move go version back into recipe
2026-10-05 09:20:53 +02:00
vkamn 94b51df247 chore: bump version (#3187) 2026-09-18 20:44:38 +08:00
Mezooz de93650a90 fix: make Conan recipes parse on Python < 3.12 (#2870)
Three recipes use f-string syntax that is only valid on Python 3.12+
(PEP 701): reusing the same quote character inside an f-string
expression, and using a backslash inside one.

  recipes/amnezia-xray-bindings/conanfile.py:115
  recipes/tun2socks/conanfile.py:118
  recipes/hev-socks5-tunnel/conanfile.py:63-65

On older interpreters Conan fails to load the recipe with a SyntaxError
before resolving a single dependency, so the build cannot start:

  SyntaxError: unexpected character after line continuation character

This is not platform specific. It is invisible in CI only because
ubuntu-latest ships Python 3.12+. Debian 12 (bookworm), current stable
and the base for Raspberry Pi OS, ships Python 3.11.

Hoist the expressions out of the f-strings, and use single quotes for
the nested string literals. Behaviour is unchanged on every version.

Verified with python3 -m py_compile on Python 3.11.2 (aarch64,
Debian 12): all three fail before this change and pass after.
5.0.3.0
2026-09-18 13:59:14 +08:00
vkamn 448baad3e1 chore: bump version (#3185)
* chore: bump version

* feat: update translations
2026-09-18 13:52:33 +08:00
vkamn aca1b7dc5c feat: add format version for future config refactoring (#3184) 2026-09-18 13:31:07 +08:00
vkamn de36a81b58 chore: change android aqt host (#3182) 2026-09-17 13:43:35 +08:00
vkamn 76b81b43c1 chore: pin install-qt-action to v4.3.1 (#3180) 2026-09-16 22:24:34 +08:00
MrMirDan bea2f5f7db feat: clickable notification (#3178) 2026-09-16 22:22:51 +08:00
Yaroslav Gurov a4d38b5642 fix: windows certificate signing issues (#3175)
* fix: windows certificate signing issues

* fix: add has_ui option and phys/cloud opts
2026-09-16 22:22:19 +08:00
NickVs2015andMrMirDan b76c88bba3 feat: migrate test to main repo (#3172)
* basic tests  adaptation

* fix: ui servers model and controller test awg config

* fix: platforms test builds

* build dirs inspection

* fix: changed paths for tests and tests artifacts

* fix: 'deploy' parent dir

* windows ctest configuration and macos dependencies inspection

* windows check executable and macos copy openssl libs

* windows test executables check and macos copy openssl

* changed some path on windows

* android apk list

* fix: updated android apk path

* Verify Android test files

* fix: build tests only with AMNEZIA_BUILD_TESTS

* fix: copy openssl runtime next to test_openssl_library

* fix: awg2 test config and inverted description checks

* chore: move run_android_tests.sh to client/tests and drop personal paths

* chore: gate tests by option, scope secrets and drop global concurrency in ci

* chore: serialized vps test job, scoped secrets, backup secret guard, test data lookup

---------

Co-authored-by: MrMirDan <8mirdan8@gmail.com>
2026-09-16 17:05:43 +08:00
vkamn eab14fd957 chore: add define for app update (#3164) 2026-09-14 12:37:58 +08:00
SPTApyo 2a8242d306 feat: add French (fr_FR) localization (#3135)
* feat: add French (fr_FR) localization

* fix: align french catalogue with current telegram link
2026-09-09 21:44:51 +08:00
vkamn e60842bd9d chore: cleanup entitlements (#3149)
* chore: cleanup entitlements for macos ne

* chore: bump version
2026-09-09 21:12:03 +08:00
vkamn 327e5985df chore: bump version (#3120) 5.0.2.1 2026-09-03 21:02:31 +08:00
MrMirDan 124da5a499 feat: amnezia.host website button (#3102)
* added amnezia.host website button

* added desktop platform check

* check for IsMacOsNeBuild
2026-09-03 19:10:13 +08:00
NickVs2015 2ee02bc893 fix: log purchaseToken on successful Play purchase (#3108) 2026-09-03 14:02:49 +08:00
MrMirDan 398697c101 chore: added utm for amnezia.org website link in app (#3101) 2026-09-02 21:17:37 +08:00
MrMirDan c8810dde5f chore: changed tg.me links to telegram.me (#3111) 2026-09-02 20:02:35 +08:00
Yaroslav Gurov 9a7db3475f fix: adjust awg selfhosted defaults (#3115) 2026-09-02 20:02:02 +08:00
vkamn 628dd5b6d3 chore: bump version (#3103) 5.0.2.0 2026-08-31 22:52:55 +08:00
vkamn 71b99c799c feat: new update page (#3092) 2026-08-31 20:54:30 +08:00
NickVs2015 0643a2424b fix: fallback to default file picker instead documentsui (#3087) 2026-08-31 20:51:37 +08:00
yp dedfc08cc2 feat: add TProxy (#3034)
* server-side container stack

* core model, enums and install pipeline

* settings UI and setup wizard

* fix workers

* remove debug logs

* address review findings

* fix validate email

* update docker

* remove write port & add default port 443/80
2026-08-31 19:29:48 +08:00
yp dddc181299 feat: server country code l10n (#3069) 2026-08-28 23:10:41 +08:00
vkamn 5689706fd9 fix: various fixes (#3077)
* fix: post install cleanup

* fix: wg show output parsing

* chore: update translations

* fix: finish already expired transactions
2026-08-28 23:09:59 +08:00
5501fbd54e feat: google play iap (#2682)
* Add Google Play Billing Library

* Disable Qt debugger sleep

* Add billing module, provide a separate build for Google Play

* Add a method to detect Google Play build

* Add method to get the list of offers

* Add methods to verify and purchase subscriptions

* refactor: modify response json

* feat: add purchase to UI

* feat: add test purchase android

* fix: merge with new structure, fix payment flow

* fix: build flow for new conan structure

* fix: add build android via Win

* fix: fix multi-ABI filter

* fix: split payment to detect payment type

* fix: add artifact apk

* fix: add check purchase on restore

* fix: release keystore

* fix: copy apk to right path

* fix: separate oss/play build

* fix: simply build AAB

* fix: add custom target for Play billing

* fix: add logs billing

* fix: add support market types, add logs

* fix: revert market field, up android GP version, fix subscription plan parser

* fix: add support getSubscriptionInfo and subscriptions/restore

* fix: update api endpoint and pay logic

* fix: add logs and rename restore func

* fix: add ios logs

* fix: rename restore function, fix icon resource error

* fix: double purchase android

* fix: update Google Play Billing Library to 8.0.0

* fix: prefer free trial subscription offer on Android purchase

Bump APP version to 2137.

* fix: up kotlin version compiler

* fix: sync price for PlayMarket from GP

* fix: add logs for Google Play price merge

* fix: show App Store intro offer discount price in catalog

* feat: add trial support for multi platform, redesign PageSetupWizardApiPremiumInfo

* feat: add logs android

* fix: tighten spacing Change plan and test period tag

* fix: UI text changes

* fix: upgrade existing android subscription and add renew logic

* feat: add support upgrade CP plan without call subscription

* fix: add billing logs for plan

* fix: show upgrade success as notification

* fix: call getSubscriptionInfo/importServiceFromMarket on upgrade instead of skipping

* fix: restore ios prod var

* fix: remove noisy debug logs

* chore: up version code

* fix: getSubscriptionInfo used removed GatewayRequestData after rebase

* fix: aab in sep tasks

* fix: warn before subscription upgrade/downgrade purchase

* chore: add acknowledgePlayPurchase

* refactor: add store purchase controller

* feat: use same acknowledge method as appstore

* fix: IOS add upgrade

* fix: change QML warn message

* refactor: dedupe Play purchase validation and startup billing query

* chore: log purchaseToken through the Android purchase flow

* fix: resolve Android active plan by base plan id

* fix: remove comment

* fix: subscribe to Transaction.updates before Transaction.unfinished

* fix: update days values

* fix: genuine restore failure when another transaction was a duplicate

* fix: remove debug lines and comment

* chore: cleanup logs

---------

Co-authored-by: albexk <albexk@proton.me>
Co-authored-by: vkamn <vk@amnezia.org>
2026-08-28 11:24:38 +08:00
NickVs2015 fc4bf3eb2b chore: bump android version code to 2157 (#3074) 2026-08-28 11:23:05 +08:00
Дневник UNIX'оида c8722c619a chore: added StartupWMClass line to the Desktop Entry (#2968) 2026-08-27 23:18:31 +08:00
HugoFiermein 4c5bb29ab0 fix: fixed wgshow parsing (#3046) 2026-08-27 23:05:51 +08:00
Yaroslav Gurov 4976828914 fix: do not force warning loglevel on Android (#3070) 2026-08-27 16:41:46 +02:00
Zak 5d74b2cbcf fix: preserve app signature and scope launchd socket (#3062)
* fix(macos): preserve signed service plist resource

* fix(macos): bind service socket to loopback
2026-08-27 22:33:28 +08:00