mirror of
https://github.com/Heretek-AI/hermes-mobile.git
synced 2026-07-01 16:12:43 -04:00
90a6a7da68
Phase 0c/0d/0e of groovy-fluttering-island.md: **0c — Consolidate Kotlin layers.** android-runner/ is now the single source of truth for all Hermes Kotlin sources. setup-android.sh does a single rsync --delete (was a per-file cp loop) and merges strings.xml + AndroidManifest.xml permissions from the runner. The runner gains README.md documenting the edit conventions. The runner now owns the full Compose surface (HermesApi.kt, MainActivity.kt, GatewayClient.kt, chat/, db/, memory/, ui/) that previously lived only in apps/mobile/android/. The Phase A working state in the live tree was promoted to the runner. **0d — No-op HermesAPIPlugin.kt.** The 804-line Capacitor bridge had no consumer after the WebView path was deleted in Phase 0b. Replaced with a 130-line stub that resolves getPlatform / getAppVersion / getConnectionConfig / setConnectionConfig / openExternal / quitApp against the HermesApi singleton and rejects everything else. The class itself stays so a future WebView re-introduction has a starting point. **Drift guard.** script/check-kotlin-drift.sh runs rsync --dry-run between the runner and live trees and exits non-zero on any divergence. Wired into .github/workflows/mobile-build.yml as a 'Verify Kotlin drift guard' step after setup-android.sh. The 'Vendor desktop renderer' step is removed (the script is gone). **Documentation.** docs/architecture.md describes the Compose-first model, the android-runner/ convention, the HermesApi surface, and the parity status table. README.md updated to match.