Commit Graph

6618 Commits

Author SHA1 Message Date
DIYgod 0bba08f103
chore(firebase): switch to diygod Firebase config (#4868) 2026-02-22 15:15:13 +08:00
DIYgod 845539a8d4
fix(ci): improve release workflow orchestration (#4866) 2026-02-21 10:59:07 +08:00
DIYgod ec762e4689
fix(ci): stabilize desktop release workflow (#4865) 2026-02-20 23:26:39 +08:00
DIYgod 97680b37a5 Merge remote-tracking branch 'origin/main' into dev 2026-02-20 23:14:13 +08:00
DIYgod 0139fb183f
Merge pull request #4864 from RSSNext/release/desktop/1.3.1
release(desktop): Release v1.3.1
2026-02-20 22:45:30 +08:00
DIYgod 8ef3a5a436 release(desktop): release v1.3.1 2026-02-20 21:49:57 +08:00
DIYgod 63fb8d1b0f chore(desktop): update changelog for next release 2026-02-20 21:49:39 +08:00
DIYgod b465ec1463
fix: harden external protocol handling and unblock dev:electron (#4863)
* fix(desktop): harden external protocol handling

* fix(build): avoid optional peer resolution in dev
2026-02-20 21:36:23 +08:00
DIYgod 8963930f29
fix(web): resolve ai onboarding typecheck regressions (#4862) 2026-02-19 16:59:10 +08:00
DIYgod 1e13ce6834
ci: automate release orchestration for desktop and mobile (#4861) 2026-02-19 16:42:39 +08:00
DIYgod d386c00ebd
fix: clean up renderer lint issues and refresh lockfile (#4860) 2026-02-19 16:38:40 +08:00
DIYgod ad824a4d96 Merge remote-tracking branch 'origin/mobile-main' into dev 2026-02-19 11:49:50 +08:00
DIYgod d47ed33319
Merge pull request #4859 from RSSNext/release/mobile/0.3.0
release(mobile): Release v0.3.0
2026-02-19 00:00:30 +08:00
DIYgod 8e0a7e851c chore: trigger PR update 2026-02-18 23:57:39 +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 b322dc1dd8 chore(mobile): update changelog for next release 2026-02-18 23:40:00 +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 e234dda51257dc6810f0f78e06ee918adf2214b0.
2026-02-18 23:16:00 +08:00
DIYgod 47a56c5017
fix(mobile): reduce timeline indicator jank on iOS (#4857) 2026-02-18 20:23:24 +08:00
DIYgod d9a426b745
fix(mobile): stabilize timeline initial load and scroll position (#4856) 2026-02-18 20:09:06 +08:00
DIYgod d4aa9f40d0
fix(mobile): stabilize preview login and asset build (#4853) 2026-02-15 15:14:31 +08:00
DIYgod b3371fc1fd
docs(skill): switch iOS preview install flow to local build (#4852) 2026-02-15 12:05:42 +08:00
DIYgod 99ebb26c2c
feat(skill): add iOS preview build install skill (#4851) 2026-02-15 11:57:06 +08:00
DIYgod 6db0b452f6
fix(mobile): align header height with safe area inset (#4850)
* fix(mobile): use safe area inset for header height

* fix(mobile): reset timeline on view switch
2026-02-15 11:56:13 +08:00
DIYgod 7c80dab193
fix: mobile full audit for UI consistency and stability (#4849)
* fix(mobile): complete full mobile audit improvements

* chore: remove mobile audit planning artifacts

* fix(mobile): stabilize editable row keys in settings actions
2026-02-15 10:18:09 +08:00
DIYgod 4f80c47250
style(mobile): rebalance typography sizes (#4848) 2026-02-14 21:20:28 +08:00
DIYgod 50ed7aae10
fix(mobile): hide payment ui outside apk (#4847) 2026-02-14 21:12:47 +08:00
DIYgod 87784b2246
fix(mobile): migrate SwipeableItem to ReanimatedSwipeable and upgrade react-native-css-interop (#4846)
- Replace deprecated Swipeable (old API) with ReanimatedSwipeable (new API with Reanimated integration)
- Migrate from React Native Animated to react-native-reanimated for animations
- Extract LeftActionItem component to properly use useAnimatedStyle hook
- Update renderRightActions to use SharedValue translation for detecting swipe-right-to-call-action
- Replace RN Animated.AnimatedInterpolation with Reanimated's interpolate function
- Use useAnimatedReaction to monitor translation.value and trigger haptic feedback
- Upgrade react-native-css-interop from 0.1.22 to 0.2.1 (removes outdated React 19 compatibility issue)

Fixes React 19 + React Native 0.81 compatibility issues with gesture handler and animation APIs.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-14 20:36:34 +08:00
DIYgod 56263d229b
fix(mobile): fix Crashlytics crash issues affecting 101+ users (#4845)
- Fix iOS WebViewState initialization on non-main thread
- Fix iOS SecureStore background access failures in auth/env setup
- Fix Android TrackPlayer ForegroundService crash with AppState check
- Fix Android TabBar event handler null reference crashes
- Fix iOS BackgroundTask handler registration timing
- Fix Android VideoView state management during fullscreen
- Fix DatabaseSource stream state before enqueue operation

Addresses 8 critical Crashlytics issues across iOS and Android:
- iOS WebView main thread: 22 users
- iOS SecureStore background: 18 users
- Android ForegroundService: 26 users
- Android TabPress null ref: 12 users
- Android VideoView not found: 6 users
- Stream enqueue race: 7 users
- iOS BackgroundTask handler: 2 users
+ improvements to error handling and recovery paths

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-14 19:53:53 +08:00
DIYgod 19acf638de
chore: remove unused dependency patches (#4843) 2026-02-14 11:48:47 +08:00
DIYgod a911ee34c4
feat(skill): add mobile-release skill (#4842)
* feat(skill): add mobile-release skill for regular mobile versioning workflow

Summarize the mobile release process based on previous releases:
- Gather commits since last release and categorize changes
- Update changelog with user-provided content
- Execute nbump to bump version, update iOS Info.plist (version + build number)
- Create release branch and PR to mobile-main
- Guide user through post-release production build steps

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* fix(skill): fix tag prefix and fallback grep in mobile-release skill

- Match both old `mobile@` and new `mobile/v` tag prefixes
- Use subject-only matching for fallback release commit detection
  to avoid false positives from commit body matches

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-14 10:58:28 +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
Kowyo 2d7fe56ce2
fix(store): handle null titles when sorting imported subscriptions (#4840) 2026-02-13 20:03:52 +08:00
DIYgod 01da257c90
feat(i18n): merge #4597/#4774 and complete localization audit (#4839)
* chore: Update Japanese translations for new features and errors

Added and updated multiple Japanese locale strings across AI, app, errors, external, settings, and shortcuts modules. Changes include new labels, descriptions, error messages, and UI text for features such as scheduling, token usage, inbox management, toolbar customization, and quick search.

* Add Japanese README documentation

Introduces README-ja.md with comprehensive information about Folo, including features, installation instructions, community links, contribution guidelines, code signing policies, and license details for Japanese-speaking users.

* Update formatting in Japanese README

Corrected the admonition marker from '[!重要]' to '[!IMPORTANT]' for consistency and made minor formatting adjustments in the README-ja.md file.

* Update community section in Japanese README

Revised wording and formatting in the community participation section of README-ja.md for improved clarity and consistency.

* Remove Japanese README file

Deleted README-ja.md to reduce duplication or outdated documentation. All relevant information should now be referenced from the main README or other documentation files.

* feat: add French (fr-FR) localization

* fix: sort imports in default-resource.ts to resolve lint error

* feat: add missing French translations for mobile/default, native, and external locales

* feat: add French language filter to discovery/recommended feeds

* docs: update changelog for French localization

* feat(i18n): merge PR #4597/#4774 and finish localization audit

---------

Co-authored-by: dai <dosada@gmail.com>
Co-authored-by: Anthony Mahé <snpepito@gmail.com>
Co-authored-by: Anthony Mahé <104373430+AnthonyMahe@users.noreply.github.com>
2026-02-13 09:25:08 +00:00
DIYgod 0859f56ad4
chore: update workspace dependencies and lockfile (#4838)
* chore: update workspace dependencies

- bump dependencies across desktop, mobile, ssr, and internal packages

- refresh pnpm lockfile

- apply type compatibility fixes required by upgraded packages

* fix(ssr): prevent tsdown CI warning from failing build

- set inlineOnly to false in tsdown config

* style: format files for CI prettier check

- apply prettier formatting to files reported by format:check

* fix(mobile): downgrade reanimated for rn 0.79 ios build
2026-02-13 16:04:13 +08:00
DIYgod d109a3ca8a
feat: add update-deps skill for dependency management (#4837)
* feat: add update-deps skill for dependency management

Add a comprehensive skill to update dependencies across frontend and backend projects. The skill includes:
- Changelog review for breaking changes
- Code impact analysis and automatic fixes
- TypeScript type checking and test suite validation
- Summary reporting of all updates

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* fix: use pnpm update --latest for exact-pinned deps

With save-exact=true, versions are pinned without ^ or ~, so pnpm update

without --latest only resolves within the exact range (a no-op). Phase 1 now

explicitly uses @latest for each patch/minor package.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-13 04:47:25 +00:00
DIYgod 8267087635
Merge pull request #4836 from RSSNext/sync/main-to-dev-20260213
Sync main branch to dev branch
2026-02-13 11:34:32 +08:00
DIYgod 30310e6fad
Merge pull request #4835 from RSSNext/release/desktop/1.3.0
release(desktop): Release v1.3.0
2026-02-13 11:24:45 +08:00
DIYgod ef5fcc9bcb release(desktop): release v1.3.0 2026-02-13 11:03:51 +08:00
DIYgod 67d06d1df7 chore: update changelog for next release 2026-02-13 11:03:34 +08:00
DIYgod 9b4f4f4fa4
feat: add desktop-release skill for regular version releases (#4834)
* feat: add desktop-release skill for regular version releases

Add a comprehensive skill for performing regular desktop releases from dev branch.
Includes changelog management, mainHash evaluation (critical for determining whether
users need full app updates vs lightweight renderer hot updates), and automated PR creation.

The skill guides users through:
1. Gathering commits since last release and categorizing changes
2. Updating changelog with proper formatting
3. Evaluating whether mainHash should be updated (main process code changes)
4. Executing version bump with optional mainHash skip for faster renderer-only updates
5. Verifying PR creation

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* fix: avoid unstaged bump.config.ts edit breaking git rebase

Change the "skip mainHash" strategy from pre-editing bump.config.ts
(which breaks `git pull --rebase` in the leading step) to a post-bump
approach: let bump run normally, then restore the old mainHash value
and amend + force push the release branch.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: correct working directory for mainHash restore step

After `cd apps/desktop && pnpm bump`, the cwd is apps/desktop/.
Add explicit `cd ../..` before the amend step so paths resolve correctly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-13 10:50:01 +08:00
DIYgod 2290ec7f3c
fix: preserve session when switching API domain (#4833)
* feat(auth): migrate session across API domain switch

* fix(auth): address PR review on migration flow

* fix(ci): avoid package.json mutation during renderer build
2026-02-12 20:58:03 +08:00
DIYgod 62efdd29b2
fix: handle invalid URL parsing in useFeedSafeUrl hook (#4823)
Wrap new URL() constructor in try-catch to gracefully handle malformed URL strings that start with 'http' but are invalid. Returns null instead of throwing.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-30 13:48:23 +08:00
Kieran Cui d58720aae6
fix: shortcuts page freeze (#4819) 2026-01-24 17:39:02 +08:00
DIYgod c0ce04453f
refactor: remove checkNew timeline update detection logic (#4817)
Remove the checkNew query and related state management that periodically checked for new entries in the timeline. The hasUpdate state and related UI indication (refresh button highlighting) have been removed while preserving fetchedTime for mark-all-read filtering.
2026-01-21 13:31:54 +08:00
DIYgod 2bba6a9032
refactor: remove entry tags support (#4813)
* refactor: remove entry tags support

* fix: remove remaining tags references from entry selectors

Follow-up to 9ea61dbfd - these files were missed in the entry tags removal.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 17:37:16 +08:00
DIYgod 95b0da87a4
refactor: remove deprecated features (referral, invitations, memory, wallet) (#4812)
Remove the following modules and features:
- Referral/invitation system across desktop, mobile, and SSR
- AI memory management (SaveMemoryCard, ManageMemoryCard, UserMemorySection)
- Daily reward claim and reward description modal
- Activity points and level display in wallet
- Related query files and imports

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-18 16:22:10 +08:00
DIYgod 7ece0b3fd0 fix: update getUrlIcon to use the new icon service URL 2026-01-18 15:33:24 +08:00
Claude 11a0bd7337 fix: correct IMAGE_PROXY_URL to use the proper endpoint 2026-01-17 12:46:08 +08:00
XLor f03e81b8fc
feat: markdown link supports open share feed link directly (#4811)
* feat: markdown link supports open share feed link directly

* docs: update changelog

* fix: revert stopPropagation

* fix: revert stopPropagation

* fix: revert stopPropagation
2026-01-16 21:35:54 +08:00