Commit Graph

1801 Commits

Author SHA1 Message Date
DIYgod 096422e034 feat(desktop): migrate tts to folo service 2026-04-10 14:38:20 +08:00
DIYgod f6cdb64186 feat: add spotlight settings across desktop and mobile 2026-04-09 13:45:05 +08:00
DIYgod e8619436c7 feat: refine spotlight settings and highlighting 2026-04-09 13:45:05 +08:00
DIYgod a9860eac10 fix(ai-chat): show reset date for future credits 2026-04-09 13:35:42 +08:00
DIYgod 79efa4ebb2 fix(desktop): improve pdf export layout and branding 2026-04-07 13:22:04 +08:00
DIYgod aea74f80a7 chore(sync): merge main into dev
# Conflicts:
#	apps/desktop/layer/renderer/src/modules/settings/tabs/integration/index.tsx
2026-04-03 13:28:15 +08:00
DIYgod 421d50fca8 fix(desktop): restore integration typecheck 2026-04-03 13:15:59 +08:00
DIYgod ad8813b7f9 docs(desktop): update 1.5.0 changelog 2026-04-03 12:42:05 +08:00
wait 20cc43cf16 fix: resolve Obsidian EPERM on macOS by using native folder picker (#4242) (#4924)
- Replace text input with native dialog.showOpenDialog for vault path selection
- Add path validity detection with three-state UI (unselected/valid/invalid)
- Fix YAML frontmatter parsing failure with Chinese/special characters
- Fix ENOENT error when vault subdirectory doesn't exist
- Add AI summary (description) to Obsidian frontmatter export
- Add author fallback to feed title when entry author is empty
- Increase filename truncation limit from 20 to 80 characters for CJK titles

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 12:41:59 +08:00
DIYgod b7ccf7b872 fix(desktop): repair auth and cli sync 2026-04-03 12:38:01 +08:00
DIYgod 4cb761a501 fix(desktop): persist two-factor challenge cookies 2026-04-03 11:24:49 +08:00
DIYgod 43b5052b06 fix(desktop): persist session token after 2fa 2026-04-02 22:19:36 +08:00
DIYgod 69bed891a3 fix(desktop): add explicit 2fa submit 2026-04-02 22:16:26 +08:00
DIYgod 0508144f8d fix(desktop): use one-time token in cli settings 2026-04-02 21:11:58 +08:00
DIYgod 8b3a1b8965 fix(desktop): use one-time token for cli sync 2026-04-02 21:02:46 +08:00
wait bd879d5f9e
fix: resolve Obsidian EPERM on macOS by using native folder picker (#4242) (#4924)
- Replace text input with native dialog.showOpenDialog for vault path selection
- Add path validity detection with three-state UI (unselected/valid/invalid)
- Fix YAML frontmatter parsing failure with Chinese/special characters
- Fix ENOENT error when vault subdirectory doesn't exist
- Add AI summary (description) to Obsidian frontmatter export
- Add author fallback to feed title when entry author is empty
- Increase filename truncation limit from 20 to 80 characters for CJK titles

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 20:57:21 +08:00
DIYgod c799152a1e fix(desktop): repair cli settings sync 2026-04-02 19:43:05 +08:00
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 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 ce5e91962c
fix: pause scroll mark read after refresh (#4946) 2026-04-02 07:21:57 +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 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 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 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 aea75fe57b fix(desktop): improve self-test coverage and ui polish 2026-03-13 10:20:01 +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 6880d3b893 docs(release): prepare mobile and desktop changelogs 2026-03-12 17:36:40 +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 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 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
DIYgod 5e26d1d33d
feat(landing): merge landing app into monorepo (#4881) 2026-02-26 11:33:16 +08:00
DIYgod adca1960a6
fix(desktop): switch AI spline asset domain (#4875) 2026-02-24 15:47:22 +08:00
DIYgod 330ee9cd1a
fix: harden setting sync auth lifecycle (#4872)
* fix: harden setting sync auth lifecycle

* fix: preserve legacy setting sync queue

* fix: keep setting queue on auth flaps

* fix: persist queue reset on auth errors

* fix: initialize setting sync queue earlier

* fix: await mobile sync queue load
2026-02-24 12:24:20 +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