P3-M7: providers, background sync, AI pipeline

P3 CustomShonarProvider (auth, chunked uploads, secure token store).
P4 NextcloudProvider (login flow v2, DAV, chunking) + FolderSyncProvider
(Syncthing-style). P5 TOFU pinning + redacting logger + leak tests.
P6a generic hosted setup (Start9/Umbrel URL + auto-detect). P7 provider
switching (Room v2 slot, Storage screen, foreground migrator). M5
WorkManager drain (Room v3 backoff). M7 AI pipeline (4 adapters, arq
worker, transcript/summary/jobs endpoints). Docs updated throughout.
This commit is contained in:
avi 2026-09-12 11:29:55 -05:00
commit aad7cad78d
73 changed files with 9470 additions and 54 deletions

View file

@ -1,6 +1,7 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("org.jetbrains.kotlin.kapt")
id("org.jetbrains.kotlin.plugin.compose")
id("org.jetbrains.kotlin.plugin.serialization")
}
@ -48,6 +49,9 @@ dependencies {
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.7")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7")
implementation("androidx.navigation:navigation-compose:2.8.4")
implementation("androidx.room:room-runtime:2.6.1")
implementation("androidx.room:room-ktx:2.6.1")
kapt("androidx.room:room-compiler:2.6.1")
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.material3:material3")
@ -62,12 +66,22 @@ dependencies {
// networking (server provider APIs over HTTPS)
implementation("com.squareup.okhttp3:okhttp:4.12.0")
// background sync driver (M5)
implementation("androidx.work:work-runtime-ktx:2.9.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0")
// tests
testImplementation("junit:junit:4.13.2")
// Real org.json for JVM unit tests: the android.jar stubs throw
// ("Method ... not mocked"), which would kill any MockWebServer
// dispatcher or provider JSON parsing under test.
testImplementation("org.json:json:20240303")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0")
testImplementation("com.squareup.okhttp3:mockwebserver:4.12.0")
// In-test certificate authority for the P5 TOFU tests (self-signed
// fixtures generated at runtime, no checked-in keys).
testImplementation("com.squareup.okhttp3:okhttp-tls:4.12.0")
testImplementation("androidx.room:room-testing:2.6.1")
androidTestImplementation(composeBom)
}