Commit Graph

33 Commits

Author SHA1 Message Date
nineap 3067b42de4 Локали: ключи для ErrorBoundary и UpdateChecker (все 10 языков)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-09 16:36:39 +07:00
nineap 0dd4869cbb api.ts: retry с экспоненциальным backoff для сетевых сбоев
Различает настоящие сетевые сбои/5xx (ретраить) от осмысленных 4xx-ответов
приложения (не ретраить) — раньше единичный сетевой глитч ронял весь флоу
без единой попытки повтора.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-09 16:36:39 +07:00
nineap b8e1e925b3 Добавляет UpdateChecker (десктоп) и React ErrorBoundary
UpdateChecker: динамический импорт @tauri-apps/plugin-updater (no-op вне
Tauri/на мобилке), диалог с прогрессом, downloadAndInstall + relaunch.
ErrorBoundary оборачивает всё приложение — раньше необработанное
исключение в рендере роняло весь SPA в белый экран без возможности
восстановиться без ручной перезагрузки страницы.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-09 16:36:39 +07:00
nineap da77c8d755 Локализует приложение на 10 языков + RTL для арабского и персидского
Добавляет zh-CN, fa, ar, tr, uk, be, vi, uz локали (81 ключ, идентичная
структура) к существующим en/ru; ToggleLanguge.tsx переделан из
бинарного ru/en тумблера в выпадающий список всех 10 языков.

TelegramWeb.tsx был полностью на захардкоженном русском несмотря на импорт
useTranslation — переведён на i18n-ключи. rtlLanguages.ts выносит список
RTL-языков в отдельный .ts-файл (именованный импорт из .js падал на
allowJs). App.tsx реактивно переключает document.dir/lang при смене языка.

Логические CSS-свойства (ps-/pe-/start-/end-/border-e) вместо физических
в badge/button/dialog/select и BurgerMenu — Flexbox иначе визуально
переворачивает детей под dir=rtl, ломая анимацию бургер-меню.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-08 22:52:20 +07:00
nineap 5f6e06589c Вход через Telegram: код из бота вместо сломанного deep-link
Deep-link авторизация в Telegram-виджете не работала (не было отдельной
кнопки для завершения флоу). Заменяет на код-флоу: бот выдаёт разовый код,
пользователь вводит его в Login.tsx/LoginButton.tsx, useAuthStore дергает
loginTelegramCode(). api.ts вместо startTelegramLogin/TelegramLoginSession
получает getBotUsername() (кэширует bot_username из GET /api/v1/config) для
кнопки "Открыть бота".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-08 22:52:04 +07:00
nineap 79c9cb48aa Экран входа как гейт перед подключением, фикс matrix-engine и Android-иконки
Home теперь рендерится только когда isLoggedIn — до этого юзер видит
полноэкранный Login (анонимно/seed/Telegram), а не экран подключения; кнопка
VPN дополнительно блокируется на уровне VpnControl как defense-in-depth.
isLoggedIn — отдельный персистентный флаг, не совпадает с фактом наличия
фонового Ghost-токена (тот может тихо появиться до явного логина).

Заодно: matrix-engine в package.json указывал на путь другого пользователя
(/home/kirill/...) — поправил под текущую машину; прогнал `tauri icon`,
чтобы Android больше не показывал дефолтный логотип Tauri (иконка никогда не
генерировалась для этой платформы); dev-узел Singapore (DEV_IP) переведён на
порт 8443 вслед за прокси.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 18:21:40 +07:00
nineap 0cb6ad2860 Add seed/Telegram login button and traffic usage indicator
New non-blocking login panel on the Home screen (seed backup/restore +
Telegram magic-link via the bot deep-link, polled through the new backend
endpoints) — uses its own popover instead of a full-screen Dialog so the
burger menu stays clickable while it's open. VpnStats now shows a used/limit
usage bar backed by a new useUsageStore.

Also registers tauri-plugin-shell (needed to open the t.me deep-link) and
threads an optional auth token from the app down through TunnelConfig to the
proxy client (desktop + Android), for instances running --require-auth.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 00:31:27 +07:00
nineap bf50824833 local ip fix 2026-07-03 13:31:01 +07:00
nineap 019db11166 matrix fixes and reduce motion 2026-07-02 23:33:06 +07:00
Kirill c852315d34 Add decoy SNI plumbing, bundle wintun.dll, fix flag icons, add docs
- Прокидываем sni (decoy-хост) по обновлённому UDL через весь стек:
  guest-js -> Tauri-команда -> desktop/mobile -> Kotlin spawnSession.
  Список серверов пока статичный (backend еще не отдает sni), но логика
  похода в реальный /api/v1/nodes оставлена под флагом на будущее.
- Бандлим wintun.dll в Windows-инсталлятор через bundle.resources в
  tauri.windows.conf.json - раньше он копировался только для
  локального cargo run/tauri dev, но не попадал в NSIS/MSI.
- Чиним падение мобильной сборки: гитигнорённые UniFFI Kotlin-биндинги
  отстали от обновленного UDL (не хватало параметра sni).
- Флаги стран - локальные SVG вместо react-country-flag в CDN-режиме:
  тот бился об CSP и не грузился офлайн.
- Добавляем дерево README.md по структуре проекта и точечные
  комментарии в неочевидных местах кода.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-02 19:29:29 +07:00
nineap 16760c16ea Country Select to API 2026-06-29 18:38:56 +07:00
nineap af2a694309 change mtu 2026-06-02 16:27:20 +07:00
nineap 6de8968f11 telegram free connection 2026-05-02 18:11:05 +07:00
nineap f836da06d5 matrix update 2026-04-30 17:31:30 +07:00
nineap 6d87ddf674 localization in header 2026-04-30 16:16:59 +07:00
nineap 6891e64c4f killswitch and domain list, also aexcluded apps 2026-04-30 16:12:36 +07:00
nineap d1f53ad84c splas screen update 2026-04-29 19:40:22 +07:00
nineap 0e9bd2b166 loading screen 2026-04-28 12:23:52 +07:00
nineap f620909d63 new logo and fixes btn size 2026-04-05 15:46:11 +07:00
nineap bebb403a60 mtu change and btn size 2026-04-03 19:42:54 +07:00
nineap bd51ac5ddf button update 2026-03-31 14:39:04 +07:00
nineap 17649bd1c0 counter 2026-03-27 17:34:40 +07:00
nineap 46b7f5dfa5 updates 2026-03-27 15:57:26 +07:00
nineap 79369520bb address change and background 2026-03-22 12:49:27 +07:00
nineap 12e7fdf422 desktop app windows 2026-03-20 13:33:52 +07:00
nineap 8d5919f35e theme and lang save. Notification fix 2026-03-19 11:16:38 +07:00
nineap 3321036ae5 android working button version 2026-03-18 20:50:00 +07:00
nineap 8ffc14dfb0 notification off 2026-03-18 20:32:33 +07:00
nineap 8144d64f58 base working button with saved state 2026-03-18 19:59:07 +07:00
nineap d5acfe7448 first working version. tunnel establish 2026-03-12 21:39:03 +07:00
nineap dfc24b8da3 base android logic 2026-03-12 19:10:16 +07:00
nineap 2f7462e299 base vpn android plugin 2026-03-12 17:37:47 +07:00
nineap cdca0a4e49 initial commit 2026-03-11 21:40:32 +07:00