31 lines
1.5 KiB
Markdown
31 lines
1.5 KiB
Markdown
# 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.
|