Commit Graph

22 Commits

Author SHA1 Message Date
Den
c43ec27a8c fix(release): give v0.4.15 its own versionCode so the release can actually ship (#180)
The v0.4.15 release commit (f564869) bumped package.json and app.json
`expo.version` but left `android/app/build.gradle` at versionCode 41 /
versionName "0.4.14" and app.json `android.versionCode` at 41. Consequences,
all observed on tag v0.4.15:

- `npm run check:versions` fails, so the F-Droid publish (run 31820921979)
  died at its first step and the `release` job in build.yml never ran — no
  GitHub release exists for v0.4.15. That is the source the new in-app update
  check polls, so the mechanism this release exists to ship had nothing to
  find.
- versionCode 41 is v0.4.14's. F-Droid and every direct-APK install key
  upgrades off versionCode, so even a successful publish would not have been
  offered to the 0.4.10/0.4.14 cohort. Play was unaffected only because the
  publish workflow overrides the code with run_number+100.

Fix is the missing half of the release bump: versionCode 42 / versionName
0.4.15, plus the changelog files named after the code (distribution/ for the
record, fastlane/ for F-Droid).

check-version-parity.mjs now also requires distribution/changelogs/<code>.txt
to exist and to describe the version being released, and the fastlane copy to
exist. A stale versionCode is otherwise internally consistent and silent;
verified it discriminates — code 41 with version 0.4.15 fails, 42 passes.

Tests: npm test 320 pass.

Co-authored-by: engineer <engineer@macbookpro.lan>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-08-14 10:33:38 -07:00
engineer
950080eae5 chore(release): v0.4.14 (versionCode 41) — Sentry noise gate reaches users
Ships 7c8bc7d (#169). Until this release, the filter exists only in main: every
installed build still uploads `connect timeout` / `connect server-unreachable`
and un-deduped retry loops, which is what makes opencode-mobile the org's #1
Sentry volume source (~4,500 events/month against a 3,500/month org quota).

User-visible change is deliberately small — quieter crash reporting, real
crashes unaffected — so the Play changelog says exactly that.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-08-14 06:37:08 -07:00
Den
af7da46c0f chore(release): v0.4.13 (versionCode 40) — waitlist retry queue (#166)
* chore(release): v0.4.13 (versionCode 40) — waitlist retry queue reaches users

Ships 2f81d34 (#165): failed waitlist signups are persisted on-device and
retried on app foreground instead of silently falling back to mailto.
Until this Play release, no user is running that fix.

Co-Authored-By: Paperclip <noreply@paperclip.ing>

* fix(waitlist): stamp the app version into the mailto escape hatch

AGE-100 asks for the post-release mailto count "split by app version where the
mail body allows it". It did not allow it: the body was "Sign me up!\n\nEmail: x"
and nothing else, so a mail from an unreachable pre-v0.4.8 sideload is byte-identical
to one from a current build whose retry queue leaked. Those two readings have
opposite meanings — the first is the known permanent cohort, the second is a defect.

Now the escape hatch appends "App: OpenCode Mobile v<version>" (app.json, same
source Sentry uses). Absence of the line == pre-v0.4.13 build. waitlist.ts stays
free of react-native/JSON imports; the screen injects the version.

Co-Authored-By: Paperclip <noreply@paperclip.ing>

---------

Co-authored-by: engineer <engineer@macbookpro.lan>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-08-14 02:02:53 -07:00
dzianisv
3ac7eb786c chore(release): v0.4.12 (versionCode 39) — global recent sessions + integration test (#145) 2026-07-23 00:59:16 -07:00
Den
c9b504711e chore(release): prepare v0.4.11 (#142)
Align release metadata for the F-Droid reproducibility repair tracked in issue #95.

Co-authored-by: engineer <engineer@gray-knight-m1.local>
2026-07-22 09:42:21 -07:00
Den
6aee78e840 chore(release): 0.4.10 (versionCode 37) — include reconnect + security fixes (#126)
Supersedes v0.4.9 (versionCode 36, on internal but lacking these) so a SECURE,
current build is available in the Play library to promote to production:
- #124 reconnect resync (stuck 'processing' after network drop)
- #125 HIGH: biometric app-lock re-locks on background (was bypassable after
  first unlock); connection password edits now persist
plus everything in v0.4.9 (demo mode, first-run clarity, core + notification
fixes). Promote versionCode 37 to production.


Claude-Session: https://claude.ai/code/session_01T12AhSnQVrSxNnvwfCx2z6

Co-authored-by: engineer <engineer@macbookpro.lan>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 09:23:26 -07:00
Den
fa3f1df1fa chore(release): 0.4.9 (versionCode 36) — bundle core + notification fixes (#122)
Supersedes v0.4.8 (still on internal, not promoted) with everything merged
since: offline demo mode + first-run clarity (0.4.8), core session fixes
(#120: queued-message ghosting, selectSession race), and notification/
permission fixes (#121: permission never requested, wrong-session-on-back-nav,
misleading completion pushes, question double-reply). Production is on 0.4.5,
so promoting v0.4.9 gets users the full hardened app in one step.


Claude-Session: https://claude.ai/code/session_01T12AhSnQVrSxNnvwfCx2z6

Co-authored-by: engineer <engineer@macbookpro.lan>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 06:06:15 -07:00
Den
20806d41ba chore(release): 0.4.8 (versionCode 35) — ship retention improvements (#112)
Bundles the unreleased work sitting on main since v0.4.7:
- Offline demo mode (#108) — value without a server
- First-run clarity + fast-fail connect timeout (#107)
- Directory-browser stuck-state fix (#106)

Version + versionCode bumped and a user-facing changelog added so the owner
can cut the release (tag v0.4.8 / dispatch publish-play-store.yml). Does NOT
itself publish — releasing to production stays an owner action.


Claude-Session: https://claude.ai/code/session_01T12AhSnQVrSxNnvwfCx2z6

Co-authored-by: engineer <engineer@macbookpro.lan>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 20:05:36 -07:00
Den
004fa13795 chore(store): refresh Play listing — drop dated 'GPT-4', ASO keyword pass (#83)
* chore(store): refresh Play listing — drop dated "GPT-4", ASO keyword pass

distribution/play-listing.md is the canonical copy-paste source for the
Play Console listing (per distribution/strategy.md). It still named
"GPT-4" and was missing the directory picker and reasoning-effort
features shipped since. Rewrite title/short description/full
description to be model-agnostic ("Claude, GPT, Gemini, or any other
model") so it stops dating itself, add the two new feature bullets, a
connection-options section, and screenshot captions.

Also fixes the same stale "GPT-4" mention in the orphaned
distribution/play-store-listing.md (marked superseded — it was never
merged back into play-listing.md), distribution/aso-audit.md's
recommended-copy example, and distribution/app-store-listing.md for
cross-store consistency.

fastlane/metadata/android/en-US/full_description.txt is untouched: it
already had no stale model name, and it is shared with the F-Droid
auto-pull (plain text + AntiFeatures disclosure required by mainline
F-Droid) so it must not get Play-style HTML/marketing copy. Only
title.txt and short_description.txt (Play/App-store-only fields, not
read by F-Droid's metadata.yml which sets AutoName explicitly) were
aligned with the new short description.

* docs(store): correct full-description char count annotation (3410→3366)

---------

Co-authored-by: engineer <engineer@gray-knight-m1.local>
2026-07-16 19:08:29 -07:00
Dennis V
4f10cd4ccf assets: expand to 7 screenshots covering full PRD app flow
Shows every major screen: connect, sessions list, chat input,
tool calls streaming, file writes, completed result, settings/model.

01 - Add connection screen (onboarding)
02 - Sessions list loaded from server
03 - Session chat view with message sent
04 - AI tool calls streaming (reading files)
05 - AI writing TypeScript files to disk
06 - Completed session — hello.ts created
07 - Settings + model selection

Website updated to show all 7 in a tighter grid (max-width 260px).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-23 17:31:57 +00:00
Dennis V
c1ced308cc assets: update screenshots and demo from CUA run 28041009456 (v0.4.7)
Fresh from successful onboarding showcase: connect → sessions → TypeScript
coding task → verify → settings. All critical phases PASS.

Screenshots:
  01: Sessions list loaded after connecting
  02: TypeScript hello.ts completed successfully (AI output visible)
  03: Sessions reload after navigation back

Demo: 10x speed (168s → 31s), 116KB mp4 + 1.2MB gif fallback.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-23 17:06:07 +00:00
Dennis V
7c4fdbdb57 assets: update Play Store phone screenshots from CUA run 28013924527
- 01.png: sessions list view
- 02.png: active TypeScript session (code generation)
- 03.png: settings/model selection screen

Uploaded to cc.agentlabs.opencode Play Console (en-US, phoneScreenshots).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-23 16:42:59 +00:00
Dennis V
2de1d22904 assets: update screenshots and demo video from CI run 27992695069
Screenshots from CUA smoke test showing:
- 01: Sessions list loading real sessions from server on connect
- 02: Streaming AI response in a coding session
- 03: Sessions tab after navigating back (sessions_reload regression guard)

Demo: 10x speed video (138s → 14s) of full onboarding flow.
Website now shows <video> with mp4 source + gif fallback.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-23 00:37:15 +00:00
Dennis V
8ad088b771 copy(descriptions): rewrite Play Store + website for technical clarity — lead with opencode serve remote control, Tailscale setup
- full_description.txt: replace fluffy copy with concrete HOW IT WORKS steps,
  TAILSCALE recommendation, explicit WHAT THIS APP IS NOT section, updated
  support email to support@agentlabs.cc
- short_description.txt: 77-char tagline focused on opencode serve remote control
- docs-site/index.html: update meta description, og:description, twitter:description,
  ld+json description, hero tagline, and 'What is OpenCode Mobile?' paragraphs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-23 00:18:22 +00:00
Dennis V
1f476f1eab fix(support): update contact email to support@agentlabs.cc
Replace all @vibebrowser.app email addresses with @agentlabs.cc across
22 files including privacy policy, Play/App Store listings, fastlane
metadata, docs, README, CONTRIBUTING, eas.json, and in-app mailto links.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-23 00:17:06 +00:00
Dennis V
ae124d7311 release: bump app.json/package.json to 0.4.5, add changelog 32.txt
- app.json 0.4.4 -> 0.4.5 (matches build.gradle versionName)
- package.json 0.4.3 -> 0.4.5
- fastlane changelog 32.txt: notes #32 fix (sessions list shows workspace projects)
2026-06-22 05:01:44 +00:00
engineer
108260cec7 release: bump versionCode 5->6 for v0.4.4 + add changelog 6.txt
v0.4.3 already shipped as versionCode 5; a duplicate code would be rejected by Play and ignored by F-Droid. Bump to 6 unblocks the v0.4.4 release. QA gate passed (units + on-device E2E + visual render check screenshots in docs/qa/render-check/).
2026-06-08 08:36:53 -07:00
engineer
2b5519a115 aso(play): keyword-optimize title + short desc, fix dead privacy URL
- title.txt: 'OpenCode Mobile' -> 'OpenCode Mobile: AI Coding' (26/30 chars,
  adds the 'AI coding' search keyword to the strongest Play ranking field)
- short_description: front-load 'AI coding agent for Android' (71/80)
- full_description: dead privacy URL opencode.vibebrowser.app (000) ->
  live dzianisv.github.io/opencode-mobile/privacy/ (200) — was a Play
  rejection risk

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 05:18:04 -07:00
engineer
6339d5f453 fix(fdroid): correct fastlane metadata for mainline MR #39530 — title, drop other-store claims, changelog by versionCode
Addresses linsui review: summary/description pulled from fastlane; honest, policy-compliant copy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 17:37:10 -07:00
engineer
6405e2b9d9 refactor: commit package rename for core build files
The earlier rename commit did not persist the package-identity edits for
app.json, build.gradle, fastlane, the publish workflow, and the Kotlin
package declarations (they were reverted in the working tree after staging).
HEAD therefore still built ai.opencode.mobile. This commits the real
cc.agentlabs.opencode identity so CI builds the rebranded package.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 04:17:31 -07:00
Dennis V
b8fb390f5c feat(release): production signing in build.yml + F-Droid metadata filled
- build.yml: use production keystore (KEYSTORE_BASE64) on tag pushes,
  fall back to debug key for PRs/branch builds — build.gradle already
  reads RELEASE_STORE_FILE env var so no Gradle changes needed
- distribution/fdroid-submission/metadata.yml: filled
  AllowedAPKSigningKeys with actual SHA-256 fingerprint, commit tag
  updated to v0.3.1, version bumped to 0.3.1
- app.json: bump version 0.2.3 → 0.3.1, versionCode 1 → 2
- Add eas.json + EAS README for iOS App Store builds
- Add fastlane/metadata/android for Play Store / F-Droid graphics
- Add distribution docs: applestore, fdroid, market, playstore,
  security, threat-model, opencode-site-deploy

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 01:26:35 +00:00
Ubuntu
4ad09eae82 feat: add Play Store publish workflow and signing config 2026-05-17 21:11:43 +00:00