Release v1.1.6
Downloads
macOS (Universal) - Supports both Apple Silicon and Intel
Option 1: Installation Script (Recommended)
Install with a single command (version v1.1.6):
curl -fsSL https://raw.githubusercontent.com/Leadaxe/singbox-launcher/develop/scripts/install-macos.sh | bash -s -- v1.1.6The script will:
- Download the release archive
- Extract and install to
/Applications/ - Fix macOS quarantine attributes and permissions
- Launch the application automatically
Option 2: Manual Installation
- Download:
singbox-launcher-v1.1.6-macos.zip - Extract the ZIP file
- Remove quarantine attribute (required):
xattr -cr "singbox-launcher.app" && chmod +x "singbox-launcher.app/Contents/MacOS/singbox-launcher"
- Double-click
singbox-launcher.appto run- If macOS blocks the app, go to System Settings → Privacy & Security and click "Open Anyway"
- Alternatively, right-click the app and select "Open" (first time only)
Windows (amd64)
- Download:
singbox-launcher-v1.1.6-win64.zip - Extract the ZIP file to a folder, for example:
C:\Program Files\singbox-launcher\ - Run
singbox-launcher.exefrom that folder- You may need administrator rights to install to Program Files
- The launcher will automatically download
sing-boxandwintun.dllon first launch
Windows 7 (x86, legacy)
- Download:
singbox-launcher-v1.1.6-win7-32.zip - Extract the ZIP file to a folder and run
singbox-launcher-win7-32.exe- For Windows 7 / 32-bit or legacy compatibility only
Linux Support
Checksums
See checksums.txt for SHA256 checksums of all files.
v1.1.6 — macOS 11 Big Sur fix + Add source from file + self-describing debug API
Fixes a launch crash on macOS 11 Big Sur (TLS verification used a macOS 12+ system API), adds Add source from file and a self-describing debug API, and makes the saved-states switcher safer. No config migration is needed.
Чинит краш при запуске на macOS 11 Big Sur (проверка TLS использовала системный API только для 12+), добавляет «Добавить источник из файла» и самоописываемый debug API, делает переключатель сохранённых состояний безопаснее. Миграция не нужна.
EN
Highlights
- Runs on macOS 11 Big Sur again. Release builds crashed on launch on Big Sur (dock icon bounced, then nothing): Go 1.25 verifies TLS via a macOS 12+ system API (
SecTrustCopyCertificateChain) that doesn't exist on 11.x, so the app aborted on its first HTTPS request (update check / "Free Community Servers"). The launcher now uses a custom root pool from the system keychain (pure-Go verifier, no 12+ symbol) and the darwin build targetsminos 11.0via the external linker. Also fixed: the config wizard window no longer overflows small (1280×800) screens — its height adapts so the navigation buttons stay above the Dock. Verified on a real Mac running Big Sur 11.7.11. (SPEC 081) - Saved states switcher is safer. The Core dashboard "Switch state…" dropdown now lists ● Current (active) as the first item and shows it as the selected value, so a stray tap on the top of the list is a no-op instead of switching away from the live state. (Switching to a named state already asks first — Save current / Discard / Cancel — that confirm dialog is unchanged.)
- Add source from file. WG/AmneziaWG configs are often shared as files — the Sources tab now has an Add from file button: pick a
.conf([Interface]/[Peer]), a.vpn(vpn:// link) or a.txtof proxy links, and it imports through the same path as the Add field. (SPEC 079) - Self-describing debug API.
GET /now returns a manifest (api/spec/launcher/core/auth, a version-pinned docs link, and the endpoint list) andGET /helpreturns just the endpoint list — point an agent at the base URL + token and it discovers the surface itself. Settings → Debug API has a new Copy API info button that copies a connection card (base URL, token, versions, docs) to hand to an agent. (SPEC 078) - Debug API hardening.
PATCH /state/dnswith an empty/keyless body ({}) now returns422instead of silently wiping all DNS servers/rules.GET /+/helpnow advertise the real verbs each endpoint accepts (e.g.GET/PATCHfor state writes,GET/DELETEfor a traffic session,GET/POSTfor verbose) — the User-Agent endpoint was mislabeledPUT(it servesPATCH), and the write endpoints were missing from the list.
Technical / Internal
- macOS Big Sur fix (SPEC 081):
core/tls_roots_darwin.goloads roots from the system keychains via/usr/bin/securityand installs atls.Config{RootCAs}on bothhttp.DefaultTransport(barehttp.Client{}callsites likeget_free_dialog.go) andcore.defaultSharedTransport, socrypto/x509uses the pure-Go verifier and never calls the 12+SecTrust*API.build/build_darwin.shadds-linkmode=external -extldflags=-mmacosx-version-min=$MIN_MACOS_VERSION(Go's internal linker ignoresCGO_LDFLAGSmin-version and stampsminos 12.0). Wizard height:clampWizardSizecaps the window andtabs/scroll_height.go::adaptiveScrollSizereplaces fixed 620/400 scroll minimums on the Outbounds/Settings tabs. core_dashboard_tab.go:refreshStateSelectorprepends the localizedcore.state_current_optionanchor andselectCurrentStateSilently()keeps it shown as selected (without firing OnChanged) on refresh and on confirm-dialog cancel; OnChanged treats the current/empty selection as a no-op.core/debugapi: single endpoint registry (s.endpoints()) drives routing,GET /andGET /help(single source of truth — docs can't drift from wiring);DocsURL()pins the docs link to the release tag (dev → main);ConnectionCardJSON()builds the settings card.handleStateDNSPATCH probes raw keys to refuse a keyless clear (422). Tests:manifest_test.go(endpoints wired),dns_patch_guard_test.go(empty-body guard + advertised methods not 405). (SPEC 078)
RU
Основное
- Снова работает на macOS 11 Big Sur. Релизные сборки падали на Big Sur при запуске (иконка в доке подпрыгивала — и ничего): Go 1.25 проверяет TLS через системный API macOS 12+ (
SecTrustCopyCertificateChain), которого на 11.x нет, поэтому приложение вылетало на первом HTTPS-запросе (проверка обновлений / «Free Community Servers»). Теперь лаунчер использует свой пул корневых сертификатов из системного keychain (чистый Go-верификатор, без символа 12+), а darwin-сборка таргетитminos 11.0через внешний линкер. Заодно исправлено: окно визарда конфигурации больше не вылезает за маленькие экраны (1280×800) — высота адаптируется, кнопки навигации остаются над Dock. Проверено на реальном маке с Big Sur 11.7.11. (SPEC 081) - Переключатель сохранённых состояний стал безопаснее. В дашборде Core выпадающий список «Сменить state…» теперь первым пунктом показывает ● Текущее (активно) и отображает его как выбранное — случайный тап по верху списка ничего не делает, а не уводит с живого состояния. (Переключение на именованный state по-прежнему спрашивает — Сохранить текущее / Не сохранять / Отмена — этот модал не менялся.)
- Добавление источника из файла. Конфиги WG/AmneziaWG часто раздают файлом — на вкладке Sources появилась кнопка «Добавить из файла»: выбираете
.conf([Interface]/[Peer]),.vpn(ссылка vpn://) или.txtсо ссылками — импорт идёт тем же путём, что и поле Add. (SPEC 079) - Самоописываемый debug API.
GET /теперь отдаёт манифест (api/spec/launcher/core/auth, ссылку на доку, привязанную к версии, и список эндпоинтов), аGET /help— только список эндпоинтов: дай агенту base URL + токен, и он сам разберётся. В Settings → Debug API появилась кнопка Копировать инфо API — кладёт в буфер карточку подключения (base URL, токен, версии, docs) для передачи агенту. (SPEC 078) - Усиление debug API.
PATCH /state/dnsс пустым/безключевым телом ({}) теперь возвращает422, а не молча стирает все DNS-серверы/правила.GET /и/helpтеперь показывают реальные методы каждого эндпоинта (GET/PATCHдля записи state,GET/DELETEдля traffic-сессии,GET/POSTдля verbose) — у User-Agent был ошибочно указанPUT(работаетPATCH), а write-эндпоинты вообще отсутствовали в списке.
Техническое / Внутреннее
- Фикс macOS Big Sur (SPEC 081):
core/tls_roots_darwin.goгрузит корни из системных keychain через/usr/bin/securityи ставитtls.Config{RootCAs}наhttp.DefaultTransport(barehttp.Client{}— напр.get_free_dialog.go) и наcore.defaultSharedTransport, чтобыcrypto/x509шёл чистым Go-верификатором и не звал APISecTrust*(12+). Вbuild/build_darwin.shдобавлен-linkmode=external -extldflags=-mmacosx-version-min=$MIN_MACOS_VERSION(internal-линкер Go игнорирует min-version изCGO_LDFLAGSи стампитminos 12.0). Высота визарда:clampWizardSizeограничивает окно,tabs/scroll_height.go::adaptiveScrollSizeзаменяет фиксированные минимумы 620/400 на табах Outbounds/Settings. core_dashboard_tab.go:refreshStateSelectorдобавляет первым локализованный якорьcore.state_current_option, аselectCurrentStateSilently()держит его выбранным (без триггера OnChanged) на refresh и на Cancel модала; OnChanged трактует выбор текущего/пустого как no-op.core/debugapi: единый реестр (s.endpoints()) питает роутинг,GET /иGET /help(один источник правды — дока не расходится с кодом);DocsURL()привязывает ссылку на доку к релизному тегу (dev → main);ConnectionCardJSON()строит карточку для настроек. Тесты вmanifest_test.goпроверяют, что каждый заявленный эндпоинт реально зарегистрирован. (SPEC 078)