A Rust backend that discovers Android projects under configured roots, builds one on request, and serves the APK over pinned TLS on a WireGuard interface; an Android client that lists what is buildable, watches a build, and installs the result. Enrolment carries the token and the CA, so the phone trusts exactly the machine that issued it and nothing else. `AGENTS.md` is the working guide and `README.md` the configuration reference. The shared tunnel-and-TLS code lives in `vendor/wg-app-link`, which ai-app uses too. History before this point was squashed away, and a stale `config.json` went with it: nothing had read that file since the config moved to RON outside the checkout, and what it still held was one machine's absolute paths and the names of projects on it.
43 lines
2.5 KiB
TOML
43 lines
2.5 KiB
TOML
[versions]
|
|
agp = "9.3.2"
|
|
kotlin = "2.4.10"
|
|
compose-multiplatform = "1.12.0"
|
|
# Compose Multiplatform's material3 is on its own release train, so it is
|
|
# pinned separately rather than following the version above. Checked
|
|
# 2026-08-28: the newest material3 is 1.12.0-alpha03, so 1.9.0 is still
|
|
# the current *stable* one while runtime/foundation/ui are stable at
|
|
# 1.12.0. Not a stale pin -- the two trains are simply this far apart.
|
|
compose-material3 = "1.9.0"
|
|
# The Gradle wrapper around ktfmt. Checked against the Gradle Plugin
|
|
# Portal 2026-08-28: 0.27.0 is the latest, published 2026-08-03.
|
|
ktfmt-gradle = "0.27.0"
|
|
androidx-activityCompose = "1.13.0"
|
|
# Checked against Maven Central 2026-08-25.
|
|
zxing-embedded = "4.3.0"
|
|
androidx-core-ktx = "1.17.0"
|
|
|
|
[libraries]
|
|
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activityCompose" }
|
|
# In-app QR scanner: a ready-made scanning Activity (camera preview, runtime
|
|
# permission prompt, flashlight toggle) reached through the AndroidX Activity
|
|
# Result API (ScanContract, added in 4.3.0). Fully offline -- no Play
|
|
# Services / ML Kit model download involved.
|
|
zxing-embedded = { module = "com.journeyapps:zxing-android-embedded", version.ref = "zxing-embedded" }
|
|
# Required by the shared link library, which uses the KTX `edit` block.
|
|
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-core-ktx" }
|
|
# Declared directly rather than through the `compose.*` accessors, which
|
|
# Compose Multiplatform 1.11 deprecates.
|
|
compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "compose-multiplatform" }
|
|
compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "compose-multiplatform" }
|
|
compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "compose-multiplatform" }
|
|
compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "compose-material3" }
|
|
|
|
[plugins]
|
|
androidApplication = { id = "com.android.application", version.ref = "agp" }
|
|
# For the shared link subproject: a subproject resolves plugin versions
|
|
# from the build including it rather than from its own.
|
|
androidLibrary = { id = "com.android.library", version.ref = "agp" }
|
|
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }
|
|
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
|
ktfmt = { id = "com.ncorti.ktfmt.gradle", version.ref = "ktfmt-gradle" }
|