Denozordec and Claude Sonnet 5.5
6756d2fca5
android: version 2.18.1 (166)
...
CodeQL / pre-check (push) Failing after 5s
CodeQL / analyze (python) (push) Skipped
CodeQL / analyze (ruby) (push) Skipped
FreeBSD / pre-check (push) Failing after 3s
FreeBSD / freebsd (14.4) (push) Skipped
Linux / pre-check (push) Failing after 4s
Linux / latest (apidoc) (push) Skipped
Linux / latest (clang, no, default) (push) Skipped
Linux / latest (clang, no-testable-ke) (push) Skipped
Linux / latest (clang, yes, default) (push) Skipped
Linux / latest (dist) (push) Skipped
Linux / latest (gcc, no, default) (push) Skipped
Linux / latest (gcc, yes, default) (push) Skipped
Linux / latest (no-testable-ke) (push) Skipped
Linux / latest (yes, ld) (push) Skipped
Linux / crypto (ubuntu-latest, botan) (push) Skipped
Linux / older (gcc, ubuntu-22.04, nm) (push) Skipped
Linux / alpine (push) Skipped
macOS / pre-check (push) Failing after 4s
SonarCloud / pre-check (push) Failing after 4s
SonarCloud / sonarcloud (push) Skipped
TKM / pre-check (push) Failing after 3s
Windows / pre-check (push) Failing after 3s
Windows / cross-compile (win32) (push) Skipped
Windows / cross-compile (win64) (push) Skipped
Android / pre-check (push) Failing after 5s
Android / android (push) Skipped
CIFuzz / pre-check (push) Failing after 4s
CIFuzz / fuzzing (undefined) (push) Skipped
CodeQL / analyze-cpp (push) Skipped
FreeBSD / freebsd (15.0) (push) Skipped
Linux / latest (clang, no, all) (push) Skipped
Linux / latest (clang, no-dbg) (push) Skipped
Linux / latest (clang, yes, all) (push) Skipped
Linux / latest (clang, yes, fuzzing) (push) Skipped
Linux / latest (coverage) (push) Skipped
Linux / latest (gcc, no, all) (push) Skipped
Linux / latest (gcc, no, printf-builtin) (push) Skipped
Linux / latest (gcc, yes, all) (push) Skipped
Linux / latest (nm) (push) Skipped
Linux / latest (no-dbg) (push) Skipped
Linux / crypto (ubuntu-22.04, openssl-sys) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-4) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-sys) (push) Skipped
Linux / older (clang, ubuntu-22.04, all) (push) Skipped
macOS / macos (macos-14) (push) Skipped
macOS / macos (macos-latest) (push) Skipped
Windows / native (i686, mingw32, win32) (push) Skipped
Windows / native (x86_64, mingw64, win64) (push) Skipped
CIFuzz / fuzzing (address) (push) Skipped
Linux / latest (clang, no, printf-builtin) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-3) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-awslc) (push) Skipped
Linux / crypto (ubuntu-latest, wolfssl) (push) Skipped
Linux / older (gcc, ubuntu-22.04, all) (push) Skipped
Co-Authored-By: Claude Sonnet 5.5 <[email protected] >
2026-10-14 01:52:12 +07:00
Denozordec and Claude Sonnet 5.5
5998c0fc46
android: Home view model no longer re-reads the Wi-Fi SSID on every signal-strength tick (state recomputed only when the transports change); energy plan: no shared network-callback hub, why
...
Co-Authored-By: Claude Sonnet 5.5 <[email protected] >
2026-10-14 01:44:03 +07:00
Denozordec and Claude Sonnet 5.5
f5b15a0394
android: health check skips probes while inbound tunnel traffic proves liveness (adaptive mode, real probe at least every 5 min) and probes a single target with the screen off; unit tests; energy plan notes keepalive stays at 45 s
...
Co-Authored-By: Claude Sonnet 5.5 <[email protected] >
2026-10-14 01:22:09 +07:00
Denozordec and Claude Sonnet 5.5
38e5fd84bb
android: less idle CPU work: TUN reader waits on poll+eventfd instead of a 1 s select; scenario app polling stops with the screen and slows down when idle; site DNS refresh waits for the screen; ServerActivity and rememberNow loops follow the lifecycle; energy plan
...
Co-Authored-By: Claude Sonnet 5.5 <[email protected] >
2026-10-14 01:18:15 +07:00
Denozordec and Claude Opus 5.5
e0113e3413
android docs: the Final 2026 mockup (143 artboard sources and canvas.json) with an artboard-to-code map; app overview, code map, localization and release guide; AGENTS.md updated; old UI plan marked as archive
...
CodeQL / pre-check (push) Failing after 4s
CodeQL / analyze (python) (push) Skipped
CodeQL / analyze (ruby) (push) Skipped
FreeBSD / pre-check (push) Failing after 4s
FreeBSD / freebsd (14.4) (push) Skipped
Linux / pre-check (push) Failing after 4s
Linux / latest (apidoc) (push) Skipped
Linux / latest (clang, no, default) (push) Skipped
Linux / latest (clang, no-testable-ke) (push) Skipped
Linux / latest (clang, yes, default) (push) Skipped
Linux / latest (dist) (push) Skipped
Linux / latest (gcc, no, default) (push) Skipped
Linux / latest (gcc, yes, default) (push) Skipped
Linux / latest (no-testable-ke) (push) Skipped
Linux / latest (yes, ld) (push) Skipped
Linux / crypto (ubuntu-latest, botan) (push) Skipped
Linux / older (gcc, ubuntu-22.04, nm) (push) Skipped
Linux / alpine (push) Skipped
macOS / pre-check (push) Failing after 4s
SonarCloud / pre-check (push) Failing after 4s
SonarCloud / sonarcloud (push) Skipped
TKM / pre-check (push) Failing after 4s
Windows / pre-check (push) Failing after 4s
Windows / cross-compile (win32) (push) Skipped
Windows / cross-compile (win64) (push) Skipped
Android / pre-check (push) Failing after 6s
Android / android (push) Skipped
CIFuzz / pre-check (push) Failing after 4s
CIFuzz / fuzzing (undefined) (push) Skipped
CodeQL / analyze-cpp (push) Skipped
FreeBSD / freebsd (15.0) (push) Skipped
Linux / latest (clang, no, all) (push) Skipped
Linux / latest (clang, no-dbg) (push) Skipped
Linux / latest (clang, yes, all) (push) Skipped
Linux / latest (clang, yes, fuzzing) (push) Skipped
Linux / latest (coverage) (push) Skipped
Linux / latest (gcc, no, all) (push) Skipped
Linux / latest (gcc, no, printf-builtin) (push) Skipped
Linux / latest (gcc, yes, all) (push) Skipped
Linux / latest (nm) (push) Skipped
Linux / latest (no-dbg) (push) Skipped
Linux / crypto (ubuntu-22.04, openssl-sys) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-4) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-sys) (push) Skipped
Linux / older (clang, ubuntu-22.04, all) (push) Skipped
macOS / macos (macos-14) (push) Skipped
macOS / macos (macos-latest) (push) Skipped
Windows / native (i686, mingw32, win32) (push) Skipped
Windows / native (x86_64, mingw64, win64) (push) Skipped
CIFuzz / fuzzing (address) (push) Skipped
Linux / latest (clang, no, printf-builtin) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-3) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-awslc) (push) Skipped
Linux / crypto (ubuntu-latest, wolfssl) (push) Skipped
Linux / older (gcc, ubuntu-22.04, all) (push) Skipped
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-13 09:31:05 +07:00
Denozordec and Claude Opus 5.5
637b8061ed
android: version 2.18.0 (165)
...
CodeQL / pre-check (push) Failing after 4s
CodeQL / analyze (python) (push) Skipped
CodeQL / analyze (ruby) (push) Skipped
FreeBSD / pre-check (push) Failing after 3s
FreeBSD / freebsd (14.4) (push) Skipped
Linux / pre-check (push) Failing after 4s
Linux / latest (apidoc) (push) Skipped
Linux / latest (clang, no, default) (push) Skipped
Linux / latest (clang, no-testable-ke) (push) Skipped
Linux / latest (clang, yes, default) (push) Skipped
Linux / latest (dist) (push) Skipped
Linux / latest (gcc, no, default) (push) Skipped
Linux / latest (gcc, yes, default) (push) Skipped
Linux / latest (no-testable-ke) (push) Skipped
Linux / latest (yes, ld) (push) Skipped
Linux / crypto (ubuntu-latest, botan) (push) Skipped
Linux / older (gcc, ubuntu-22.04, nm) (push) Skipped
Linux / alpine (push) Skipped
macOS / pre-check (push) Failing after 3s
SonarCloud / pre-check (push) Failing after 4s
SonarCloud / sonarcloud (push) Skipped
TKM / pre-check (push) Failing after 3s
Windows / pre-check (push) Failing after 4s
Windows / cross-compile (win32) (push) Skipped
Windows / cross-compile (win64) (push) Skipped
Android / pre-check (push) Failing after 6s
Android / android (push) Skipped
CIFuzz / pre-check (push) Failing after 3s
CIFuzz / fuzzing (undefined) (push) Skipped
CodeQL / analyze-cpp (push) Skipped
FreeBSD / freebsd (15.0) (push) Skipped
Linux / latest (clang, no, all) (push) Skipped
Linux / latest (clang, no-dbg) (push) Skipped
Linux / latest (clang, yes, all) (push) Skipped
Linux / latest (clang, yes, fuzzing) (push) Skipped
Linux / latest (coverage) (push) Skipped
Linux / latest (gcc, no, all) (push) Skipped
Linux / latest (gcc, no, printf-builtin) (push) Skipped
Linux / latest (gcc, yes, all) (push) Skipped
Linux / latest (nm) (push) Skipped
Linux / latest (no-dbg) (push) Skipped
Linux / crypto (ubuntu-22.04, openssl-sys) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-4) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-sys) (push) Skipped
Linux / older (clang, ubuntu-22.04, all) (push) Skipped
macOS / macos (macos-14) (push) Skipped
macOS / macos (macos-latest) (push) Skipped
Windows / native (i686, mingw32, win32) (push) Skipped
Windows / native (x86_64, mingw64, win64) (push) Skipped
CIFuzz / fuzzing (address) (push) Skipped
Linux / latest (clang, no, printf-builtin) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-3) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-awslc) (push) Skipped
Linux / crypto (ubuntu-latest, wolfssl) (push) Skipped
Linux / older (gcc, ubuntu-22.04, all) (push) Skipped
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-13 00:31:57 +07:00
Denozordec and Claude Opus 5.5
29095e087f
android: de, pl, uk, zh-CN and zh-TW translations of all new strings and plurals; old English leftovers in pl/uk/zh-TW translated; short German and Ukrainian tab labels on one line; trusted-network hint centred; German keeps noun capitals in mid-sentence labels
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 22:29:05 +07:00
Denozordec and Claude Opus 5.5
e3e6d51f6f
android: no unattended start of a profile without a saved password (watchdog, network rules, scenarios, reserve, bridge): an event that opens the server instead; «password missing» ends the watchdog expectation; resume and restore keep a typed password; warning on the server page
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 22:01:41 +07:00
Denozordec and Claude Opus 5.5
df1575fe27
android: one order for the network rules and the scenarios (top wins), hand actions beat a running scenario until it ends
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 21:35:17 +07:00
Denozordec and Claude Opus 5.5
a39993075e
android: the rest of the UI in the Final 2026 style: setting rows as on the sub pages, kit colours and type everywhere, server picker labels, shortcut picker and remediation screens; the rules server moves to Scenarios, the old Trusted networks screen goes
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 19:51:18 +07:00
Denozordec and Claude Opus 5.5
9ed278b440
android: mockup line icons everywhere, mockup dialog buttons, server picker sheet as on F_Servers; drop the unused old Home and routing parts
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 19:33:42 +07:00
Denozordec and Claude Opus 5.5
16d4c72920
android: bridge question back in Help
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 16:11:51 +07:00
Denozordec and Claude Opus 5.5
1e32410fca
android: system notifications as in the Final 2026 mockup: connecting with Stop, answers in suggestion pushes, Update / What is new, weekly summary
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 16:09:51 +07:00
Denozordec and Claude Opus 5.5
8880601ef6
android: DNS and ads as in the Final 2026 mockup: filtering resolvers (AdGuard, Cloudflare 1.1.1.2), own DNS, applied to the tunnel
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 16:04:01 +07:00
Denozordec and Claude Opus 5.5
dcf8ace6e1
android: Home scenario hints as in the Final 2026 mockup (trusted network pill, rule suggestion), profile update from the error and expiry cards, a stop button on errors
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 15:58:57 +07:00
Denozordec and Claude Opus 5.5
1a6fb85259
android: scenarios as in the Final 2026 mockup: network rules with own switches, user scenarios (Wi-Fi, mobile, app, time, roaming, whitelists) with an engine, app picker
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 15:47:53 +07:00
Denozordec and Claude Opus 5.5
5ca60d7066
android: resilience of F_Profile at work: backup ports, reserve server, bridge while whitelists are on
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 15:33:36 +07:00
Denozordec and Claude Opus 5.5
e7b801d584
android: server page as in the Final 2026 mockup; profile source, link updates with a diff sheet and a daily check, per-profile IKE fragmentation
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 15:22:53 +07:00
Denozordec and Claude Opus 5.5
638c58f0e4
android: daily traffic history and the statistics screen as in the Final 2026 mockup; today's traffic on Home and the widget
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 15:08:13 +07:00
Denozordec and Claude Opus 5.5
92627da459
android: remove the pre-mockup Home parts (hero, banners, availability card, traffic tiles, glow)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 14:47:33 +07:00
Denozordec and Claude Opus 5.5
15ad5c1151
android: install-permission sheet before updating as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 14:42:18 +07:00
Denozordec and Claude Opus 5.5
92e2f4f069
android: connection steps on Home as in the Final 2026 mockup, read from the daemon log
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 14:39:26 +07:00
Denozordec and Claude Opus 5.5
a08c193a90
android: hint behind the system VPN consent window as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 14:36:09 +07:00
Denozordec and Claude Opus 5.5
8fbebed140
android: battery saving instructions screen as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 11:07:20 +07:00
Denozordec and Claude Opus 5.5
9c96c36fc6
android: all dialogs in the Final 2026 look (28dp card, 22/800 title, 50% scrim), login fields as form fields
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 11:01:25 +07:00
Denozordec and Claude Opus 5.5
ffa38d5f28
android: certificate expiry card on Home as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:55:39 +07:00
Denozordec and Claude Opus 5.5
e465797b5f
android: certificates screen as in the Final 2026 mockup (from profiles, added, system; expiry colors)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:51:13 +07:00
Denozordec and Claude Opus 5.5
b4a311c84f
android: notification settings as in the Final 2026 mockup (problems, new apps, updates)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:47:24 +07:00
Denozordec and Claude Opus 5.5
739068ccb9
android: help screen as in the Final 2026 mockup; log opens directly from settings
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:43:54 +07:00
Denozordec and Claude Opus 5.5
8cd704ed08
android: log screen as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:35:42 +07:00
Denozordec and Claude Opus 5.5
eb5a89623b
android: server delete confirmation as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:31:32 +07:00
Denozordec and Claude Opus 5.5
f193661e68
android: quick settings tile states and widget sizes as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:25:38 +07:00
Denozordec and Claude Opus 5.5
53623ebb4a
android: home screen widget in three sizes as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:18:47 +07:00
Denozordec and Claude Opus 5.5
db6c806d58
android: VPN notification as in the Final 2026 shade: protected title, pause and change actions
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:12:41 +07:00
Denozordec and Claude Opus 5.5
6652970925
android: first-run onboarding and permissions screen as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:08:57 +07:00
Denozordec and Claude Opus 5.5
dc8f5a75e1
android: appearance, kill switch and update pages as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:04:12 +07:00
Denozordec and Claude Opus 5.5
fecef1135c
android: import preview/error sheet and profile form as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 10:00:09 +07:00
Denozordec and Claude Opus 5.5
200697216d
android: add-server sheet with QR scan and link, share-by-QR screen (Final 2026)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 09:49:51 +07:00
Denozordec and Claude Opus 5.5
434e5bad4e
android: Servers, Settings and Apps direct screens as in the Final 2026 mockup
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-12 09:43:13 +07:00
Denozordec and Claude Opus 5.5
4ff5ed11bb
android: routing phase 3 and the Final 2026 design system (WIP)
...
- Routing: site and direct-address rules (sites resolved to addresses,
refreshed on connect and every 30 min), package patterns can be
switched off; unified Rules screen with add sheet and empty state;
"How traffic goes" for a site, IP or app with reasons, reachability and
one-tap rules; Recent apps (usage access) with failing apps; new-app
"go direct?" suggestions in Events.
- Diagnostics screen (all-in-one check), "Fastest" server, pause until
morning / until the network changes.
- Design system of the mockup: Manrope font, mockup palette for light and
dark, ShxKit components (cards, rows, switch, buttons, chips, tabs,
fields, sheets), mockup line icons; Home, nav bar, Routing, Rules,
Recent, Events, Diagnostics and route check rebuilt on it; shared
components restyled so the remaining screens pick up the look.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-11 22:46:27 +07:00
Denozordec and Claude Opus 5.5
60252437ac
android: home phase 2 - events inbox and problem notifications
...
- EventLog keeps what the app noticed and did by itself for 30 days on the
device (events.json); repeats of the same event within 30 minutes are
merged (x3), problems that go away are marked resolved.
- Recorded: connection errors and recovery, carrier whitelists on/off,
health-check reconnects, auto-connect starting/parking the tunnel, the
end of a pause, available updates.
- Problems are pushed on a new "Connection problems" channel, but only
while the app is in the background (Home shows them already).
- «Events» screen (InboxActivity): filters (all, need attention,
connection, routes, app), grouped by day, one action per event; opened
from a bell with an unread badge in the Home header.
- Amber warning colours in the status palette, used for whitelists, no
network and an unresponsive server.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-11 21:54:01 +07:00
Denozordec and Claude Opus 5.5
75849beb90
android: home phase 1 - header, quick actions, pause, problem cards
...
- Connect tab gets the Shield-S header and, while connected, three quick
actions: pause, switch server, "site not loading?" (route check).
- Pause VPN for 5/15/30/60 min (PauseManager + PauseReceiver): disconnects
like a manual stop and reconnects on an alarm; auto-connect waits, any
connect request cancels the pause. Home shows a countdown, "turn on now"
and "+15 minutes".
- Connection errors become plain-language cards with one fixing action:
no internet (tracked via a non-VPN network callback), server not
responding (with the retry countdown and "other server"), server not
found, sign-in rejected, server not verified, generic failure.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-11 21:36:34 +07:00
Denozordec and Claude Opus 5.5
8f21e16277
android: 2.17.1 - Shield-S launcher, shortcut and status bar icon
...
CodeQL / pre-check (push) Failing after 4s
CodeQL / analyze (python) (push) Skipped
CodeQL / analyze (ruby) (push) Skipped
FreeBSD / pre-check (push) Failing after 3s
FreeBSD / freebsd (14.4) (push) Skipped
Linux / pre-check (push) Failing after 4s
Linux / latest (apidoc) (push) Skipped
Linux / latest (clang, no, default) (push) Skipped
Linux / latest (clang, no-testable-ke) (push) Skipped
Linux / latest (clang, yes, default) (push) Skipped
Linux / latest (dist) (push) Skipped
Linux / latest (gcc, no, default) (push) Skipped
Linux / latest (gcc, yes, default) (push) Skipped
Linux / latest (no-testable-ke) (push) Skipped
Linux / latest (yes, ld) (push) Skipped
Linux / crypto (ubuntu-latest, botan) (push) Skipped
Linux / older (gcc, ubuntu-22.04, nm) (push) Skipped
Linux / alpine (push) Skipped
macOS / pre-check (push) Failing after 3s
SonarCloud / pre-check (push) Failing after 4s
SonarCloud / sonarcloud (push) Skipped
TKM / pre-check (push) Failing after 3s
Windows / pre-check (push) Failing after 4s
Windows / cross-compile (win32) (push) Skipped
Windows / cross-compile (win64) (push) Skipped
Android / pre-check (push) Failing after 6s
Android / android (push) Skipped
CIFuzz / pre-check (push) Failing after 3s
CIFuzz / fuzzing (undefined) (push) Skipped
CodeQL / analyze-cpp (push) Skipped
FreeBSD / freebsd (15.0) (push) Skipped
Linux / latest (clang, no, all) (push) Skipped
Linux / latest (clang, no-dbg) (push) Skipped
Linux / latest (clang, yes, all) (push) Skipped
Linux / latest (clang, yes, fuzzing) (push) Skipped
Linux / latest (coverage) (push) Skipped
Linux / latest (gcc, no, all) (push) Skipped
Linux / latest (gcc, no, printf-builtin) (push) Skipped
Linux / latest (gcc, yes, all) (push) Skipped
Linux / latest (nm) (push) Skipped
Linux / latest (no-dbg) (push) Skipped
Linux / crypto (ubuntu-22.04, openssl-sys) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-4) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-sys) (push) Skipped
Linux / older (clang, ubuntu-22.04, all) (push) Skipped
macOS / macos (macos-14) (push) Skipped
macOS / macos (macos-latest) (push) Skipped
Windows / native (i686, mingw32, win32) (push) Skipped
Windows / native (x86_64, mingw64, win64) (push) Skipped
CIFuzz / fuzzing (address) (push) Skipped
Linux / latest (clang, no, printf-builtin) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-3) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-awslc) (push) Skipped
Linux / crypto (ubuntu-latest, wolfssl) (push) Skipped
Linux / older (gcc, ubuntu-22.04, all) (push) Skipped
- adaptive launcher icon as vectors: purple background, white shield with
the S cut out (even-odd), plus a monochrome layer for Android 13+ themed
icons; profile shortcuts use the same icon
- vector legacy icon for Android 7.x in mipmap-anydpi, old strongSwan PNGs
removed
- connected status bar icon is the Shield-S silhouette; connecting,
warning and disconnected states keep their outlined shields
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-11 13:17:24 +07:00
Denozordec and Claude Opus 5.5
12a95d1e89
android: 2.17.0 - stability and battery fixes
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:28:46 +07:00
Denozordec and Claude Opus 5.5
66688031cd
android: small cleanups - DB close in finally, single profile reload
...
- HomeViewModel closes the profile database in finally blocks and relies
on the VPN_PROFILES_CHANGED broadcast instead of reloading twice
- READ_EXTERNAL_STORAGE only up to API 32; drop a dead settings flag
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:20:28 +07:00
Denozordec and Claude Opus 5.5
7abac87140
android: run DNS/route diagnostics on their own executor
...
They can block for 10-30 s on a degraded network and delayed any profile
load (connect, retry, profile switch) queued behind them.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:20:28 +07:00
Denozordec and Claude Opus 5.5
1b4fdc83d8
android: tile/widget/log fixes
...
- tile: query the configured profile once per listening session instead
of on every state notification
- widget: DISCONNECTING is shown as such, with a Disconnect button
- log viewer: bounded to 5000 lines, tails only while visible, picks up
a log created or restarted after opening, and no longer yanks the user
back to the bottom while they scroll up
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:19:33 +07:00
Denozordec and Claude Opus 5.5
ce80c36be1
android: routing - package scans off the main thread, no needless reconnects
...
- computeExcludedPackages() (full PackageManager scan) runs on Default,
not Main.immediate, on config changes and package add/remove
- updateConfig() ignores no-op transforms and reconnects when routing is
switched off too (direct apps kept bypassing the tunnel until then)
- config is volatile and read after its version, so an old config can no
longer be cached under a new version
- Direct apps loads the app list once per entry, without GET_META_DATA
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:19:33 +07:00
Denozordec and Claude Opus 5.5
07fb02790c
android: CharonVpnService - handover race, cheaper network/notification updates
...
- underlying-network bookkeeping is guarded by one lock and re-applied
after establish(), so a handover racing with it no longer leaves the
tunnel attributed to a lost network
- use the capabilities passed to onCapabilitiesChanged (no IPC per
signal-strength update); mCurrentProfile is volatile
- countdown-only notification re-posts are limited to one per 5 s
- the connected chronometer keeps its start time across re-posts
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:17:36 +07:00
Denozordec and Claude Opus 5.5
b0f353af90
android: whitelist - working recheck backoff, fewer probe rounds
...
- scheduled rechecks are forced: the 15/30 s steps were below FRESH_MS,
so the unforced recheck returned early and the backoff chain died
- signal-strength-only capability changes are no longer network events
(each one reset the backoff and launched a check)
- tunnel state transitions force a new round at most every 15 s
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:17:36 +07:00
Denozordec and Claude Opus 5.5
514b15b1ca
android: home/routing UI - poll only while visible, no idle animation
...
- traffic (1 s) and probe (10 s) loops run only while the Home screen is
shown and the VPN is connected; no 1 s idle tick otherwise
- the refresh button no longer runs a second exit-IP trace
- the glow pulse is not composed at all while disconnected or with
animations off (it redrew a transparent circle every frame)
- RTT sparkline appends each probe result once (it duplicated stale ones)
- Routing dead-host poll is lifecycle-aware
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:15:10 +07:00
Denozordec and Claude Opus 5.5
5f8b813eb4
android: updates - honour the charging constraint, real metered check
...
- drop the in-process 12 h loop: the VPN keeps the process alive, so it
checked and pre-downloaded on battery, defeating the worker constraint
- the worker now waits for the check and a silent download it starts
- metered is judged by the physical network: the VPN reports itself
unmetered, so pre-downloads ran over cellular while connected
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:15:10 +07:00
Denozordec and Claude Opus 5.5
6668dcfb56
android: health check - ping the server only when it can matter
...
- WITH_TUNNEL mode pings the server only once the external targets fail
(no ping fork + DNS lookup outside the tunnel on every healthy cycle;
an ICMP-blocking server no longer forces fast polls)
- initial battery-low state from the sticky ACTION_BATTERY_CHANGED
- non-state notifications no longer restart a pending cycle
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:12:22 +07:00
Denozordec and Claude Opus 5.5
1eb1dfe317
android: RU list - no reconnect for an unchanged list, failure backoff
...
- same SHA-256 as the applied list: only bump the timestamp, no parse,
save or tunnel reconnect (it tore a healthy tunnel down daily)
- a failed download is not retried on every cold start (3 h backoff)
- the saved list is read and parsed off the main thread at startup
- switching the split off in system mode reconnects to drop the routes
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:12:22 +07:00
Denozordec and Claude Opus 5.5
cf89cec20e
android: watchdog backs off whenever a live process owns recovery
...
Retrying, connecting or whitelist-blocked sessions kept the 60 s alarm and
the 10 min Doze wakeup for hours although a live process makes the alarm
useless. They now share the connected backoff (5 min / 60 min).
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:12:22 +07:00
Denozordec and Claude Opus 5.5
24e536b9b9
android: updates - no stuck Downloading state, thread-safe singleton
...
After a silent pre-download the state stayed Downloading, so tapping the
"update ready" notification did nothing. It now returns to Available;
an install request without a known update (e.g. after a process restart)
re-checks and installs when found.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:09:40 +07:00
Denozordec and Claude Opus 5.5
e6c893219c
android: DiagLog thread-safe timestamps; auto-connect survives stop/start
...
- SimpleDateFormat is now used under the lock; rotation counts bytes
- AutoConnectManager.stop() clears pendingEvaluate, whose reset runnable
it removes, so later connects are not silently swallowed
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:09:40 +07:00
Denozordec and Claude Opus 5.5
01c398f2f7
android: tile/control activity - no bind leaks, no callbacks after destroy
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:09:40 +07:00
Denozordec and Claude Opus 5.5
f2e4ffe860
android: VpnStateService - single retry countdown, isolated listeners
...
- remove pending RETRY_MSG on reset/set: a Retry tap during a backoff
started a second countdown chain (double-speed ticks, two reconnects)
- notify listeners over a copy with per-listener error handling
- disconnect() tolerates the VPN service not running
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:09:40 +07:00
Denozordec and Claude Opus 5.5
358dcb94b2
android: CharonVpnService - safer foreground and teardown handling
...
- DISCONNECT (plain startService) no longer promotes to the foreground,
and startForeground() refusals on Android 12+ are logged, not fatal
- drop the placeholder notification when nothing was running, so the
service does not stay in the foreground with a stale Disabled state
- onDestroy: shutdownNow/await the profile executor before closing the
database; profile loads catch errors instead of killing the process
- unbind by bind result, not by mService (binding leaked if destroyed
before onServiceConnected)
- the connection thread's crash guard can no longer throw itself
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:09:39 +07:00
Denozordec and Claude Opus 5.5
2b40eebf5b
android: close TCP probe sockets right after connecting
...
tcpPing never closed its socket: every health/whitelist/home probe leaked
an fd until GC and the peer's later FIN/RST woke the radio again.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:09:39 +07:00
Denozordec and Claude Opus 5.5
793ca1b410
android: native - hold charon_mutex while reading routing engine stats
...
getRoutingStats/getDeadDirectTargets are polled from the UI once a second;
a concurrent disconnect frees the engine under charon_mutex, so reading it
without the lock was a use-after-free.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 09:05:09 +07:00
Denozordec and Claude Opus 5.5
5e38fc2f76
android: keep the BETA badge on one line on narrow mode cards
...
CodeQL / pre-check (push) Failing after 4s
CodeQL / analyze (python) (push) Skipped
CodeQL / analyze (ruby) (push) Skipped
FreeBSD / pre-check (push) Failing after 3s
FreeBSD / freebsd (14.4) (push) Skipped
Linux / pre-check (push) Failing after 4s
Linux / latest (apidoc) (push) Skipped
Linux / latest (clang, no, default) (push) Skipped
Linux / latest (clang, no-testable-ke) (push) Skipped
Linux / latest (clang, yes, default) (push) Skipped
Linux / latest (dist) (push) Skipped
Linux / latest (gcc, no, default) (push) Skipped
Linux / latest (gcc, yes, default) (push) Skipped
Linux / latest (no-testable-ke) (push) Skipped
Linux / latest (yes, ld) (push) Skipped
Linux / crypto (ubuntu-latest, botan) (push) Skipped
Linux / older (gcc, ubuntu-22.04, nm) (push) Skipped
Linux / alpine (push) Skipped
macOS / pre-check (push) Failing after 4s
SonarCloud / pre-check (push) Failing after 3s
SonarCloud / sonarcloud (push) Skipped
TKM / pre-check (push) Failing after 4s
Windows / pre-check (push) Failing after 3s
Windows / cross-compile (win32) (push) Skipped
Windows / cross-compile (win64) (push) Skipped
Android / pre-check (push) Failing after 5s
Android / android (push) Skipped
CIFuzz / pre-check (push) Failing after 4s
CIFuzz / fuzzing (undefined) (push) Skipped
CodeQL / analyze-cpp (push) Skipped
FreeBSD / freebsd (15.0) (push) Skipped
Linux / latest (clang, no, all) (push) Skipped
Linux / latest (clang, no-dbg) (push) Skipped
Linux / latest (clang, yes, all) (push) Skipped
Linux / latest (clang, yes, fuzzing) (push) Skipped
Linux / latest (coverage) (push) Skipped
Linux / latest (gcc, no, all) (push) Skipped
Linux / latest (gcc, no, printf-builtin) (push) Skipped
Linux / latest (gcc, yes, all) (push) Skipped
Linux / latest (nm) (push) Skipped
Linux / latest (no-dbg) (push) Skipped
Linux / crypto (ubuntu-22.04, openssl-sys) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-4) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-sys) (push) Skipped
Linux / older (clang, ubuntu-22.04, all) (push) Skipped
macOS / macos (macos-14) (push) Skipped
macOS / macos (macos-latest) (push) Skipped
Windows / native (i686, mingw32, win32) (push) Skipped
Windows / native (x86_64, mingw64, win64) (push) Skipped
CIFuzz / fuzzing (address) (push) Skipped
Linux / latest (clang, no, printf-builtin) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-3) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-awslc) (push) Skipped
Linux / crypto (ubuntu-latest, wolfssl) (push) Skipped
Linux / older (gcc, ubuntu-22.04, all) (push) Skipped
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 01:55:19 +07:00
Denozordec and Claude Opus 5.5
c23d4dad8b
android: 2.16.0 - Routing 2.0: one direct-apps list, inline RU mode, no per-profile app picker
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 01:48:33 +07:00
Denozordec and Claude Opus 5.5
e2ce8420a7
android: remove per-profile app picker, rule-set UI and SelectedApplicationsActivity
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 01:48:00 +07:00
Denozordec and Claude Opus 5.5
488c0aa210
android: Routing tab redesign - RU sites card, direct apps screen, advanced pages
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 01:47:59 +07:00
Denozordec and Claude Opus 5.5
48f1ed7fb8
android: routing 2.0 strings (en/ru/de), drop obsolete rule-set strings
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 01:47:59 +07:00
Denozordec and Claude Opus 5.5
389712bba3
android: global direct-apps routing model, migration, single-source CharonVpnService excludes
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 01:47:58 +07:00
Denozordec and Claude Opus 5.5
584004a25c
android: 2.15.1 - fix startup crash: R8 stripped WorkDatabase_Impl constructor
...
CodeQL / pre-check (push) Failing after 4s
CodeQL / analyze (python) (push) Skipped
CodeQL / analyze (ruby) (push) Skipped
FreeBSD / pre-check (push) Failing after 3s
FreeBSD / freebsd (14.4) (push) Skipped
Linux / pre-check (push) Failing after 4s
Linux / latest (apidoc) (push) Skipped
Linux / latest (clang, no, default) (push) Skipped
Linux / latest (clang, no-testable-ke) (push) Skipped
Linux / latest (clang, yes, default) (push) Skipped
Linux / latest (dist) (push) Skipped
Linux / latest (gcc, no, default) (push) Skipped
Linux / latest (gcc, yes, default) (push) Skipped
Linux / latest (no-testable-ke) (push) Skipped
Linux / latest (yes, ld) (push) Skipped
Linux / crypto (ubuntu-latest, botan) (push) Skipped
Linux / older (gcc, ubuntu-22.04, nm) (push) Skipped
Linux / alpine (push) Skipped
macOS / pre-check (push) Failing after 3s
SonarCloud / pre-check (push) Failing after 4s
SonarCloud / sonarcloud (push) Skipped
TKM / pre-check (push) Failing after 3s
Windows / pre-check (push) Failing after 4s
Windows / cross-compile (win32) (push) Skipped
Windows / cross-compile (win64) (push) Skipped
Android / pre-check (push) Failing after 4s
Android / android (push) Skipped
CIFuzz / pre-check (push) Failing after 3s
CIFuzz / fuzzing (undefined) (push) Skipped
CodeQL / analyze-cpp (push) Skipped
FreeBSD / freebsd (15.0) (push) Skipped
Linux / latest (clang, no, all) (push) Skipped
Linux / latest (clang, no-dbg) (push) Skipped
Linux / latest (clang, yes, all) (push) Skipped
Linux / latest (clang, yes, fuzzing) (push) Skipped
Linux / latest (coverage) (push) Skipped
Linux / latest (gcc, no, all) (push) Skipped
Linux / latest (gcc, no, printf-builtin) (push) Skipped
Linux / latest (gcc, yes, all) (push) Skipped
Linux / latest (nm) (push) Skipped
Linux / latest (no-dbg) (push) Skipped
Linux / crypto (ubuntu-22.04, openssl-sys) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-4) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-sys) (push) Skipped
Linux / older (clang, ubuntu-22.04, all) (push) Skipped
macOS / macos (macos-14) (push) Skipped
macOS / macos (macos-latest) (push) Skipped
Windows / native (i686, mingw32, win32) (push) Skipped
Windows / native (x86_64, mingw64, win64) (push) Skipped
CIFuzz / fuzzing (address) (push) Skipped
Linux / latest (clang, no, printf-builtin) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-3) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-awslc) (push) Skipped
Linux / crypto (ubuntu-latest, wolfssl) (push) Skipped
Linux / older (gcc, ubuntu-22.04, all) (push) Skipped
AGP 9 strict full-mode keep rules no longer keep no-arg constructors of
-keep'd classes, so WorkManager's reflectively created Room database
lost its constructor and the app crashed in InitializationProvider.
Restore AGP 8 keep-rule semantics and keep RoomDatabase constructors.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 00:50:59 +07:00
Denozordec and Claude Opus 5.5
6a8528fc98
android: 2.15.0 - Material 3 Expressive redesign
...
CodeQL / pre-check (push) Failing after 3s
CodeQL / analyze (python) (push) Skipped
CodeQL / analyze (ruby) (push) Skipped
FreeBSD / pre-check (push) Failing after 4s
FreeBSD / freebsd (14.4) (push) Skipped
Linux / pre-check (push) Failing after 3s
Linux / latest (apidoc) (push) Skipped
Linux / latest (clang, no, default) (push) Skipped
Linux / latest (clang, no-testable-ke) (push) Skipped
Linux / latest (clang, yes, default) (push) Skipped
Linux / latest (dist) (push) Skipped
Linux / latest (gcc, no, default) (push) Skipped
Linux / latest (gcc, yes, default) (push) Skipped
Linux / latest (no-testable-ke) (push) Skipped
Linux / latest (yes, ld) (push) Skipped
Linux / crypto (ubuntu-latest, botan) (push) Skipped
Linux / older (gcc, ubuntu-22.04, nm) (push) Skipped
Linux / alpine (push) Skipped
macOS / pre-check (push) Failing after 4s
SonarCloud / pre-check (push) Failing after 3s
SonarCloud / sonarcloud (push) Skipped
TKM / pre-check (push) Failing after 3s
Windows / pre-check (push) Failing after 3s
Windows / cross-compile (win32) (push) Skipped
Windows / cross-compile (win64) (push) Skipped
Android / pre-check (push) Failing after 6s
Android / android (push) Skipped
CIFuzz / pre-check (push) Failing after 4s
CIFuzz / fuzzing (undefined) (push) Skipped
CodeQL / analyze-cpp (push) Skipped
FreeBSD / freebsd (15.0) (push) Skipped
Linux / latest (clang, no, all) (push) Skipped
Linux / latest (clang, no-dbg) (push) Skipped
Linux / latest (clang, yes, all) (push) Skipped
Linux / latest (clang, yes, fuzzing) (push) Skipped
Linux / latest (coverage) (push) Skipped
Linux / latest (gcc, no, all) (push) Skipped
Linux / latest (gcc, no, printf-builtin) (push) Skipped
Linux / latest (gcc, yes, all) (push) Skipped
Linux / latest (nm) (push) Skipped
Linux / latest (no-dbg) (push) Skipped
Linux / crypto (ubuntu-22.04, openssl-sys) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-4) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-sys) (push) Skipped
Linux / older (clang, ubuntu-22.04, all) (push) Skipped
macOS / macos (macos-14) (push) Skipped
macOS / macos (macos-latest) (push) Skipped
Windows / native (i686, mingw32, win32) (push) Skipped
Windows / native (x86_64, mingw64, win64) (push) Skipped
CIFuzz / fuzzing (address) (push) Skipped
Linux / latest (clang, no, printf-builtin) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-3) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-awslc) (push) Skipped
Linux / crypto (ubuntu-latest, wolfssl) (push) Skipped
Linux / older (gcc, ubuntu-22.04, all) (push) Skipped
Toolchain AGP 9.1 / Gradle 9.3 / Kotlin 2.2 / compileSdk 37, minSdk 24,
material3 1.5.0-beta01. Expressive theme and motion, redesigned Connect,
Profiles, Routing and Settings screens, adaptive layouts, home-screen
widget, Live Update download progress, predictive back.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 00:38:00 +07:00
Denozordec
8ef7c0a53b
docs: ui plan status - deferred items completed
2026-10-10 00:33:20 +07:00
Denozordec
dc6e1e32fb
android: predictive back scale for settings pages and remediation detail
2026-10-10 00:33:20 +07:00
Denozordec
2681233449
android: route check results as cards with status pills
2026-10-10 00:32:24 +07:00
Denozordec
7a7673119e
android: profile import as an Expressive bottom sheet in a transparent host
2026-10-10 00:32:00 +07:00
Denozordec
8deafeae8e
android: trusted networks - inline location explainer card
2026-10-10 00:31:32 +07:00
Denozordec
59a31d6a1d
android: app picker - hide system apps by default with a toggle
2026-10-10 00:30:41 +07:00
Denozordec
8bedf432e2
android: log screen - level filter chips, snackbar instead of toast
2026-10-10 00:30:27 +07:00
Denozordec
42cd361c58
android: QS tile - connectivity category, toggleable
2026-10-10 00:29:39 +07:00
Denozordec
87c3d73fbc
android: update download progress notification (ProgressStyle / Live Update on API 36+)
2026-10-10 00:29:30 +07:00
Denozordec
564b8aaa8d
android: profiles list-detail on expanded width with in-pane profile form
2026-10-10 00:28:47 +07:00
Denozordec
7cc6343ba1
android: build.gradle comment cleanup
2026-10-10 00:27:29 +07:00
Denozordec
c9048143cc
android: minSdk 24 (material3 1.5 requirement), drop overrideLibrary workaround
2026-10-10 00:27:24 +07:00
Denozordec
203a67ee86
android: a11y (headings, switch role), form snackbar, German strings, smoke tests, docs
2026-10-10 00:21:31 +07:00
Denozordec
3c7c121c7d
android: expanded width - two-column Connect, 640dp settings
2026-10-10 00:13:51 +07:00
Denozordec
0e5e28b4da
android: spacing tokens - migrate padding/spacing literals and ScreenPadding to ShxSpacing
2026-10-10 00:13:08 +07:00
Denozordec
22e4082825
android: home screen widget (Glance), tile subtitle with profile name
2026-10-10 00:13:07 +07:00
Denozordec
0c3ea75cac
android: settings as grouped pages (appearance, automation, security, updates, support), theme mode, snackbars instead of toasts
2026-10-10 00:09:45 +07:00
Denozordec
a451386e0a
android: split RoutingScreen into routing/{RoutingHero,RuleSetList,AdvancedRouting}
2026-10-10 00:09:44 +07:00
Denozordec
8bd65d535e
android: routing - advanced block (RU details, GeoIP, force prefixes), kill switch vs excluded apps note
2026-10-10 00:07:12 +07:00
Denozordec
c5585df135
android: profiles - swipe to delete with undo, search only for long lists
2026-10-10 00:06:05 +07:00
Denozordec and Claude Opus 5.5
385819caf0
android: redesigned Connect screen - morphing hero, profile chip + picker sheet, traffic tiles, one banner slot, collapsed availability
...
Split HomeScreen into home/{HeroConnect,TrafficTiles,AvailabilityCard,HomeBanners}.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 00:05:34 +07:00
Denozordec and Claude Opus 5.5
3f7bd94a69
android: expressive motion - fade-through tabs, back to Connect, LoadingIndicator, wavy progress, snackbar messages
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 00:01:17 +07:00
Denozordec and Claude Opus 5.5
6fd03f37f7
android: toolchain AGP 9.1.1 / Gradle 9.3.1 / Kotlin 2.2.21 / compileSdk 37, BOM 2026.09.00 + material3 1.5.0-beta01
...
Built-in Kotlin (kotlin-android removed), Java 11 compile options (compose 1.12),
proguard-android-optimize.txt (the non-optimize file is rejected by AGP 9),
ExposedDropdownMenu import, minSdk 23 kept via tools:overrideLibrary for
material3 1.5 libs that declare minSdk 24. -PshortNdkCommands for deep worktree paths.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-09 23:59:09 +07:00
Denozordec and Claude Opus 5.5
65989b3a5a
android: shared ui components (SectionCard, ListRow, StatusPill, SnackbarHost)
...
Replace the duplicate FormSection, ActiveBadge and SnackbarHost call sites.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-09 23:39:35 +07:00
Denozordec and Claude Opus 5.5
5f6726f173
android: drop reui palette, align splash/window/system bars with Compose surface
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-09 23:39:35 +07:00
Denozordec and Claude Opus 5.5
fda3ec158c
android: expressive theme, tonal palette, ShxSpacing/ShxShapes tokens
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-09 23:35:59 +07:00
Denozordec and Claude Opus 5.5
c872246b8c
android: compose BOM 2026.06.01 + material3 1.5.0-alpha18 (expressive API)
...
Drop unused navigation-compose and material3-window-size-class.
alpha19+/beta01 need AGP 9.1 + compileSdk 37, so alpha18 is pinned.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-09 23:35:59 +07:00
Denozordec and Claude Opus 5.5
e9a239e419
android: 2.14.6 - reroute long-dead direct hosts through the tunnel
...
CodeQL / pre-check (push) Failing after 4s
CodeQL / analyze (python) (push) Skipped
CodeQL / analyze (ruby) (push) Skipped
FreeBSD / pre-check (push) Failing after 3s
FreeBSD / freebsd (14.4) (push) Skipped
Linux / pre-check (push) Failing after 3s
Linux / latest (apidoc) (push) Skipped
Linux / latest (clang, no, default) (push) Skipped
Linux / latest (clang, no-testable-ke) (push) Skipped
Linux / latest (clang, yes, default) (push) Skipped
Linux / latest (dist) (push) Skipped
Linux / latest (gcc, no, default) (push) Skipped
Linux / latest (gcc, yes, default) (push) Skipped
Linux / latest (no-testable-ke) (push) Skipped
Linux / latest (yes, ld) (push) Skipped
Linux / crypto (ubuntu-latest, botan) (push) Skipped
Linux / older (gcc, ubuntu-22.04, nm) (push) Skipped
Linux / alpine (push) Skipped
macOS / pre-check (push) Failing after 3s
SonarCloud / pre-check (push) Failing after 4s
SonarCloud / sonarcloud (push) Skipped
TKM / pre-check (push) Failing after 3s
Windows / pre-check (push) Failing after 3s
Windows / cross-compile (win32) (push) Skipped
Windows / cross-compile (win64) (push) Skipped
Android / pre-check (push) Failing after 7s
Android / android (push) Skipped
CIFuzz / pre-check (push) Failing after 5s
CIFuzz / fuzzing (undefined) (push) Skipped
CodeQL / analyze-cpp (push) Skipped
FreeBSD / freebsd (15.0) (push) Skipped
Linux / latest (clang, no, all) (push) Skipped
Linux / latest (clang, no-dbg) (push) Skipped
Linux / latest (clang, yes, all) (push) Skipped
Linux / latest (clang, yes, fuzzing) (push) Skipped
Linux / latest (coverage) (push) Skipped
Linux / latest (gcc, no, all) (push) Skipped
Linux / latest (gcc, no, printf-builtin) (push) Skipped
Linux / latest (gcc, yes, all) (push) Skipped
Linux / latest (nm) (push) Skipped
Linux / latest (no-dbg) (push) Skipped
Linux / crypto (ubuntu-22.04, openssl-sys) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-4) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-sys) (push) Skipped
Linux / older (clang, ubuntu-22.04, all) (push) Skipped
macOS / macos (macos-14) (push) Skipped
macOS / macos (macos-latest) (push) Skipped
Windows / native (i686, mingw32, win32) (push) Skipped
Windows / native (x86_64, mingw64, win64) (push) Skipped
CIFuzz / fuzzing (address) (push) Skipped
Linux / latest (clang, no, printf-builtin) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-3) (push) Skipped
Linux / crypto (ubuntu-latest, openssl-awslc) (push) Skipped
Linux / crypto (ubuntu-latest, wolfssl) (push) Skipped
Linux / older (gcc, ubuntu-22.04, all) (push) Skipped
Direct destinations that stay unreachable past the cooldown are now
routed through the VPN tunnel until the network changes. The Home
availability card marks such hosts "via tunnel" and offers a one-tap
"Via VPN" action for the rest.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-09 23:28:03 +07:00
Denozordec
bc256ad369
android: 2.14.2 - fix network label showing cellular while on Wi-Fi
...
underlyingNetworkLabel() returned the first non-VPN network from
allNetworks, whose order is unspecified - Android keeps the cellular
network agent alive in parallel with Wi-Fi, so on Wi-Fi the details
sheet could show "Сотовая сеть". Wi-Fi now wins when present (same
precedence as NetworkMonitor's trust decision); cellular is only
reported when no Wi-Fi network exists.
2026-10-05 01:56:46 +07:00
Denozordec
7185aa4ba5
android: 2.14.1 - traffic split, exit IP, dead-host visibility (UX phase 1)
...
- ConnectionDetailsSheet: session traffic split "via VPN / direct (RU)"
from the native engine counters (userspace mode only; system-routes
mode shows no split - the engine never sees that traffic), public exit
IP + country via cloudflare cdn-cgi/trace through the tunnel, current
underlying network (Wi-Fi + SSID / cellular)
- ConnectionCard: one-glance "N% direct" caption when the RU split moves
traffic directly
- dead direct hosts surfaced in UI: native snapshot of the negative-cache
table via new get_dead_targets (mutex-guarded, sorted by failures) +
JNI getDeadDirectTargets; section on the Routing tab and a badge in the
Home availability card naming dst, failure count, remaining cooldown
and the owning app (from the 2.13.15 owner-attribution cache)
- HomeViewModel: split/exit/deadTargets as separate hot flows; exit
refreshed with the probe round (60s cache), dead targets every round
2026-10-05 00:56:47 +07:00