71 Commits

Author SHA1 Message Date
DIYgod 980019b65e release(mobile): release v0.6.0 2026-10-16 13:31:59 +08:00
DIYgod 605cb129fb release(mobile): release v0.5.11 2026-10-02 20:41:13 +08:00
DIYgod 0f35b68dea chore(mobile): tag the RNFB disableSPM line in the committed Podfile
The line was added by hand without the markers that the
@react-native-firebase/app config plugin writes, so every
`expo prebuild --no-clean` inserted a second, tagged copy of it. Wrap it
in the plugin's generated markers so prebuild leaves the committed
Podfile unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:09:50 +08:00
DIYgod de7ac25ca9 fix(mobile): adopt the UIScene life cycle for iOS 27 SDK builds
Apps linked against the iOS 27 SDK (Xcode 27) stop at launch on iOS 27 in
_UIApplicationEvaluateRuntimeIssueForNoSceneLifecycleAdoption unless they use
the scene-based life cycle. Enable expo-build-properties'
ios.enableSceneSupport (Expo 57.0.23+) and apply the same changes to the
committed native project, so a prebuild reproduces it:

- AppDelegate conforms to ExpoReactNativeFactoryProvider and no longer
  creates the window or starts React Native.
- Info.plist declares a scene manifest that points at Expo's
  EXExpoAppSceneDelegate, which creates the window and starts React Native.

Builds made with Xcode 26 keep working with the scene life cycle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 16:54:20 +08:00
DIYgod 0336138fc1 Merge pull request #5095 from RSSNext/mobile-main
chore(sync): merge mobile-main into dev
2026-09-26 21:04:52 +08:00
DIYgod 2f392594d5 chore(deps): refresh dependencies and verify affected app flows 2026-09-22 16:20:40 +08:00
DIYgod 4dd9d46d48 chore(mobile): keep the build number from the release bump
A local simulator build raised CFBundleVersion in Info.plist and the change
slipped into the previous commit; the bump had set it to 13.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-18 19:39:12 +08:00
DIYgod 7ecbc018e4 fix(mobile): drain expo fetch requests before reloading the runtime
Signing out (and the other runtime reloads) crashed the app with SIGSEGV on
the expo.modules.fetch.RequestQueue thread. Expo's native fetch keeps a
closure that owns the JS promise until the response reaches a terminal state;
reloading while a request was pending destroyed that closure against the
torn-down runtime. Sign-out always had requests pending: clearing the cookie
refetches the session queries and popping to the root loads the guest timeline.

Expo also installs its fetch as the global `fetch`, so every request in the app
goes through it. `network-activity.ts` wraps the global fetch (from the
polyfill entry) and the explicit `expo/fetch` imports, tracks each request
until the native response reports `readyForJSFinalization`, and can abort them
all. `reloadApp` cancels the queries, aborts the in-flight requests, waits for
the network to go idle (three seconds at most) and only then reloads. Every
`reloadAppAsync` call site goes through it.

Verified with the Maestro iOS auth journey against production: register, sign
out and log in pass with no crash report.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-18 19:37:27 +08:00
DIYgod 1ded9fd2b0 release(mobile): release v0.5.10 2026-09-18 19:14:53 +08:00
DIYgod bedc3bc6d0 fix(mobile): raise pod deployment targets to the app floor for Xcode 27
Xcode 27 refuses the iOS 9.0 and 12.0 deployment targets that older pods still
declare on their resource bundle targets, and its Swift compiler rejects
react-native-ios-context-menu, which uses UIAction.subtitle behind an iOS 15
availability check. The app requires iOS 16.4, so the Podfile now raises every
pod target to at least ios.deploymentTarget in post_install; the config plugin
generates the block and the checked-in Podfile carries it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-18 18:22:56 +08:00
DIYgod 22a9bcd4e4 release(mobile): release v0.5.9 2026-09-02 10:00:44 +08:00
DIYgod f6777ee559 release(mobile): release v0.5.8 2026-08-01 17:45:07 +08:00
DIYgod eb782e0389 release(mobile): release v0.5.7 2026-07-31 16:31:13 +08:00
DIYgod 7c4d51a642 release(mobile): release v0.5.6 2026-07-13 11:14:04 +08:00
DIYgod 451e263db4 chore(sync): merge mobile-main into dev 2026-07-12 18:32:36 +08:00
DIYgod 1158281f59 chore(deps): update frontend dependencies (#5038)
* chore(deps): update frontend dependencies

* fix(ci): format OTA verification commands
2026-07-10 22:36:12 +08:00
DIYgod 5d6b5ed40f release(mobile): release v0.5.5 2026-06-22 14:58:32 +08:00
DIYgod 367c638ddd release(mobile): release v0.5.4 2026-05-29 15:34:49 +08:00
DIYgod 79d2684cf8 release(mobile): release v0.5.3 2026-05-13 12:02:11 +08:00
DIYgod 3b336b926d release(mobile): release v0.5.2 2026-05-12 17:31:29 +08:00
DIYgod 91cba64c3d release(mobile): release v0.5.1 2026-04-30 17:55:27 +08:00
DIYgod f5158ee6cc fix(mobile): restore spotlight highlights 2026-04-14 12:34:38 +08:00
DIYgod e3227c932f release(mobile): release v0.5.0 2026-04-14 09:45:18 +08:00
DIYgod cc6c86ade3 fix(mobile): unblock ios archive on expo sdk 55 2026-04-11 10:08:38 +08:00
DIYgod f77ac26541 feat(mobile): upgrade expo sdk 55 and rnfirebase 2026-04-10 22:42:21 +08:00
DIYgod 1ffbdcbcf6 fix(mobile): patch fmt for Xcode 26.4 builds 2026-04-10 11:02:36 +08:00
DIYgod cae21c1c4b release(mobile): release v0.4.1 2026-04-02 18:08:30 +08:00
DIYgod 278388cc13 release(mobile): release v0.4.0 2026-03-12 17:37:24 +08:00
DIYgod 565793fceb feat: support iOS Apple subscriptions (#4910)
* feat(mobile): support iOS Apple subscriptions

* fix: stabilize mobile subscription checks
2026-03-12 09:41:55 +08:00
DIYgod 93e4a3b48f feat: add cross-platform e2e coverage (#4901)
* feat: add cross-platform e2e coverage

* fix: stabilize desktop e2e navigation

* fix: harden desktop e2e read flow

* fix: harden desktop e2e auth and follow flows

* fix: stabilize desktop e2e discover entry flows

* fix: run android e2e in a single shell

* fix: speed up mobile e2e builds in ci

* fix: build android e2e app from mobile workspace

* fix: invoke android gradle build from repo root

* fix: use absolute path for android ci build

* fix: restore android eas build in ci

* fix: target iOS simulator by udid in ci

* fix: align desktop e2e with discover card flow

* fix: reorder web e2e after relogin

* fix: navigate web e2e via real hash url

* fix: close stale settings modal before reopening

* fix: track android maestro flows

* fix: wait for settings router in web e2e

* fix: wait for web settings sync propagation

* fix: stabilize desktop e2e settings flows

* fix: harden desktop e2e regressions

* fix: stabilize desktop e2e selectors

* fix: read desktop entry state from locators

* fix: relax desktop e2e entry assertions

* fix: avoid waiting on missing desktop feed ids
2026-03-10 11:32:00 +08:00
DIYgod 3d812446c6 feat(mobile): add French locale support (#4876) 2026-02-24 18:01:33 +08:00
DIYgod 0bba08f103 chore(firebase): switch to diygod Firebase config (#4868) 2026-02-22 15:15:13 +08:00
DIYgod b548f5a39c Merge remote-tracking branch 'origin/mobile-main' into release/mobile/0.3.0
# Conflicts:
#	apps/desktop/layer/main/src/updater/custom-github-provider.ts
#	apps/desktop/layer/renderer/src/modules/achievement/AchievementModalContent.tsx
#	apps/desktop/layer/renderer/src/modules/entry-column/EntrySubscriptionItem.tsx
#	apps/desktop/layer/renderer/src/modules/entry-column/components/EntryPlaneToolbar.tsx
#	apps/desktop/layer/renderer/src/modules/entry-column/components/EntrySubscriptionSkeleton.tsx
#	apps/desktop/layer/renderer/src/modules/entry-content/EntryContent.legacy.tsx
#	apps/desktop/layer/renderer/src/modules/new-user-guide/guide-modal-content.tsx
#	apps/desktop/layer/renderer/src/modules/settings/tabs/invitations.tsx
#	apps/desktop/layer/renderer/src/modules/settings/tabs/referral.tsx
#	apps/desktop/layer/renderer/src/modules/wallet/level.tsx
#	apps/mobile/src/modules/login/referral.tsx
#	apps/mobile/src/modules/settings/routes/Invitations.tsx
#	apps/mobile/src/modules/settings/routes/Referral.tsx
#	apps/mobile/src/screens/(modal)/InvitationScreen.tsx
2026-02-18 23:53:40 +08:00
DIYgod 30985c2e51 release(mobile): release v0.3.0 2026-02-18 23:42:59 +08:00
DIYgod 0da9f2098e feat: migrate desktop/mobile error tracking to posthog (#4858)
* feat: migrate desktop and mobile error tracking to PostHog

* fix(mobile): remove unsupported tab bar minimize API

* Revert "fix(mobile): remove unsupported tab bar minimize API"

This reverts commit e234dda512.
2026-02-18 23:16:00 +08:00
DIYgod 992e5ce3ea fix(mobile): upgrade Expo SDK54 and fix iOS sqlite startup crash (#4841)
* fix(mobile): stabilize Expo SDK54 startup and sqlite migration

* fix(ci): resolve mobile typecheck and desktop release failures

* fix(ci): format files failing prettier check

* fix(ci): align drizzle and mobile menu dependency resolution

* fix(mobile): align react versions for lint

* fix(mobile): upgrade react-native-menu

* fix(mobile): patch track-player android build
2026-02-14 09:35:25 +08:00
Innei 87ea8b7a20 feat(tabbar): add TabBarBottomAccessoryModule and enhance TabBarRootView
- Introduced `TabBarBottomAccessoryModule` to provide a new bottom accessory view for the tab bar.
- Updated `TabBarRootView` to utilize a custom tab bar controller, improving the management of the tab bar's visibility and behavior.
- Refactored `UIWindow` extension methods for better readability and structure.
- Enhanced `expo-module.config.json` to include the new module and improved formatting for better clarity.

These changes aim to enhance the tab bar functionality and improve the overall user interface experience in the mobile application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-25 23:06:51 +08:00
Innei d1b790036c release(mobile): release v0.2.10 2025-09-25 17:50:37 +08:00
Innei bcb781e30c refactor(ai-chat): enhance AIChainOfThought and ToolInvocationComponent for improved reasoning handling
- Updated the `AIChainOfThought` component to support a new `ChainReasoningPart` type, allowing for better integration of tool and reasoning parts.
- Refactored the logic for determining when the current chain reasoning is finished, ensuring accurate state management.
- Enhanced the `AIMessageParts` component to utilize the new `ChainReasoningPart` type, improving the handling of message parts.
- Modified the `ToolInvocationComponent` to streamline the rendering of tool invocation details, improving UI consistency and clarity.

These changes aim to enhance the functionality and maintainability of the AI chat components, providing a more robust user experience.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-25 00:07:34 +08:00
Innei 2ec185364e chore(mobile): bump version to 0.2.9 in package.json and Info.plist
- Updated the version number from 0.2.8 to 0.2.9 in both package.json and Info.plist to reflect the latest changes and improvements.

This version bump ensures that the mobile app is correctly identified with the latest updates.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-24 20:05:26 +08:00
Innei 04f20e4431 fix: type error
- Created a new .watchmanconfig file to specify directories to ignore during file watching, enhancing performance and reducing unnecessary processing.
- Modified the Xcode project configuration to clean up output paths and ensure proper handling of build flags.
- Updated BottomTabProvider to use ResolvedTabScreenProps for better type safety.
- Adjusted spring configurations in various components for improved animation performance.
- Added Eye2CuteReIcon to EntryDetailScreen for enhanced user interface.

These changes aim to optimize the development workflow and improve the overall user experience in the mobile application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-23 00:27:51 +08:00
Innei 866abbef20 feat(sentry): integrate Sentry for error tracking and monitoring
- Added Sentry for error reporting in the mobile application.
- Updated the app configuration to initialize Sentry with the necessary DSN and settings.
- Replaced Firebase Crashlytics with Sentry for error capturing in the ErrorBoundary component.
- Updated various workflows to include Sentry authentication token.
- Adjusted dependencies to use React Native version 0.79.6 and updated related packages.

This integration enhances the application's ability to track and manage errors effectively.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-22 23:12:11 +08:00
Innei a9d5cbd519 feat(ios): support liquid glass tabbar
Signed-off-by: Innei <tukon479@gmail.com>
2025-09-22 22:07:59 +08:00
Innei e9a0ba8b8c chore(mobile): update build ID increment script and configuration
- Added a force flag to the build ID increment script to allow manual increments regardless of branch or staged changes.
- Updated iOS build version in Info.plist from 134 to 135.
- Removed unused changelog CLI configuration file.
- Modified bump.config.ts to disable tagging for mobile releases.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-11 23:44:25 +08:00
Innei 7921b42e14 release(mobile): release v0.2.8 2025-09-11 17:57:37 +08:00
Innei 73fb321791 chore: bump mobile version for tf
Signed-off-by: Innei <tukon479@gmail.com>
2025-08-28 19:02:39 +08:00
Innei 967922d9c9 chore(mobile): update build number in Info.plist
Signed-off-by: Innei <tukon479@gmail.com>
2025-08-27 00:54:09 +08:00
Innei 5a5e8adc5b release(mobile): release v0.2.6 2025-08-21 19:53:27 +08:00
Innei 90d2c62e53 release(mobile): release v0.2.5 2025-08-07 14:44:40 +08:00
Stephen Zhou 3faac497e9 fix(mobile): improve social media skeleton 2025-07-25 16:39:10 +08:00