Files
chat_android/docs/ADR-002-capacitor-coexistence.md
T

1.5 KiB
Raw Blame History

ADR-002: Capacitor coexistence & Play application id

  • Status: Accepted (initial)
  • Date: 2026-08-05
  • Context: Epic chat_web_app#111 — package-name continuity matters for IAP + reviews.

Decision

  1. Native app applicationId = ai.hesychia.chat (same as Capacitor / llm-fe/android).
  2. Until native internal testing replaces Capacitor on Play:
    • Capacitor remains interim Play track.
    • Do not upload both Capacitor and native AABs under the same listing as competing “current” production binaries without a freeze plan.
  3. When native auth → chat → IAP path is green on internal testing:
    • Freeze Capacitor Play uploads.
    • Promote native AAB on the same listing (versionCode continues upward from Capacitor’s last upload).
  4. beta flavor uses applicationIdSuffix = ".beta" → ai.hesychia.chat.beta for side-by-side installs during development only (not the production listing).

Rationale

Same application id preserves Play listing, reviews, and RevenueCat / Play Billing product bindings already tied to ai.hesychia.chat.

Rejected

  • New id (ai.hesychia.chat.native) then migrate users — splits listings, breaks IAP continuity, worse for reviews.

Open ops

  • Confirm last Capacitor versionCode before first native Play upload.
  • RevenueCat dashboard already includes package id ai.hesychia.chat (Capacitor path).
  • Capacitor shell in llm-fe/android stays for web mobile wrap until product sunsets it; document deprecation in chat_web_app when freeze date set.