master
Push and pull request triggers queue runs that sit forever with no runner. Keep the job and allow manual dispatch only so it can be turned back on later.
Hesychia Android (native)
Kotlin + Jetpack Compose client for Hesychia, reusing chat_backend APIs.
Epic: chat_web_app#111
Capacitor WebView shell remains in chat_web_app/llm-fe as the interim Play track — see docs/ADR-002-capacitor-coexistence.md.
Stack
- Kotlin, Jetpack Compose, Material 3
- Hilt, Navigation Compose, DataStore
- Retrofit + OkHttp (+ WebSocket next)
- RevenueCat Android SDK (IAP Workstream E)
- Min SDK 23 / target SDK 35
- Application id:
ai.hesychia.chat
Docs
| Doc | Purpose |
|---|---|
| ADR-001 | Architecture choices |
| ADR-002 | Play id + Capacitor sunset |
| SCREEN_INVENTORY | Routes / flows to mirror |
| OPEN_QUESTIONS | Spike leftovers |
| design-tokens/hesychia.tokens.json | Shared visual tokens |
Prerequisites
- JDK 17+
- Android SDK Platform 35 + build-tools
- Android Studio (Ladybug+) recommended
- Set
sdk.dirinlocal.properties(gitignored), or open once in Android Studio
sdk.dir=/path/to/Android/Sdk
Build
./gradlew :app:assembleProdDebug
./gradlew :app:testProdDebugUnitTest
# APK → app/build/outputs/apk/prod/debug/
Flavors:
| Flavor | REST / WS | applicationId |
|---|---|---|
prod (default) |
production chatbackend.aimloperations.com |
ai.hesychia.chat (+ .debug for debug) |
beta |
beta.chatbackend.aimloperations.com |
ai.hesychia.chat.beta (+ .debug) |
Signing (release)
Never commit keystores. Create keystore.properties (gitignored) at repo root:
storeFile=/absolute/path/to/aiml-chat-upload.jks
storePassword=...
keyAlias=aiml-chat-upload
keyPassword=...
./gradlew :app:bundleProdRelease
Monetization
Native Play uses RevenueCat only (no Stripe Checkout). Align with chat_web_app/llm-fe/MONETIZATION.md:
appUserID= Django user pk string- Provider badge:
revenuecat+PLAY_STORE
Related repos
chat_web_app— product / Capacitor / design sourcechat_backend— REST + WS + RevenueCat webhooks- Future:
chat_ios(SwiftUI twin epic)
Languages
Kotlin
100%