Mygod/VPNHotspot
63.4
Adequate · 25 September 2026
30.7k
lines of production code
Kotlin
with Rust
4
measurements over time
What this system is
Features
Add NAT66 ICMP verification script
A new script, scripts/verify\_nat66\_icmp\_hop\_limit.sh, has been added to the project. This script performs host-side NAT66 ICMPv6 smoke tests, including gateway and public echo requests, hop-limit validation, and UDP/TCP/ICMP verification over a specified interface. It requires root privileges and various network utilities to run.
scripts · high confidence
Repository initialization and build system update
The repository was initialized with a new Apache License 2.0, a comprehensive AGENTS.md development guide, and an updated gradlew script that now uses the -jar flag to invoke the Gradle wrapper, alongside a .gitmodules file adding the aosp-hardware-interfaces submodule.
(repo-wide) · high confidence
Behavioural changes
Added Google services configuration and updated ProGuard rules
The mobile module now includes a google-services.json file for Firebase/Google services integration, enabling analytics and app invite features for the 'be.mygod.vpnhotspot' package. Additionally, ProGuard rules were updated to preserve line number information for debugging, disable code obfuscation, and force coroutine debug mode to improve stack trace readability in release builds.
mobile · high confidence
Added Gradle JVM toolchain configuration
A new file, gradle/gradle-daemon-jvm.properties, has been added to the project. This file configures the Java toolchain for the Gradle daemon, specifying JetBrains as the vendor and version 21 as the target Java version, along with download URLs for various operating systems and architectures.
gradle · high confidence
Pin AOSP hardware/interfaces to specific commit for VINTF stability
The repository now pins the external AOSP hardware/interfaces submodule to a specific frozen commit (0162af698935100a590b7359581ac8b1b80693e5) from the android17-release branch. This ensures that the generated client-side Binder proxies for the WiFi supplicant and common interfaces remain stable and compatible with the runtime path, preventing unexpected changes from upstream AOSP from breaking the integration.
external · medium confidence
Test coverage
Added tests for Room data conversion and database migration
Added new Android instrumented tests to verify the correctness of Room database converters and migration logic. The \ConvertersTest\ ensures that \AnnotatedString\ objects are correctly persisted and restored, including legacy \SpannableString\ formats. The \MigrationTest\ validates that the database schema correctly migrates from version 1 to version 2. Additionally, \VendorDataTest\ was added to verify the serialization and deserialization of vendor data, ensuring that order, duplicate OUIs, and escaped characters are preserved correctly.
mobile/src · high confidence
Dependencies
Migrate build system to Kotlin DSL and modernize dependencies
The project's build configuration has been migrated from Groovy to Kotlin DSL (build.gradle.kts, settings.gradle.kts), introducing a modernized dependency management system via gradle/libs.versions.toml. This includes updating the Android Gradle Plugin to version 9.3.1, upgrading Kotlin to 2.4.10, and refreshing the dependency graph with newer versions of libraries such as AndroidX, Compose, and Firebase. The legacy build.gradle and settings.gradle files have been removed in favor of the new structure.
(dependencies) · high confidence
Updated Gradle wrapper to version 9.6.1
The Gradle wrapper has been upgraded from version 4.1 to 9.6.1. This update includes a new SHA256 distribution checksum and network timeout configuration, which may require a longer download time or different network conditions when building the project.
gradle/wrapper · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 31 → 63 (+31.9)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 92 → 83 (-9.3)
- Architecture 94 → 99 (+5.0)
- Maturity 51 → 65 (+13.9)
- Readiness 28 → 73 (+45.8)
- Security 42 → 87 (+45.5)
- Domain Modelling 19 → 51 (+32.5)
- Event Sourcing 100 (new)
Resolved (31)
- Coverage not measured — test suite did not build
- Dimension evaluation failed
- Duplicated block (10 lines × 2) (mobile/src/main/java/be/mygod/vpnhotspot/ui/PreferenceComponents.kt)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 11 more
New (153)
- ApConfigurationScreenKt.ApConfigurationScreen (cognitive 71) (mobile/src/main/java/be/mygod/vpnhotspot/ui/apconfiguration/ApConfigurationScreen.kt)
- ApConfigurationScreenKt.ApConfigurationScreen (cyclomatic 56) (mobile/src/main/java/be/mygod/vpnhotspot/ui/apconfiguration/ApConfigurationScreen.kt)
- ApConfigurationSessionKt.applySystemApConfiguration (cognitive 34) (mobile/src/main/java/be/mygod/vpnhotspot/ui/apconfiguration/ApConfigurationSession.kt)
- ApConfigurationState.generateConfigError (cognitive 31) (mobile/src/main/java/be/mygod/vpnhotspot/ui/apconfiguration/ApConfigurationState.kt)
- ApConfigurationState.generateConfigError (cyclomatic 23) (mobile/src/main/java/be/mygod/vpnhotspot/ui/apconfiguration/ApConfigurationState.kt)
- App.attachBaseContext (cognitive 24) (mobile/src/main/java/be/mygod/vpnhotspot/App.kt)
- App.attachBaseContext (cyclomatic 17) (mobile/src/main/java/be/mygod/vpnhotspot/App.kt)
- AssociationTask::run (cognitive 17) (mobile/src/main/rust/vpnhotspotd/src/nat66/udp.rs)
- Change coupling: DaemonController.kt ↔ neighbour.rs (mobile/src/main/java/be/mygod/vpnhotspot/root/daemon/DaemonController.kt)
- Change coupling: NetlinkNeighbourMonitoringService.kt ↔ NetlinkNeighbourMonitoringTileService.kt (mobile/src/main/java/be/mygod/vpnhotspot/NetlinkNeighbourMonitoringService.kt)
- Change coupling: RepeaterService.kt ↔ WifiP2pManagerHelper.kt (mobile/src/main/java/be/mygod/vpnhotspot/RepeaterService.kt)
- ClassTooLong: ApConfigurationState (mobile/src/main/java/be/mygod/vpnhotspot/ui/apconfiguration/ApConfigurationState.kt)
- ClassTooLong: RepeaterService (mobile/src/main/java/be/mygod/vpnhotspot/RepeaterService.kt)
- ClientViewModel.populateClients (cognitive 33) (mobile/src/main/java/be/mygod/vpnhotspot/client/ClientViewModel.kt)
- ClientViewModel.populateClients (cyclomatic 21) (mobile/src/main/java/be/mygod/vpnhotspot/client/ClientViewModel.kt)
- ClientsScreenKt.ClientRow (cyclomatic 20) (mobile/src/main/java/be/mygod/vpnhotspot/ui/ClientsScreen.kt)
- ClientsScreenKt.ClientsScreen (cognitive 19) (mobile/src/main/java/be/mygod/vpnhotspot/ui/ClientsScreen.kt)
- DaemonController.ensureDaemonLocked (cognitive 17) (mobile/src/main/java/be/mygod/vpnhotspot/root/daemon/DaemonController.kt)
- DaemonController.startReaderLocked (cognitive 36) (mobile/src/main/java/be/mygod/vpnhotspot/root/daemon/DaemonController.kt)
- DaemonController.startReaderLocked (cyclomatic 22) (mobile/src/main/java/be/mygod/vpnhotspot/root/daemon/DaemonController.kt)
- …and 133 more
Architecture
- Containers 0 added · 0 removed · contexts 1 added · 0 removed · edges 0 added · 0 removed
Added bounded contexts (1)
- mobile
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
Mygod/VPNHotspot was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 25 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 6e3d4a4f9db4f72d0d4a422350b5234cddb52c48 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-dd72cc24c749.