Split from #86 (PART 1). PART 2 (stale committed versionCode) is handled in its own small PR.
Problem: F-Droid rebuilds the APK from source and strips Firebase/Google-Sign-In/Sentry via the recipe's fdroid/*-patches. But the app-release.apk on GitHub Releases (referenced by Binaries:, also fed to IzzyOnDroid) is built by .github/workflows/build.yml without those patches, so it still contains Firebase/GMS/Sentry and F-Droid's from-source rebuild diverges → fdroid build fails.
Fix direction: apply the same fdroid/expo-application-patches / fdroid/expo-notifications-patches (or a reproducible build profile) in the tag-triggered release path so the published binary matches F-Droid's rebuild.
Why split out / not auto-applied: it changes the shipped artifact's feature set (removes push notifications + Sentry), build.yml's build job is shared between CI validation and tag releases so it needs tag-only conditional branching, and verification needs real fdroid build tooling (manual).
Acceptance: fdroid build reproduces the published APK; https://f-droid.org/packages/cc.agentlabs.opencode/ progresses. Dedicated branch, human review + local fdroid verification before merge.
Split from #86 (PART 1). PART 2 (stale committed versionCode) is handled in its own small PR.
Problem: F-Droid rebuilds the APK from source and strips Firebase/Google-Sign-In/Sentry via the recipe's
fdroid/*-patches. But theapp-release.apkon GitHub Releases (referenced byBinaries:, also fed to IzzyOnDroid) is built by.github/workflows/build.ymlwithout those patches, so it still contains Firebase/GMS/Sentry and F-Droid's from-source rebuild diverges →fdroid buildfails.Fix direction: apply the same
fdroid/expo-application-patches/fdroid/expo-notifications-patches(or a reproducible build profile) in the tag-triggered release path so the published binary matches F-Droid's rebuild.Why split out / not auto-applied: it changes the shipped artifact's feature set (removes push notifications + Sentry),
build.yml's build job is shared between CI validation and tag releases so it needs tag-only conditional branching, and verification needs realfdroid buildtooling (manual).Acceptance:
fdroid buildreproduces the published APK; https://f-droid.org/packages/cc.agentlabs.opencode/ progresses. Dedicated branch, human review + local fdroid verification before merge.