356 Commits

Author SHA1 Message Date
DIYgod 28ab52296e fix(mobile): embed the real OTA runtime version in Android builds
EAS generates android/ with `expo prebuild`, which sets NODE_ENV to
"development" when it is unset. The app config picked the 0.0.0-dev
runtime from NODE_ENV, so every Android binary since the React Native
0.79 upgrade embedded expo_runtime_version 0.0.0-dev, and ota.folo.is
rejects its update checks. iOS kept the real runtime because eas-cli
syncs its committed Expo.plist outside of prebuild.

Decide the development runtime from the EAS build profile and fall back
to NODE_ENV only without one (expo start, local prebuild). The
eas-build-post-install hook now fails any build whose native runtime
differs from the expected one, and a test evaluates every eas.json
profile the way prebuild does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 16:21:11 +08:00
DIYgod 4346e53ec8 Merge pull request #5105 from RSSNext/fix/signpath-actions-read
fix(ci): let the SignPath connector read the desktop release job
2026-10-02 23:44:39 +08:00
DIYgod 559b4b8423 ci: run dev's required checks on mobile-main pushes
The sync PR that merges a release branch back into dev is opened with
GITHUB_TOKEN, so it starts no pull_request workflows. Its auto-merge waits
for dev's required checks, "Format, Lint and Typecheck (lts/*)" and "Build
web and SSR server (lts/*)". Pushes to main run both on the merge commit, so
the desktop sync PR merges by itself, but pushes to mobile-main ran neither,
and mobile sync PRs sat until someone merged them by hand (#5095 waited eight
days).

Run both workflows on mobile-main pushes too, without cancelling runs in
progress there, and guard the triggers with a test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 19:50:25 +08:00
DIYgod dabd55f3a6 chore(github): point issue template support links to Discord
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 00:04:32 +08:00
dependabot[bot] 3087c362d4 build(deps): bump actions/setup-java from 5 to 6 (#5076)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 5 to 6.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-26 21:38:19 +08:00
dependabot[bot] 1bb24aaa9c build(deps): bump signpath/github-action-submit-signing-request (#5089)
Bumps [signpath/github-action-submit-signing-request](https://github.com/signpath/github-action-submit-signing-request) from 2.2 to 3.0.
- [Release notes](https://github.com/signpath/github-action-submit-signing-request/releases)
- [Commits](https://github.com/signpath/github-action-submit-signing-request/compare/v2.2...v3.0)

---
updated-dependencies:
- dependency-name: signpath/github-action-submit-signing-request
  dependency-version: '3.0'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-26 20:56:11 +08:00
DIYgod fac0b0832a fix(ci): keep mobile asset builds on one pnpm layout 2026-09-22 16:42:50 +08:00
DIYgod 2f392594d5 chore(deps): refresh dependencies and verify affected app flows 2026-09-22 16:20:40 +08:00
DIYgod 0e59bd2ddd feat(store): settle transactions by sync id and sync lists and inboxes
Follow up on the sync engine:

- Transaction kinds report the `lastSyncId` their mutation returned. The
  queue releases an acknowledged transaction's overlays as soon as the sync
  engine has applied that id, instead of always waiting out the 30 s window,
  which stays as the upper bound for servers without sync ids.
- The engine applies the new `list`, `inbox` and `inbox_entry` actions and
  inbox `N` hints, so list edits, inbox changes and new mail made elsewhere
  show up without a full refetch.
- While the engine is active the unread mismatch heuristic stands down and
  the desktop blanket invalidation skips the queries the delta feed already
  keeps fresh. Both remain as the fallback for servers without `/sync`.

Also fix the Android build: `setup-android` installs the obsolete `tools`
package by default, which the SDK repository no longer serves.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 18:16:25 +08:00
Komh 02efd07710 feat(desktop): build a Linux .deb alongside the AppImage (#5078)
Adds @electron-forge/maker-deb so `electron-forge make` on Linux emits a
.deb next to the existing AppImage.

- forge.config: MakerDeb scoped to linux; `bin` pinned to packagerConfig.name
  so the staging build ("Folo Staging") also resolves; folo:// and follow://
  registered as x-scheme-handler MIME types; Network;News; categories.
- postMake: .deb is renamed to the Folo-<version>-linux-<arch>.deb convention
  but kept out of latest-linux.yml (the electron-updater feed is AppImage-only).
- CI: install fakeroot/dpkg on the Linux leg; upload the .deb as its own
  `linux-x64-deb` artifact; add *.deb to the attestation and release globs.
- pnpm-lock.yaml regenerated with the pinned pnpm@10.17.0. The large churn is
  peer-key reserialization from a newer pnpm than last wrote the lockfile;
  the only functional additions are maker-deb and its electron-installer-debian
  subtree.


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

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 15:23:21 +08:00
DIYgod 3846c90b67 fix(ci): scope release detection to target branch (#5065) 2026-08-01 23:14:33 +08:00
dependabot[bot] 773f1bfe21 build(deps): bump actions/setup-node from 6 to 7 (#5046)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-15 09:00:49 +08:00
DIYgod de935145da fix(ci): run iOS builds on macOS 26 2026-07-11 10:21:42 +08:00
DIYgod dd99acf8ef fix(ci): trigger iOS builds for toolchain changes 2026-07-11 10:16:55 +08:00
DIYgod 815536c93f fix(ci): use Xcode 26.4.1 for iOS builds 2026-07-11 10:15:31 +08:00
DIYgod f89260362b fix(ci): use Xcode 26.3 for iOS builds 2026-07-11 09:45:50 +08:00
dependabot[bot] 54447e6faa build(deps): bump actions/cache from 5 to 6 (#5034)
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-24 09:20:14 +08:00
dependabot[bot] 497d872a5c build(deps): bump expo/expo-github-action from 8 to 9 (#5019)
Bumps [expo/expo-github-action](https://github.com/expo/expo-github-action) from 8 to 9.
- [Release notes](https://github.com/expo/expo-github-action/releases)
- [Changelog](https://github.com/expo/expo-github-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/expo/expo-github-action/compare/v8...v9)

---
updated-dependencies:
- dependency-name: expo/expo-github-action
  dependency-version: '9'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-19 09:19:59 +08:00
dependabot[bot] bde516f600 build(deps): bump actions/checkout from 6 to 7 (#5025)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-19 08:32:26 +08:00
DIYgod e551882bb3 fix(release): extend OTA sync trigger timeout 2026-05-29 16:10:33 +08:00
DIYgod 295f7e4291 fix(release): skip opposite platform push builds 2026-05-29 15:46:38 +08:00
DIYgod d3b1e93cac fix(release): always build mobile release apk 2026-05-29 14:47:41 +08:00
DIYgod c6f942436d ci: serialize pnpm dependency installs 2026-05-26 12:34:24 +08:00
dependabot[bot] d3c1b8bfa1 build(deps): bump cloudflare/wrangler-action from 3 to 4 (#5007)
Bumps [cloudflare/wrangler-action](https://github.com/cloudflare/wrangler-action) from 3 to 4.
- [Release notes](https://github.com/cloudflare/wrangler-action/releases)
- [Changelog](https://github.com/cloudflare/wrangler-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/cloudflare/wrangler-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: cloudflare/wrangler-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 14:11:06 +08:00
DIYgod 65fafb331a Merge pull request #4991 from RSSNext/release/mobile/0.5.1
release(mobile): Release v0.5.1
2026-04-30 18:03:21 +08:00
DIYgod 3191794f82 fix(ci): build release apk with production profile 2026-04-18 11:41:24 +08:00
dependabot[bot] b5c4ec96ef Merge pull request #4975 from RSSNext/dependabot/github_actions/dev/signpath/github-action-submit-signing-request-2.2
build(deps): bump signpath/github-action-submit-signing-request from 2.1 to 2.2
2026-04-15 16:28:36 +08:00
DIYgod 34fd039ff9 fix(ci): restore release workflow triggers 2026-04-15 15:44:01 +08:00
DIYgod b5fc6ac258 fix(ci): skip expo doctor in local eas builds 2026-04-15 12:01:53 +08:00
DIYgod 8e2e9ca29d fix(ci): preserve mobile web assets for local eas builds 2026-04-14 15:00:53 +08:00
DIYgod bd2f2cae0e fix(ci): auto-reserve desktop store build versions 2026-04-14 14:35:21 +08:00
DIYgod 85c9c2901e fix(ci): avoid pnpm hoist conflicts in local eas builds 2026-04-14 14:32:03 +08:00
DIYgod 1ebe3c746a fix(ci): support current altool mas uploads 2026-04-14 14:19:22 +08:00
DIYgod 3cd5468ef9 fix(ci): use correct android release artifact 2026-04-14 13:50:58 +08:00
DIYgod 850e760643 fix(ci): preserve apps path in release asset artifact 2026-04-14 13:44:26 +08:00
DIYgod e02a0a257b fix(ci): run release asset aggregation with bash 2026-04-14 13:03:26 +08:00
dependabot[bot] 6163ec0d26 build(deps): bump softprops/action-gh-release from 2 to 3 (#4968)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2...v3)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-14 09:29:12 +08:00
dependabot[bot] 20d82b5862 build(deps): bump actions/download-artifact from 5 to 8 (#4969)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v5...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-14 09:28:56 +08:00
DIYgod 32c6ec3217 feat: cache storefront versions for ota policy 2026-04-12 22:21:20 +08:00
DIYgod 51efb5d5a5 fix(release): repair ota and desktop update flows 2026-04-12 16:04:15 +08:00
DIYgod f3d8d33d2c fix(ota): harden desktop sync and updater flow 2026-04-12 15:39:13 +08:00
DIYgod 33c8bb98b6 feat(ota): unify desktop updates with ota service 2026-04-12 15:39:13 +08:00
DIYgod 6059e654d8 fix(ci): disable frozen lockfile for local eas builds 2026-04-11 21:33:22 +08:00
DIYgod 8f5649e1fd feat(release): drive mobile release mode from config files 2026-04-11 16:22:05 +08:00
dependabot[bot] f678f4bd67 build(deps): bump pnpm/action-setup from 5 to 6 (#4962)
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 5 to 6.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](https://github.com/pnpm/action-setup/compare/v5...v6)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-11 10:09:43 +08:00
DIYgod f9dd5a83ee feat(ota): add GitHub release-based OTA delivery 2026-04-11 10:07:03 +08:00
DIYgod 05a789129a fix(ota): emit expo-compatible update identifiers 2026-04-10 23:56:48 +08:00
DIYgod e5c4df2dd5 ci(ota): tighten trailer validation 2026-04-10 22:18:57 +08:00
DIYgod cec72605e3 fix(ci): harden ota publish workflow 2026-04-10 22:11:34 +08:00
DIYgod 340fb54056 ci(ota): publish releases and trigger sync 2026-04-10 22:00:59 +08:00