Commit Graph

20 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
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