Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
2573fa7
feat: add video support in EntryNormalItem (#3798)
lawvs May 24, 2025
a165c1a
feat: update social media icon styles and enhance hotkey configuration
Innei May 24, 2025
554b00e
Merge pull request #3801 from RSSNext/sync/main-to-dev-20250525
DIYgod May 25, 2025
fbb6e68
Merge pull request #3802 from RSSNext/sync/main-to-dev-20250525
DIYgod May 25, 2025
22aec92
feat(desktop): use hcaptcha
DIYgod May 25, 2025
4ba047e
feat(ssr): use hcaptcha
DIYgod May 25, 2025
60a2240
fix: types
DIYgod May 25, 2025
a778f2f
docs: update readme
DIYgod May 25, 2025
cd9caf3
Merge pull request #3805 from RSSNext/sync/main-to-dev-20250525
Innei May 25, 2025
17ed72d
fix: update GroupedInsetListCard styles
lawvs May 25, 2025
f687688
feat(desktop): disable hot update for staging
DIYgod May 26, 2025
9094581
feat(desktop): remove react-google-recaptcha-v3
DIYgod May 26, 2025
fb40cbe
refactor(mobile): separate database package (#3809)
hyoban May 26, 2025
6923d0e
fix: add video support in entry content (#3816)
lawvs May 26, 2025
94bb3af
refactor(mobile): move service to database package (#3817)
hyoban May 26, 2025
26c6853
feat(desktop): enhance resizable columns with double-click reset func…
Innei May 26, 2025
6c73ae5
feat(desktop): implement smooth scrolling functionality
Innei May 26, 2025
19479f5
feat(desktop): integrate useSmoothScroll hook for enhanced scrolling
Innei May 26, 2025
d52c538
fix(mobile): hydration order
hyoban May 26, 2025
0a2a099
refactor(mobile): sperate store package (#3819)
hyoban May 26, 2025
7c4b896
feat(mobile): mark as read for list
hyoban May 26, 2025
d8866a4
refactor(desktop): update button styles and settings modal dimensions
Innei May 26, 2025
0f6ee42
chore(locales): update zh-CN translations (#3793)
ericyzhu May 26, 2025
ef304cd
feat(desktop): add check for updates functionality in settings
Innei May 26, 2025
ce7c421
refactor(mobile): enable package exports (#3822)
hyoban May 27, 2025
740485c
fix: adjust ThumbnailImage component for better layout
lawvs May 27, 2025
7266470
feat: integrate cleanJsonText function for json parsing (#3824)
kovsu May 27, 2025
b8a5414
feat(desktop): add i18n for shortcut settings and improve style (#3823)
kovsu May 27, 2025
5804071
chore(mobile): remove babel plugin module resolver
hyoban May 27, 2025
812efaf
chore(mobile): remove drizzle kit
hyoban May 27, 2025
5937096
refactor: remove src export from follow/utils
hyoban May 27, 2025
2d853d9
chore: update TypeScript configuration and package exports
Innei May 27, 2025
3adf17f
fix(mobile): add subscriptionCount and purchaseAmount for list
hyoban May 27, 2025
1bf983e
chore: remove useless override and patch (#3826)
hyoban May 27, 2025
1f53a97
chore: replace drizzle-studio-expo with expo-sqlite-devtools
hyoban May 27, 2025
c20350f
feat: enhance focus management and context menu shortcuts
Innei May 27, 2025
119f6b5
refactor: streamline entry column rendering and introduce VirtualRowI…
Innei May 27, 2025
f31d43d
fix: improve dropdown menu focus management and simplify rendering
Innei May 27, 2025
e374dd6
perf: use focusable selector hooks across components
Innei May 27, 2025
00342e7
refactor: optimize FeedCategory and FeedItem components for better pe…
Innei May 27, 2025
de00a18
refactor: enhance mobile settings modal and layout components
Innei May 27, 2025
dbd43ae
feat: setting feed management table
Innei May 27, 2025
8e3503f
feat: add tailwindcss-content-visibility for enhanced styling
Innei May 27, 2025
a86ef8a
feat: improve pull-up-to-next by add transition animation (#3832)
lawvs May 28, 2025
c0a2d10
refactor: simplify Media component rendering and enhance DiscoverFeed…
Innei May 28, 2025
7b3ec11
feat: add analysis for feed management table
Innei May 28, 2025
de6c2ff
feat: implement OPML import functionality with feed selection modal
Innei May 28, 2025
04d8373
chore: update drizzle-orm to version 0.43.1 across multiple packages
Innei May 28, 2025
e656cfd
chore: update dependencies
Innei May 28, 2025
852fb1d
fix(desktop): do not summary for short content
hyoban May 29, 2025
ef6ad2a
chore: fix type check
hyoban May 29, 2025
b610def
chore: downgrade electron-forge (#3842)
hyoban May 29, 2025
bf7193d
fix(mobile): convert markdown to text for summary
hyoban May 29, 2025
91306e3
feat: implement auto-scroll to entry after pull-up navigation
lawvs May 29, 2025
017387d
feat: add rn native markdown rendering
Innei May 29, 2025
ee0ec44
feat: add FocusableGuardProvider for managing global focus behavior
Innei May 29, 2025
9af7dcc
refactor: merge markdown parser
Innei May 29, 2025
08d4056
fix: adjust pageMargin and offscreenPageLimit for better scrolling ex…
lawvs May 29, 2025
d5e4976
fix: update pageMargin for improved layout consistency
lawvs May 29, 2025
b826241
feat(desktop): add reset defaults button for shortcuts (#3834)
kovsu May 29, 2025
336021a
chore: add Android build trigger and release draft creation (#3843)
lawvs May 29, 2025
f7faf78
fix: add border to 2fa qr code, close #3844
hyoban May 29, 2025
4e4e099
refactor: remove Markdown and MarkdownWeb components
Innei May 29, 2025
10648a1
chore(locales): update zh-TW translations (#3838)
yeeway0609 May 29, 2025
e3db0ae
fix(button): fix 'mark above as read' button not center in social med…
cscnk52 May 29, 2025
9d3a9a9
fix: tweak assign video media model in ThumbnailImage component
lawvs May 30, 2025
2612f9a
fix: ensure absolute view in AISummary component takes full width
lawvs Jun 1, 2025
234cb74
fix(rsshub): update label text from 'Follow' to 'Folo'
cscnk52 Jun 2, 2025
bb029e7
feat(ssr): fetch more entries by feed api
DIYgod Jun 2, 2025
14d4da3
feat(desktop): enhance rsshubAnalytics query to support language filt…
DIYgod Jun 2, 2025
82fb9ce
fix: pager should not flicker when scrolling fast(#3858)
lawvs Jun 3, 2025
2ee4c5f
feat(corner-player): use the episode cover first, instead of the feed…
cscnk52 Jun 3, 2025
ce3a23b
refactor: reorg image saving and sharing logic to use utility functions
lawvs Jun 3, 2025
939562d
refactor: force selector for useEntry (#3859)
hyoban Jun 3, 2025
5bbd96e
fix: share menu in other system, resolves FOL-2507
Innei Jun 3, 2025
47e07a4
feat(desktop): copy and paste login token
DIYgod Jun 3, 2025
496b1d6
refactor: replace tipc to ipcServices (#3863)
Innei Jun 3, 2025
c601752
fix(mobile): clean outdated data when hydrating
hyoban Jun 4, 2025
113cb6d
fix(mobile): translation hydration
hyoban Jun 4, 2025
c7be63b
fix(mobile): icon color in dark mode
hyoban Jun 4, 2025
aabdcb3
fix(mobile): filter icon color
hyoban Jun 4, 2025
75c9f80
fix(mobile): profile share button position
hyoban Jun 4, 2025
f88bc04
fix(mobile): share button position and status bar in modal
hyoban Jun 4, 2025
0f34e5b
refactor: merge auth client type
hyoban Jun 4, 2025
2a4dde0
fix(desktop): entry media not updated
DIYgod Jun 4, 2025
0a167ac
fix(desktop): sort local entires by publishedAt
hyoban Jun 4, 2025
80b36b5
fix(desktop): auto enable readability
hyoban Jun 4, 2025
6f437bf
fix: bottom tabbar background on initial load (#3867)
DIYgod Jun 4, 2025
18b22b2
feat: update copywriting
DIYgod Jun 4, 2025
397365c
feat(desktop): implement popover for sharing entries with social medi…
Innei Jun 4, 2025
dd0b4a9
chore: fix missing locales key
hyoban Jun 4, 2025
e5e474b
fix: update shortcut key bindings and improve sorting utility
Innei Jun 4, 2025
9dd5109
fix: standardize control key naming across platforms, fixed #3860
Innei Jun 4, 2025
3a5c668
feat: introduce global constants and enhance metadata handling
Innei Jun 4, 2025
6981be9
feat(ssr): implement custom 404 page and enhance error handling
Innei Jun 4, 2025
1806c12
feat(ssr): redesign share page
Innei Jun 4, 2025
761aa97
chore: ensure staleTime is set for prefetch entries query
lawvs Jun 4, 2025
56dadac
refactor(desktop): use action store (#3868)
hyoban Jun 5, 2025
9c3457a
feat(mobile): rsshub routes sorting
DIYgod Jun 5, 2025
e88eb0f
fix(mobile): markdown error
DIYgod Jun 5, 2025
6a51c8f
feat(mobile): optimize rsshub form screen
DIYgod Jun 5, 2025
2c27d91
feat(mobile): show analytics in feed form
DIYgod Jun 5, 2025
6ac6306
fix: types
DIYgod Jun 5, 2025
bdb6802
feat(mobile): show sub count in trending
DIYgod Jun 5, 2025
7193a12
fix: types
DIYgod Jun 5, 2025
8d75bfb
fix: types
DIYgod Jun 5, 2025
6a876f0
release(desktop): release v0.5.0
DIYgod Jun 5, 2025
fc16118
feat: implement subscription column layout for desktop and mobile, in…
Innei Jun 6, 2025
5a53e6f
feat: replace number formatting with formatNumber utility across disc…
Innei Jun 6, 2025
98ef84b
fix(desktop): use entry text content length for summary
hyoban Jun 6, 2025
7235a6d
fix(desktop): correct content length for readability content
hyoban Jun 6, 2025
e11bac5
fix(desktop): return null for query data
hyoban Jun 6, 2025
ab2466f
fix(desktop): update share URL generation to use environment variable…
Innei Jun 6, 2025
c00a7bc
fix(desktop): update import path for EntryColumnMobile to timeline-co…
Innei Jun 6, 2025
a4ad4bf
feat(desktop): enhance SharePanel with dedicated share URL generation
Innei Jun 6, 2025
56677aa
docs(desktop): update changelog
DIYgod Jun 6, 2025
059ab9d
refactor(desktop): update SharePanel and UrlBuilder for improved shar…
Innei Jun 6, 2025
de6a027
fix(desktop): update share panel to include entryId in dependencies f…
Innei Jun 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
191 changes: 191 additions & 0 deletions .cursor/rules/color.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
---
description:
globs:
alwaysApply: false
---
# UIKit Colors for Tailwind CSS

You should use @https://github.com/Innei/apple-uikit-colors/blob/main/packages/uikit-colors/macos.ts TailwindCSS atom classname.

## System Colors
red
orange
yellow
green
mint
teal
cyan
blue
indigo
purple
pink
brown
gray

## Fill Colors
fill
fill-secondary
fill-tertiary
fill-quaternary
fill-quinary
fill-vibrant
fill-vibrant-secondary
fill-vibrant-tertiary
fill-vibrant-quaternary
fill-vibrant-quinary

## Text Colors
text
text-secondary
text-tertiary
text-quaternary
text-quinary
text-vibrant
text-vibrant-secondary
text-vibrant-tertiary
text-vibrant-quaternary
text-vibrant-quinary

## Material Colors
material-ultra-thick
material-thick
material-medium
material-thin
material-ultra-thin
material-opaque

## Control Colors
control-enabled
control-disabled

## Interface Colors
menu
popover
titlebar
sidebar
selection-focused
selection-focused-fill
selection-unfocused
selection-unfocused-fill
header-view
tooltip
under-window-background


## Applied Colors
All above tailwind atom will match this colors.

```
@media (prefers-color-scheme: light) {
html {
--color-red: 255 69 58;
--color-orange: 255 149 0;
--color-yellow: 255 204 0;
--color-green: 40 205 65;
--color-mint: 0 199 190;
--color-teal: 89 173 196;
--color-cyan: 85 190 240;
--color-blue: 0 122 255;
--color-indigo: 88 86 214;
--color-purple: 175 82 222;
--color-pink: 255 45 85;
--color-brown: 162 132 94;
--color-gray: 142 142 147;
--color-fill: 0 0 0 / 0.1;
--color-fillSecondary: 0 0 0 / 0.08;
--color-fillTertiary: 0 0 0 / 0.05;
--color-fillQuaternary: 0 0 0 / 0.03;
--color-fillQuinary: 0 0 0 / 0.02;
--color-fillVibrant: 217 217 217;
--color-fillVibrantSecondary: 230 230 230;
--color-fillVibrantTertiary: 242 242 242;
--color-fillVibrantQuaternary: 247 247 247;
--color-fillVibrantQuinary: 251 251 251;
--color-text: 0 0 0 / 0.85;
--color-textSecondary: 0 0 0 / 0.5;
--color-textTertiary: 0 0 0 / 0.25;
--color-textQuaternary: 0 0 0 / 0.1;
--color-textQuinary: 0 0 0 / 0.05;
--color-textVibrant: 76 76 76;
--color-textVibrantSecondary: 128 128 128;
--color-textVibrantTertiary: 191 191 191;
--color-textVibrantQuaternary: 230 230 230;
--color-textVibrantQuinary: 242 242 242;
--color-materialUltraThick: 246 246 246 / 0.84;
--color-materialThick: 246 246 246 / 0.72;
--color-materialMedium: 246 246 246 / 0.6;
--color-materialThin: 246 246 246 / 0.48;
--color-materialUltraThin: 246 246 246 / 0.36;
--color-materialOpaque: 246 246 246;
--color-controlEnabled: 251 251 251;
--color-controlDisabled: 243 243 243;
--color-menu: 40 40 40 / 0.58;
--color-popover: 0 0 0 / 0.28;
--color-titlebar: 234 234 234 / 0.8;
--color-sidebar: 234 234 234 / 0.84;
--color-selectionFocused: 10 130 255 / 0.75;
--color-selectionFocusedFill: 10 130 255;
--color-selectionUnfocused: 0 0 0 / 0.1;
--color-selectionUnfocusedFill: 246 246 246 / 0.84;
--color-headerView: 255 255 255 / 0.8;
--color-tooltip: 246 246 246 / 0.6;
--color-underWindowBackground: 246 246 246 / 0.84;
}
}
@media (prefers-color-scheme: dark) {
html {
--color-red: 255 69 58;
--color-orange: 255 159 10;
--color-yellow: 255 214 10;
--color-green: 50 215 75;
--color-mint: 106 196 220;
--color-teal: 106 196 220;
--color-cyan: 90 200 245;
--color-blue: 10 132 255;
--color-indigo: 94 92 230;
--color-purple: 191 90 242;
--color-pink: 255 55 95;
--color-brown: 172 142 104;
--color-gray: 152 152 157;
--color-fill: 255 255 255 / 0.1;
--color-fillSecondary: 255 255 255 / 0.08;
--color-fillTertiary: 255 255 255 / 0.05;
--color-fillQuaternary: 255 255 255 / 0.03;
--color-fillQuinary: 255 255 255 / 0.02;
--color-fillVibrant: 36 36 36;
--color-fillVibrantSecondary: 20 20 20;
--color-fillVibrantTertiary: 13 13 13;
--color-fillVibrantQuaternary: 9 9 9;
--color-fillVibrantQuinary: 7 7 7;
--color-text: 255 255 255 / 0.85;
--color-textSecondary: 255 255 255 / 0.5;
--color-textTertiary: 255 255 255 / 0.25;
--color-textQuaternary: 255 255 255 / 0.1;
--color-textQuinary: 255 255 255 / 0.05;
--color-textVibrant: 229 229 229;
--color-textVibrantSecondary: 124 124 124;
--color-textVibrantTertiary: 65 65 65;
--color-textVibrantQuaternary: 35 35 35;
--color-textVibrantQuinary: 17 17 17;
--color-materialUltraThick: 40 40 40 / 0.84;
--color-materialThick: 40 40 40 / 0.72;
--color-materialMedium: 40 40 40 / 0.6;
--color-materialThin: 40 40 40 / 0.48;
--color-materialUltraThin: 40 40 40 / 0.36;
--color-materialOpaque: 40 40 40;
--color-controlEnabled: 255 255 255 / 0.2;
--color-controlDisabled: 255 255 255 / 0.1;
--color-menu: 246 246 246 / 0.72;
--color-popover: 246 246 246 / 0.6;
--color-titlebar: 60 60 60 / 0.8;
--color-sidebar: 0 0 0 / 0.45;
--color-selectionFocused: 10 130 255 / 0.75;
--color-selectionFocusedFill: 10 130 255;
--color-selectionUnfocused: 255 255 255 / 0.1;
--color-selectionUnfocusedFill: 40 40 40 / 0.65;
--color-headerView: 30 30 30 / 0.8;
--color-tooltip: 0 0 0 / 0.35;
--color-underWindowBackground: 0 0 0 / 0.45;
}
}
```
14 changes: 14 additions & 0 deletions .cursor/rules/web-component.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
description:
globs:
alwaysApply: false
---
You need to find the available UI components in the project.

For web applications (apps/dekstop)

Components are located at `packages/internal/components` and `apps/desktop/layer/renderer/src/components/ui`

For rn applications (apps/mobile)

Components are located at `apps/mobile/src/components`
5 changes: 0 additions & 5 deletions .github/dependabot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ updates:
- dependency-name: react-native
versions: [">=0.78.0"]

# Stuck by unified 11
- dependency-name: vfile
versions: [">=6.0.0"]

# It's using export map and metro doesn't support it well
- dependency-name: unist-util-visit-parents
versions: [">=6.0.0"]
Expand Down Expand Up @@ -57,7 +53,6 @@ updates:
- jsonpointer
- workbox-precaching
- "@pengx17/electron-forge-maker-appimage"
- devlop
- "@microflash/remark-callout-directives"
- react-native-track-player
- react-native-sheet-transitions
Expand Down
23 changes: 23 additions & 0 deletions .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ on:
- preview
- production
description: "Build profile"
release:
type: boolean
default: false
description: "Create a release draft for the build"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.profile }}
Expand Down Expand Up @@ -82,3 +86,22 @@ jobs:
if: github.event.inputs.profile == 'production'
working-directory: apps/mobile
run: eas submit --platform android --path ${{ github.workspace }}/build.aab --non-interactive

- name: Setup Version
if: github.event.inputs.release == 'true'
id: version
uses: ./.github/actions/setup-version
with:
# We don't want to create a new release for mobile
type: "desktop"

- name: Create Release Draft
if: github.event.inputs.release == 'true'
uses: softprops/action-gh-release@v2
with:
name: v${{ steps.version.outputs.APP_VERSION }}
draft: false
prerelease: true
tag_name: v${{ steps.version.outputs.APP_VERSION }}
# .aab cannot be installed directly on your Android Emulator or device.
files: ${{ github.workspace }}/build.apk
11 changes: 10 additions & 1 deletion .github/workflows/tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,20 @@ jobs:
run: |
git tag ${{ env.tag_version }}
git push origin ${{ env.tag_version }}
- name: Trigger Build Workflow
- name: Trigger Build Desktop Workflow
if: ${{ env.tag_version }}
run: |
curl -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${{ github.repository }}/actions/workflows/build-desktop.yml/dispatches \
-d '{"ref":"main", "inputs": {"tag_version": "true"}}'

- name: Trigger Build Android Workflow
if: ${{ env.tag_version }}
run: |
curl -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${{ github.repository }}/actions/workflows/build-android.yml/dispatches \
-d '{"ref":"main", "inputs": {"release": "true"}}'
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
<br />
<a href="https://github.com/RSSNext/Folo/releases"><img src="https://img.shields.io/github/package-json/v/RSSNext/Folo?filename=%2Fapps%2Fmobile%2Fpackage.json&style=flat-square&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iNTUiIGhlaWdodD0iNTUiIHZpZXdCb3g9IjAgMCA1NSA1NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQxLjc5NDQgMTBIMTguNjc4NkMxNS44ODMzIDEwIDEzLjYxNzIgMTIuMTk2NSAxMy42MTcyIDE0LjkwNTlDMTMuNjE3MiAxNy42MTU0IDE1Ljg4MzMgMTkuODExOSAxOC42Nzg2IDE5LjgxMTlINDEuNzk0NEM0NC41ODk5IDE5LjgxMTkgNDYuODU1OSAxNy42MTU0IDQ2Ljg1NTkgMTQuOTA1OUM0Ni44NTU5IDEyLjE5NjUgNDQuNTg5OSAxMCA0MS43OTQ0IDEwWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTI5LjQ2ODMgMjIuNzU1OUgxNC4wNjE1QzExLjI2NjEgMjIuNzU1OSA5IDI0Ljk1MjMgOSAyNy42NjE4QzkgMzAuMzcxMyAxMS4yNjYxIDMyLjU2NzcgMTQuMDYxNSAzMi41Njc3SDI5LjQ2ODNDMzIuMjYzNyAzMi41Njc3IDM0LjUyOTggMzAuMzcxMyAzNC41Mjk4IDI3LjY2MThDMzQuNTI5OCAyNC45NTIzIDMyLjI2MzcgMjIuNzU1OSAyOS40NjgzIDIyLjc1NTlaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzAuOTU4OSA0MC40MjcyQzMwLjk1ODkgMzcuNzE3OSAyOC42OTI4IDM1LjUyMTUgMjUuODk3NCAzNS41MjE1QzIzLjEwMjEgMzUuNTIxNSAyMC44MzU5IDM3LjcxNzkgMjAuODM1OSA0MC40MjcyQzIwLjgzNTkgNDMuMTM3MSAyMy4xMDIxIDQ1LjMzMzIgMjUuODk3NCA0NS4zMzMyQzI4LjY5MjggNDUuMzMzMiAzMC45NTg5IDQzLjEzNzEgMzAuOTU4OSA0MC40MjcyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc%2BCg%3D%3D&label=Mobile&labelColor=black&color=FF5E01" /></a>
<a href="https://apps.apple.com/us/app/folo-follow-everything/id6739802604"><img src="https://img.shields.io/itunes/v/6739802604?style=flat-square&logo=apple&label=App%20Store&color=FF5C00&labelColor=black" /></a>
<a href="https://play.google.com/store/apps/details?id=is.follow" target="_blank"><img src="https://img.shields.io/github/package-json/v/RSSNext/Folo?filename=%2Fapps%2Fmobile%2Fpackage.json&style=flat-square&logo=google-play&label=Google%20Play&labelColor=black&color=FF5E01"/></a>
<a href="https://github.com/RSSNext/Folo/releases"><img src="https://img.shields.io/github/package-json/v/RSSNext/Folo?filename=%2Fapps%2Fdesktop%2Fpackage.json&style=flat-square&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iNTUiIGhlaWdodD0iNTUiIHZpZXdCb3g9IjAgMCA1NSA1NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQxLjc5NDQgMTBIMTguNjc4NkMxNS44ODMzIDEwIDEzLjYxNzIgMTIuMTk2NSAxMy42MTcyIDE0LjkwNTlDMTMuNjE3MiAxNy42MTU0IDE1Ljg4MzMgMTkuODExOSAxOC42Nzg2IDE5LjgxMTlINDEuNzk0NEM0NC41ODk5IDE5LjgxMTkgNDYuODU1OSAxNy42MTU0IDQ2Ljg1NTkgMTQuOTA1OUM0Ni44NTU5IDEyLjE5NjUgNDQuNTg5OSAxMCA0MS43OTQ0IDEwWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTI5LjQ2ODMgMjIuNzU1OUgxNC4wNjE1QzExLjI2NjEgMjIuNzU1OSA5IDI0Ljk1MjMgOSAyNy42NjE4QzkgMzAuMzcxMyAxMS4yNjYxIDMyLjU2NzcgMTQuMDYxNSAzMi41Njc3SDI5LjQ2ODNDMzIuMjYzNyAzMi41Njc3IDM0LjUyOTggMzAuMzcxMyAzNC41Mjk4IDI3LjY2MThDMzQuNTI5OCAyNC45NTIzIDMyLjI2MzcgMjIuNzU1OSAyOS40NjgzIDIyLjc1NTlaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzAuOTU4OSA0MC40MjcyQzMwLjk1ODkgMzcuNzE3OSAyOC42OTI4IDM1LjUyMTUgMjUuODk3NCAzNS41MjE1QzIzLjEwMjEgMzUuNTIxNSAyMC44MzU5IDM3LjcxNzkgMjAuODM1OSA0MC40MjcyQzIwLjgzNTkgNDMuMTM3MSAyMy4xMDIxIDQ1LjMzMzIgMjUuODk3NCA0NS4zMzMyQzI4LjY5MjggNDUuMzMzMiAzMC45NTg5IDQzLjEzNzEgMzAuOTU4OSA0MC40MjcyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc%2BCg%3D%3D&label=Desktop&labelColor=black&color=FF5E01" /></a>
<a href="https://apps.apple.com/us/app/folo-follow-everything/id6739802604"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Ffolo-mac-app-store-version.rss3.workers.dev%2F&query=version&prefix=v&style=flat-square&logo=apple&label=Mac%20App%20Store&labelColor=black&color=FF5E01&cacheSeconds=3600" /></a>
<a href="https://apps.microsoft.com/detail/9nvfzpv0v0ht?mode=direct"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Ffolo-microsoft-store-version.rss3.workers.dev%2F&query=version&style=flat-square&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMyAzaDguNTN2OC41M0gzek0xMi40NjkgM2g4LjUzdjguNTNoLTguNTN6TTMgMTIuNDdoOC41M1YyMUgzek0xMi40NjkgMTIuNDdoOC41M1YyMWgtOC41M3oiLz48L3N2Zz4%3D&logoColor=white&label=Microsoft%20Store&labelColor=black&color=FF5E01&cacheSeconds=3600&prefix=v" /></a>
Expand Down Expand Up @@ -46,9 +47,9 @@ Feel free to try it using the following methods:
| :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Any | <a href="https://app.follow.is" target="_blank"><img src="https://github.com/user-attachments/assets/51ef7800-b683-4493-83e8-eb4752366997" alt="Browser" height="55"/></a> |
| iOS | <a href="https://apps.apple.com/us/app/folo-follow-everything/id6739802604" target="_blank"><img src="https://github.com/user-attachments/assets/a94d8698-2a11-4f43-9b0a-b756b17b61f7" alt="App Store" height="55"/></a> |
| Android | <a href="https://play.google.com/store/apps/details?id=is.follow" target="_blank"><img src="https://github.com/user-attachments/assets/0d178e0b-3ace-4f75-bbde-ab3c0a416ce8" alt="Google Play" height="55"/></a> <a href="https://github.com/RSSNext/Folo/releases/latest" target="_blank"><img src="https://github.com/user-attachments/assets/cf61e197-d756-4606-a8ad-fb591f79fdfc" alt="App Store" height="55"/></a> |
| macOS | <a href="https://apps.apple.com/us/app/folo-follow-everything/id6739802604" target="_blank"><img src="https://github.com/user-attachments/assets/0d47f902-7fa3-494e-ad28-9ab11af5e6d4" alt="Microsoft Store" height="55"/></a> <a href="https://github.com/RSSNext/Folo/releases/latest" target="_blank"><img src="https://github.com/user-attachments/assets/cf61e197-d756-4606-a8ad-fb591f79fdfc" alt="App Store" height="55"/></a> |
| Windows | <a href="https://apps.microsoft.com/detail/9nvfzpv0v0ht?mode=direct" target="_blank"><img src="https://github.com/user-attachments/assets/b3112bab-9dd0-4893-9488-890dcb368f70" alt="Microsoft Store" height="55"/></a> <a href="https://github.com/RSSNext/Folo/releases/latest" target="_blank"><img src="https://github.com/user-attachments/assets/cf61e197-d756-4606-a8ad-fb591f79fdfc" alt="App Store" height="55"/></a> |
| Android | <a href="https://play.google.com/store/apps/details?id=is.follow" target="_blank"><img src="https://github.com/user-attachments/assets/17ce1d5b-e906-4d42-aec2-66877da9fd95" alt="Google Play" height="55"/></a> |
| Linux | <a href="https://github.com/RSSNext/Folo/releases/latest" target="_blank"><img src="https://github.com/user-attachments/assets/cf61e197-d756-4606-a8ad-fb591f79fdfc" alt="App Store" height="55"/></a> |

You can also install using the following methods maintained by our community:
Expand Down
29 changes: 29 additions & 0 deletions apps/desktop/changelog/0.5.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# What's New in v0.5.0

## Shiny new things

- Double-clicking the draggable edge on either side of the entry list resets it to its default position (26c6853)
- Brand-new Feed Manager panel (dbd43ae)
- OPML import now offers a preview and lets you choose specific feeds to import (de6c2ff)
- All-new Share sheet (5bbd96e)

## Improvements

- Switched to hCaptcha for a smoother human-verification experience (22aec92)
- Gradually rolling out an experimental unified local database for mobile and desktop (#3809)
- Implemented smooth scrolling (6c73ae5)
- Significant overall performance boost
- AI will skip summarising extra-short articles to avoid trivial summaries (852fb1d)
- Added “Reset to defaults” button to the shortcuts page (#3834)
- Added a border around 2-factor QR codes for better scan reliability (f7faf78)
- RSSHub routes top-feed list now respects your Discover-language setting (14d4da3)
- Audio player now prefers episode artwork over feed artwork (#3855)
- You can now manually paste your login token to bypass Microsoft Store deeplink issues (47e07a4)
- Added “Check for updates” button in Settings (ef304cd)

## No longer broken

- Dropdown menus now keep keyboard focus when opened (f31d43d)
- “Mark as read” button is now perfectly centred (#3836)
- Entry list no longer displays stale cached items (0a167ac)
- Squashed numerous shortcut-key bugs
8 changes: 7 additions & 1 deletion apps/desktop/changelog/next.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# What's new in vNEXT_VERSION

## Shiny new things

## Improvements

## No longer broken

Performance: Fix context menu re-render loop.
## Thanks

Special thanks to external contributors @ for their valuable contributions
7 changes: 5 additions & 2 deletions apps/desktop/layer/main/export.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
// Export types for renderer to use
export type { IpcServices } from "./src/ipc"
export type { RendererHandlers } from "./src/renderer-handlers"
export type { Router } from "./src/tipc"
export { router } from "./src/tipc"

// Export services for potential main process use
export { services } from "./src/ipc"
Loading