173 Commits

Author SHA1 Message Date
DIYgod 55690ce2d8 fix(mobile): keep Spotlight highlights readable in dark mode
Highlighted words kept the theme's white or gray text on the pale
highlight colors, about 2:1 contrast in dark mode, in the timeline, entry
titles and entry text. Highlights now set black text, or white on a dark
color.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 00:47:47 +08:00
DIYgod 6c2b46693e feat(mobile): prompt to update from the store when a newer binary is out
The OTA provider fetched the store policy but never used it. Fetch it
once per launch, from the env profile's OTA URL, and show an alert when
the App Store or Google Play has a newer version. Later puts that
version off, a prompt shows at most once per launch, and a blocked
version asks every time the app returns to the foreground. APKs from
outside Google Play are not prompted, the alert waits until the app is
in front, and while it is open the review prompt stays away.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 08:12:40 +08:00
DIYgod 2c246b61eb fix(timeline): mark the last entries read when scrolling to the end
The picture masonry marked entries up to the smallest index among the
items an IntersectionObserver callback reported as gone. Several items
leave in the same frame, so later callbacks only caught up mid-list and
the last entries stayed unread. Use the first laid out item still in view
as the boundary instead and reuse the list's anchor range logic.

The list and grid virtualizers memoized onChange without onRangeChange. A
list mounted while a scroll reset was pending kept a handler that always
returned early, leaving only onScroll, which runs before the range update,
so the range of the last scroll event was never marked.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 18:21:08 +08:00
DIYgod 59fda3cee7 fix(shared): point the dev environment at the folo.is domains
api.dev.follow.is no longer resolves to a working API, so the dev env
profile (the default in mobile development builds) could not load
anything. Use the current api.dev.folo.is and dev.folo.is hosts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 00:04:33 +08:00
DIYgod d5ffb82f4c fix(desktop): start in the tray when launched at login
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 00:04:32 +08:00
DIYgod 2f392594d5 chore(deps): refresh dependencies and verify affected app flows 2026-09-22 16:20:40 +08:00
DIYgod 93b83f95eb feat(mobile): add reading settings, manual theme and immersive header
- add a Reading settings screen (content font, line height, text color,
  inline style, code theme) reachable from Appearance and from the entry
  "more" menu
- add a System / Light / Dark theme setting applied through
  Appearance.setColorScheme so the reader WebView follows it as well
- optionally slide the entry header away while scrolling down and keep a
  blurred status bar strip so the clock stays readable
- forward reader typography to the html renderer through a new
  setReaderStyle bridge call

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 12:50:51 +08:00
DIYgod 9787707ca3 feat(timeline): support oldest-first unread sorting 2026-09-01 20:26:14 +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 dc43e39711 fix: retry scroll mark-read after revisiting entries 2026-05-26 20:29:52 +08:00
DIYgod 07cbf35de7 fix: batch scroll mark-read requests 2026-05-26 11:55:09 +08:00
DIYgod 425e8610a3 fix: stabilize scroll mark-read footer boundary 2026-05-07 21:55:30 +08:00
DIYgod 2fa23362c3 fix: allow final entries to scroll past 2026-05-07 21:05:59 +08:00
DIYgod 88ad11a2ae fix(desktop): dedupe auth session cookies 2026-04-26 09:57:42 +08:00
DIYgod 51efb5d5a5 fix(release): repair ota and desktop update flows 2026-04-12 16:04:15 +08:00
DIYgod 33c8bb98b6 feat(ota): unify desktop updates with ota service 2026-04-12 15:39:13 +08:00
DIYgod 096422e034 feat(desktop): migrate tts to folo service 2026-04-10 14:38:20 +08:00
DIYgod e8619436c7 feat: refine spotlight settings and highlighting 2026-04-09 13:45:05 +08:00
DIYgod 1571396fb6 fix: upgrade sdk packages and align app types (#4950) 2026-04-02 09:03:57 +00:00
DIYgod 41656115b3 feat(ai): enable French AI language requests 2026-03-20 15:54:14 +08:00
DIYgod 4f4618dc37 fix(ssr): read injected env in browser 2026-03-17 18:26:42 +08:00
DIYgod 338164b68c fix(web): remove openpanel and fix ssr manifest 2026-03-17 18:17:39 +08:00
DIYgod 397049014f fix: upgrade better-auth client compatibility 2026-03-16 21:14:41 +08:00
DIYgod b1ed3828d4 feat: add store review prompts for desktop and mobile (#4909) 2026-03-11 22:54:04 +08:00
DIYgod c9eac7812c fix: harden desktop e2e auth and user flows (#4904)
* fix: harden desktop e2e auth and user flows

* fix: stabilize desktop e2e in ci

* fix: stabilize ci desktop e2e flows

* fix: make ci desktop e2e more robust

* fix: avoid media interception in desktop e2e

* fix: increase desktop e2e timeouts for ci

* fix: use keyboard navigation for web e2e entries

* fix: stabilize desktop e2e navigation in ci

* fix: simplify desktop e2e navigation paths

* fix: narrow desktop e2e action selectors

* fix: add desktop e2e read-action fallbacks

* fix: reduce desktop e2e flakiness in ci

* fix: harden desktop e2e route transitions

* fix: relax desktop e2e ci assertions

* fix: prefer keyboard read toggle in desktop e2e

* fix: tolerate settings modal close races in e2e

* fix: tighten desktop e2e flows and remove gha e2e
2026-03-10 21:37:48 +08:00
DIYgod f0a691da30 chore(env): update default recaptcha v3 site key (#4879) 2026-02-25 21:21:01 +08:00
DIYgod afddc8e846 fix(ssr): use VITE_API_URL and VITE_WEB_URL only (#4874) 2026-02-24 14:20:27 +08:00
DIYgod 0bba08f103 chore(firebase): switch to diygod Firebase config (#4868) 2026-02-22 15:15:13 +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 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 3d21eab3f0 chore: update ai sdk to v6.0.5 (#4790) 2026-01-01 15:52:02 +08:00
DIYgod 55d11af361 fix: default custom integration fetch (#4789) 2026-01-01 15:16:24 +08:00
DIYgod 7d7723f04f chore: update license 2025-12-28 18:27:30 +08:00
DIYgod 688cfceab9 feat: upgrade ai sdk 2025-12-18 12:07:27 +08:00
DIYgod 26c842751a feat: add AI timeline sorting feature with customizable prompt settings 2025-11-19 22:36:15 +08:00
Stephen Zhou 6644f5a59d feat: magic link support 2025-11-18 19:06:10 +08:00
Innei 7c06ca6d84 feat: implement BYOK (Bring Your Own Key) feature for AI providers (#4727)
* feat: implement BYOK (Bring Your Own Key) feature for AI providers

- Added BYOK section in AI settings to manage custom API keys.
- Introduced components for adding, editing, and deleting BYOK providers.
- Updated translations for BYOK-related UI elements.
- Modified existing components to support new BYOK functionality.

Signed-off-by: Innei <tukon479@gmail.com>

* feat: enhance BYOK provider support and update UI elements

- Added support for the "OpenRouter" BYOK provider in relevant components.
- Updated translations for security-related UI elements to reflect new descriptions.
- Adjusted styling in settings components for improved visual consistency.

Signed-off-by: Innei <tukon479@gmail.com>

* feat: refine BYOK provider management and enhance UI

- Introduced a new constants file for BYOK provider options.
- Updated the ByokProviderModalContent to filter available providers based on configured ones.
- Enhanced the ByokSection to manage provider addition and editing more effectively.
- Adjusted table styling in the PlanComparisonTable for improved readability.
- Added new translation keys for "AI Bring Your Own Key" in multiple languages.

Signed-off-by: Innei <tukon479@gmail.com>

---------

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-18 15:52:54 +08:00
DIYgod 0ee62fa042 feat: remove onboarding feed references and update settings 2025-11-18 14:14:33 +08:00
DIYgod 18eb4559f0 chore: update package versions for client-sdk and ai-tools 2025-11-17 20:47:18 +08:00
DIYgod eebc33bdd3 fix: update hoverMarkUnread setting to false in default settings 2025-11-15 21:11:44 +08:00
DIYgod e48d40a7e7 chore: update package versions for client-sdk and ai-tools 2025-11-15 12:09:47 +08:00
DIYgod 94c3b91699 feat: replace hcaptcha with recaptcha-v3 2025-11-14 21:09:10 +08:00
DIYgod 54e5e84617 feat: ai shortcuts 2025-11-12 20:46:46 +08:00
DIYgod e59f98e85d feat: subscription limit warning 2025-11-12 11:45:12 +08:00
Stephen Zhou 9c2754134d chore: paid settings level 2025-11-11 19:29:48 +08:00
DIYgod 68fb09eb03 chore: update dependencies (#4667)
* chore: update dependencies

* Implement code changes to enhance functionality and improve performance
2025-11-06 21:09:46 +08:00
Innei 3439180c6c feat(updater): implement distribution update handling and external link opening
- Added a new method to open external URLs in the app.
- Enhanced the updater to check for distribution updates and notify users.
- Updated the updater status types to include distribution updates.
- Refactored the update notice component to handle distribution store updates.
- Added localization for distribution update notifications.

This update improves the user experience by allowing seamless updates from distribution stores and providing clear notifications for available updates.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-06 16:37:33 +08:00
DIYgod f7b648f25e feat(aiChat): conditionally render floating panel based on view type
style: adjust padding in ListItem component for better spacing
2025-11-05 17:33:57 +08:00
DIYgod aee647197b refactor: remove aiColWidthAll from UISettings interface 2025-11-05 17:12:53 +08:00