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

31 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.