Replace stale opencode.vibebrowser.app / www.vibebrowser.app domain refs with the current agentlabs.cc/opencode branding, and update the privacy policy package id ai.opencode.mobile -> cc.agentlabs.opencode. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
133 lines
7.4 KiB
Markdown
133 lines
7.4 KiB
Markdown
# Google Play Store — opencode-mobile
|
||
|
||
Operational doc for shipping `ai.opencode.mobile` to Google Play under VIBE TECHNOLOGIES, LLC.
|
||
|
||
For full company facts (D-U-N-S, address, governor, etc.) see `~/.agents/skills/vibetechnologies-llc/SKILL.md` and Bitwarden item `GOOGLE_PLAY_CONSOLE_ACCOUNT`.
|
||
|
||
---
|
||
|
||
## Account state (as of 2026-05-24)
|
||
|
||
| Field | Value |
|
||
|---|---|
|
||
| Google account (owner) | vibeteaichnologies@gmail.com |
|
||
| Developer Account ID | **8842655543970815326** |
|
||
| Account type | Organization — VIBE TECHNOLOGIES, LLC |
|
||
| Developer name (public) | `VIBE TECHNOLOGIES, LLC` |
|
||
| D-U-N-S | 142059652 |
|
||
| Console URL | https://play.google.com/console/u/2/developers/8842655543970815326 |
|
||
| Registration fee | ✅ $25 paid via Mercury virtual card (Bitwarden: `MERCURY_VIRTUAL_CARD_PLAY_CONSOLE`) |
|
||
| Payments profile | ✅ linked, D-U-N-S verified |
|
||
| Website ownership | ✅ verified — https://agentlabs.cc/ (Search Console auto-detected meta tag) |
|
||
| Contact email | ✅ support@agentlabs.cc verified |
|
||
| Identity verification | ❌ **pending — needs governor ID upload at Home → Verify your identity** |
|
||
| Phone verification | ⏸ auto after identity |
|
||
| API access (GCP link) | ⏸ blocked on identity (URL `/api-access` redirects home) |
|
||
| Create app | ⏸ blocked on identity |
|
||
| First AAB upload | ⏸ blocked on app creation |
|
||
|
||
### Linked GCP resources
|
||
|
||
| Resource | Value |
|
||
|---|---|
|
||
| Project | `opencode-mobile-deploy` |
|
||
| Service account | `playstore-deploy@opencode-mobile-deploy.iam.gserviceaccount.com` |
|
||
| API enabled | `androidpublisher.googleapis.com` |
|
||
| SA JSON key | ✅ in Bitwarden item `PLAY_STORE_SERVICE_ACCOUNT_JSON` + GitHub secret of same name |
|
||
|
||
---
|
||
|
||
## What's already done
|
||
|
||
1. ✅ gcloud authed as `vibeteaichnologies@gmail.com`
|
||
2. ✅ GCP project + API + service account + JSON key
|
||
3. ✅ JSON key saved to Bitwarden + set as GitHub secret
|
||
4. ✅ Signed release AAB built: `android/app/build/outputs/bundle/release/app-release.aab` (58.5 MB, sha256 `ae3a8aa498dfa188226ec5db06ba51cc77cf94c6a311be097f1c47534b2aff61`)
|
||
5. ✅ Play Developer account created + $25 paid
|
||
6. ✅ Payments profile linked w/ D-U-N-S 142059652
|
||
7. ✅ Website + email verifications complete
|
||
8. ✅ CI workflow `.github/workflows/publish-play-store.yml` patched:
|
||
- versionCode auto-bumped from `github.run_number` (was hardcoded `1`, would have failed on 2nd release)
|
||
- r0adkll/upload-google-play pinned to v1.1.5
|
||
- `whatsNewDirectory: distribution/whatsnew` added
|
||
9. ✅ Listing copy drafted: `distribution/play-listing.md`
|
||
10. ✅ Release notes scaffold: `distribution/whatsnew/whatsnew-en-US`
|
||
|
||
---
|
||
|
||
## What's left to do — eligibility checklist
|
||
|
||
| # | Item | Owner | Blocking? |
|
||
|---|---|---|---|
|
||
| 1 | Upload governor ID for identity verification | User | 🔴 yes |
|
||
| 2 | App icon — real 512×512 PNG (current `assets/icon.json` is placeholder) | Agent | ✅ done — `assets/icon.png` (1024×1024 master), `distribution/play-graphics/icon-512.png` (512×512 store upload) |
|
||
| 3 | Adaptive icon — 432×432 foreground PNG | Agent | ✅ done — `assets/adaptive-icon.png` (432×432, transparent bg) |
|
||
| 4 | Feature graphic — 1024×500 PNG | Agent | ✅ done — `distribution/play-graphics/feature-graphic.png` |
|
||
| 5 | At least 2 phone screenshots (1080×1920 or similar) | Agent | ✅ done — `distribution/play-graphics/phone-{01,02,03}.png` (1080×2400 each; 3 screens: connection, chat, diff viewer) |
|
||
| 6 | Privacy policy — live at https://dzianisv.github.io/opencode-mobile/privacy/ | Agent | ✅ done — live & verified (HTTP 200) on gh-pages; `distribution/privacy-policy.html` (source), `distribution/privacy-policy.md` (markdown mirror) |
|
||
| 7 | Data safety form answers (drafted in `distribution/play-listing.md`) | User (in Console after app created) | ✅ verified — no analytics/ad SDKs found; crash logs updated to "Optional (opt-in, default OFF)" per new consent gate |
|
||
| 8 | Content rating questionnaire (IARC, drafted) | User (in Console after app created) | ✅ verified — no violence/sexual/gambling/UGC; "interact with other users" = No (user talks to own AI agent) |
|
||
| 9 | App access — reviewer instructions for self-hosted opencode (drafted) | User | ✅ verified — instructions accurate; `npm install -g opencode-ai && opencode serve` flow confirmed in `play-listing.md` |
|
||
| 10 | Sentry opt-in consent gate (for F-Droid parity + GDPR friendly) | Agent | ✅ done — `src/lib/telemetry.ts` (consent store), `src/components/TelemetryConsentModal.tsx` (first-launch modal), `app/_layout.tsx` (gated init), `app/(tabs)/settings.tsx` (Privacy section toggle) |
|
||
| 11 | Closed testing recruitment — 12+ testers, 14 days | User | ⏸ post-Internal-track |
|
||
|
||
---
|
||
|
||
## Publishing process (after identity verified)
|
||
|
||
1. (manual) Setup → API access → Link `opencode-mobile-deploy`. Grant `playstore-deploy@…` "Release to production, exclude devices, and use Play App Signing".
|
||
2. (manual) Create app `ai.opencode.mobile`. Fill listing from `distribution/play-listing.md`.
|
||
3. (manual) Upload graphic assets + privacy policy URL.
|
||
4. (manual) Complete Data safety + Content rating + App access forms.
|
||
5. (manual, first time only) Upload `app-release.aab` to Internal testing track → add tester emails → publish.
|
||
6. (automated thereafter) `git tag v0.2.x && git push --tags` → CI builds + publishes to Internal.
|
||
|
||
After 14 days on Closed testing with 12+ active testers → promote to Production.
|
||
|
||
---
|
||
|
||
## Files in repo
|
||
|
||
- `.github/workflows/publish-play-store.yml` — CI automation
|
||
- `distribution/play-listing.md` — store listing copy
|
||
- `distribution/whatsnew/whatsnew-en-US` — release notes
|
||
- `distribution/strategy.md` — broader distribution + monetization strategy
|
||
- `keystores/production-release.jks` — signing key (gitignored; backup in Bitwarden)
|
||
- `android/` — Expo prebuild output (regenerated each CI run)
|
||
|
||
---
|
||
|
||
## Sibling channels: F-Droid + IzzyOnDroid
|
||
|
||
OpenCode Mobile is also distributed via F-Droid (mainline) and IzzyOnDroid —
|
||
the two primary OSS Android app stores for privacy-conscious users.
|
||
|
||
All three channels use the **same signing key and same package id** (`ai.opencode.mobile`),
|
||
so users can update in-place across stores.
|
||
|
||
Submission packets (ready to file after the first Play release is live):
|
||
|
||
- `distribution/fdroid-submission/` — F-Droid mainline MR packet
|
||
- `metadata.yml` — ready-to-PR fdroiddata metadata
|
||
- `SUBMISSION-CHECKLIST.md` — step-by-step MR filing guide
|
||
- `REPRODUCIBLE-BUILD-NOTES.md` — reproducibility audit + fixes needed
|
||
- `SIZE-OPTIMIZATION.md` — APK ABI splits + FCM flavor documentation
|
||
- `distribution/izzyondroid-submission/` — IzzyOnDroid inclusion request packet
|
||
- `INCLUSION-REQUEST.md` — ready-to-paste Codeberg issue body
|
||
- `SUBMISSION-CHECKLIST.md` — step-by-step filing guide
|
||
- `distribution/SIGNING-KEY-FINGERPRINTS.md` — signing key SHA-256 fingerprints
|
||
- `docs/fdroid.md` — operational doc for F-Droid / IzzyOnDroid (mirrors this doc)
|
||
|
||
Timeline: IzzyOnDroid 1–3 days after first APK on GitHub releases.
|
||
F-Droid mainline 4–12 weeks after MR filed.
|
||
|
||
---
|
||
|
||
## Reference
|
||
|
||
- Console: https://play.google.com/console/u/2/developers/8842655543970815326
|
||
- Account details: https://play.google.com/console/u/2/developers/8842655543970815326/account/developer-details
|
||
- Identity verification: https://play.google.com/console/u/2/developers/8842655543970815326/app-list (Home → Verify your identity)
|
||
- Original handoff doc: `opencode-mobile.playstore.md` (root, mostly historical)
|
||
- Setup notes: `distribution/PLAY_CONSOLE_SETUP.md` (historical)
|