91014a8420
feat(ui): show the active routing scope under the server card so the Сайты split is never invisible
2026-06-16 22:00:12 +03:00
55dada7772
fix(route): empty site list now means a full tunnel, not all-direct — DIRECT_ALL no longer leaves the proxy carrying nothing
2026-06-16 22:00:12 +03:00
f2b234341d
chore(i18n): add graph strings (Peak, per-second suffix); drop unused stat and change-server labels
2026-06-16 21:39:59 +03:00
5cfb893d6e
feat(ui): move connect/disconnect into the server card; replace sent/received/time tiles with a live throughput graph
2026-06-16 21:39:53 +03:00
15cdd397cb
feat(service): add live throughput history ring to VpnState, fed each stats tick; cleared on connect/restart/stop
2026-06-16 21:39:44 +03:00
68aa25f280
feat(i18n): move UI strings to resources, add LocaleManager + Russian locale
...
In-app language switch; default + values-ru, with screen/validation/journal strings externalized.
2026-06-16 16:43:46 +03:00
7877cb49f0
feat(ui): clearer Сайты mode toggle («Сайты из списка: через прокси/напрямую»)
...
Drops misleading «Всё»; explainer states the rest, with a note that the per-app filter applies.
2026-06-16 16:21:40 +03:00
1e4796be2b
chore(tools): device-QA DataStore config injector for the proxy app
2026-06-16 16:04:58 +03:00
4e419146ca
docs: document domain routing, fake-IP data path, and its invariants/limits
2026-06-16 16:04:58 +03:00
ef165b6b9b
feat(ui): add Сайты tab — mode toggle, domain input, geosite search
...
Live geosite category suggestions; edits persist and hot-restart. Shrinks tab padding/size so five tabs fit.
2026-06-16 16:04:32 +03:00
fadb0870e8
feat(net): split routing via hev mapped-DNS + protected direct dial
...
Enable fake-DNS when sites set (force IPv4); LocalSocks5Server routes proxy-vs-direct by domain, dialing direct on the underlying internet network.
2026-06-16 16:04:13 +03:00
e01b0c2a87
feat(route): domain matcher + bundled geosite DB search
...
Suffix/exact/keyword/regex matcher, normalizeDomain, and a hand-rolled geosite.dat parser (MIT v2fly) with category/domain search. Unit-tested.
2026-06-16 16:03:56 +03:00
8ed667d49e
feat(core): add routingMode + routedSites to AppSettings
...
Defaulted (PROXY_ALL, empty) so old persisted state still decodes; feature inert until sites are added.
2026-06-16 16:03:33 +03:00
c73e29a3c4
docs(readme): correct NDK reference, link agent docs in docs/
2026-06-16 12:45:21 +03:00
db12b63c06
docs: add agent onboarding guide (architecture, build/test, conventions, invariants)
2026-06-16 12:45:21 +03:00
0b3f4adc77
test: add JVM unit tests for Shadowsocks AEAD SIP004 vectors and link parser
2026-06-16 12:30:53 +03:00
40adf31985
feat(ui): order journal newest-first; remove duplicate Servers tab header
2026-06-16 12:30:53 +03:00
9b5a3dee1d
fix(import): percent-decode share-link names preserving '+'; reject ambiguous bare IPv6
2026-06-16 12:30:53 +03:00
fbeb15be88
fix(data): snapshot last-known-good config and recover on decode failure instead of wiping
2026-06-16 12:30:53 +03:00
a5681608ed
feat(service): probe upstream after connect, classify failures, reap stuck engine thread
2026-06-16 12:30:53 +03:00
67deab0c8e
fix(socks): require per-session auth on loopback bridge; both-direction idle watchdog; split control/relay dispatchers
2026-06-16 12:30:53 +03:00
1b06c3c01f
fix(upstream): parse bare-LF HTTP proxy headers; document benign protect() failure
2026-06-16 12:30:53 +03:00
6b75c65503
fix(socks5): rewrite unroutable UDP relay to proxy host, connect() socket anti-spoof, validate reply versions
2026-06-16 12:30:53 +03:00
0a01bbe3f6
fix(shadowsocks): treat frame-boundary EOF as clean end; accept empty AEAD chunks like canon
2026-06-16 12:30:55 +03:00
f303cf2892
chore: gitignore local interop QA harness (keys, vendored copies, logs)
2026-06-16 12:30:22 +03:00
v.lagerev
c3c10c92d6
Initial import: vojo proxy — native Android proxy client
...
Kotlin + Jetpack Compose VPN proxy client (Shadowsocks AEAD SIP004,
SOCKS5 RFC1928/1929, HTTP/HTTPS CONNECT) with per-app whitelist via
VpnService and the vendored hev-socks5-tunnel engine (JNI). Includes
the post-review fixes to the connection lifecycle, reconnect teardown,
journal, app-filter auto-reconnect, and the tab/timeline layout.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 12:51:38 +03:00