Commit Graph

4292 Commits

Author SHA1 Message Date
DIYgod 80936d27f0 release(desktop): release v1.5.0 2026-04-02 18:09:19 +08:00
DIYgod 151662c8dd docs(desktop): prepare release changelog 2026-04-02 18:07:36 +08:00
DIYgod 1c89c8476f fix(mobile): add expo-network for EAS builds (#4951) 2026-04-02 09:51:11 +00:00
DIYgod 1571396fb6 fix: upgrade sdk packages and align app types (#4950) 2026-04-02 09:03:57 +00:00
DIYgod 03ccfa8c56 fix: keep hovered unread entries visible (#4948) 2026-04-02 07:28:30 +00:00
DIYgod d27261d76e fix(mobile): simplify iOS subscription management (#4947) 2026-04-02 07:27:21 +00:00
DIYgod ce5e91962c fix: pause scroll mark read after refresh (#4946) 2026-04-02 07:21:57 +00:00
DIYgod 44614f746d fix(mobile): show stripe subscriptions on android (#4945) 2026-04-02 07:20:28 +00:00
DIYgod 22e0e90ffd fix(cli): verify browser login token (#4944) 2026-04-02 05:04:34 +00:00
DIYgod a9eaae8c88 fix(desktop): export pdf via electron ipc (#4943) 2026-04-02 12:37:03 +08:00
DIYgod 14c77295ac fix(desktop): keep ai chat input within viewport 2026-03-24 13:04:48 +08:00
DIYgod 99081f8e7f fix(desktop): support two-factor auth in electron 2026-03-24 13:03:18 +08:00
DIYgod 2c1c978b0e fix(desktop): add auth origin headers for electron 2026-03-24 11:49:39 +08:00
DIYgod 644dea80e5 chore(landing): update react to 19.2.4 2026-03-24 11:21:11 +08:00
DIYgod 507f4018d6 feat(landing): add researchers trust band 2026-03-24 11:17:42 +08:00
DIYgod 338164b68c fix(web): remove openpanel and fix ssr manifest 2026-03-17 18:17:39 +08:00
DIYgod b5ab3e08b6 feat(cloudflare): split desktop and ssr workers 2026-03-17 16:51:45 +08:00
DIYgod 312ec968ef feat(landing): add audience tabs to hero 2026-03-17 16:44:49 +08:00
DIYgod 4cc68d34cf feat(landing): refresh landing, pricing, and deploy flow (#4921) 2026-03-17 14:33:05 +08:00
DIYgod fa7ce0f011 fix(cli): use npx latest and restore login flow 2026-03-17 12:18:24 +08:00
DIYgod 9a8280ded4 feat(cli): switch desktop sync to folocli 2026-03-17 11:18:48 +08:00
DIYgod bd0d081a7d fix(mobile): refresh timeline after login 2026-03-17 10:13:28 +08:00
DIYgod 3f31f505f8 fix: restore frontend ci for better-auth upgrade 2026-03-16 21:35:14 +08:00
DIYgod 397049014f fix: upgrade better-auth client compatibility 2026-03-16 21:14:41 +08:00
John Li b55e2f0eb7 fix(electron): persist theme settings (#4900) 2026-03-16 17:18:52 +08:00
DIYgod a2a88d9fd4 fix(mobile): improve ipad layouts and detail rendering 2026-03-13 13:20:31 +08:00
DIYgod aea75fe57b fix(desktop): improve self-test coverage and ui polish 2026-03-13 10:20:01 +08:00
DIYgod df83cf62ea fix(mobile): polish auth and settings ux 2026-03-13 10:15:33 +08:00
DIYgod 82b5791950 chore(sync): merge mobile-main into dev 2026-03-12 21:29:05 +08:00
DIYgod ff1cf29d13 docs(release): remove cli notes from desktop changelog 2026-03-12 20:52:07 +08:00
DIYgod 96b6eac16a fix(desktop): hide cli settings tab for release 2026-03-12 20:37:07 +08:00
DIYgod 94f90873d5 fix(desktop): restore renderer api requests 2026-03-12 20:35:26 +08:00
DIYgod 60e2dd3198 release(desktop): release v1.4.0 2026-03-12 17:37:56 +08:00
DIYgod 278388cc13 release(mobile): release v0.4.0 2026-03-12 17:37:24 +08:00
DIYgod 6880d3b893 docs(release): prepare mobile and desktop changelogs 2026-03-12 17:36:40 +08:00
DIYgod 3fbaf119ae fix(mobile): align ios subscription upgrade actions 2026-03-12 17:30:31 +08:00
DIYgod 394730251a feat(mobile): align upgrade prompts with desktop (#4914) 2026-03-12 16:35:33 +08:00
DIYgod cfb23ad15d fix(mobile): polish settings and discover ui (#4913) 2026-03-12 14:31:33 +08:00
DIYgod e8ae098ba0 fix(mobile): repair discover categories and bootstrap iOS auth (#4912) 2026-03-12 12:27:52 +08:00
DIYgod f78d7e766b feat(mobile): support anonymous timeline reading (#4911) 2026-03-12 11:29:45 +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 b1ed3828d4 feat: add store review prompts for desktop and mobile (#4909) 2026-03-11 22:54:04 +08:00
DIYgod e00e043d6c fix(desktop): remove text selection toolbar 2026-03-11 16:56:39 +08:00
DIYgod 65c18693da fix(mobile): avoid android modal header overlap (#4907) 2026-03-11 11:43:41 +08:00
DIYgod 7cc1cd549c fix(mobile): stabilize auth e2e flows (#4905)
* fix(mobile): stabilize auth e2e flows

* docs(skill): add mobile e2e runbook
2026-03-11 10:41:02 +08:00
DIYgod 0b344fd0e7 fix(mobile): align translation gating with real roles (#4906) 2026-03-11 10:30:46 +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 93c1fc3de6 revert: remove mobile auth cookie fallback (#4902) 2026-03-10 11:53:31 +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 df748a5f6a feat(cli): deep integration with desktop client (#4896)
* feat(cli): deep integration with desktop client

- Package CLI binary with desktop app via extraResource in Electron Forge
- Sync desktop login session to ~/.folo/config.json automatically on login/logout
- Add CliService IPC with install/uninstall methods supporting macOS (osascript), Linux (pkexec), Windows (.cmd wrapper)
- Add CLI settings tab in desktop app for install status and management
- Create prepare-cli build script to compile and bundle CLI before packaging
- Add i18n strings for CLI UI (English and Chinese)

The CLI now shares the desktop app's authentication session without requiring separate login.

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

* fix(cli): fix CI failures in auth service and forge config

- Pass `undefined` explicitly to syncSessionToCliConfig() to satisfy TS arity check
- Make resources/cli conditional in extraResource so packaging doesn't fail when CLI bundle is absent

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

* fix(cli): make syncSessionToCliConfig token param optional

Avoids TS2554 when called without arguments on signOut, while also
satisfying the lint rule that strips explicit `undefined` arguments.

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

* fix(cli): address PR review feedback

- Fix $@ shell expansion in privileged install path by writing to a
  temp file first, then using admin cp (Comment #1)
- Check .cmd extension on Windows for install status and uninstall
  guard so the CLI is correctly detected and removed (Comment #2)
- Wire prepare:cli into build:electron-vite instead of build:electron
  so all CI packaging paths (vite + forge) include CLI (Comment #3)
- Add CLI i18n strings for ja, fr-FR, zh-TW locales (Comment #4)

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

---------

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-08 10:02:11 +08:00