Commit Graph

54 Commits

Author SHA1 Message Date
Mohamed Bassem
314c363e5c feat: add support for user avatars (#2296)
* feat: add support for user avatars

* more fixes

* more fixes

* more fixes

* more fixes
2025-12-24 10:18:08 +00:00
Mohamed Bassem
92e352f3f6 fix: only trigger search autocomplete on first search char 2025-12-20 10:43:21 +00:00
Evan Simkowitz
7f4202afd7 feat: Add unified reader settings with local overrides (#2230)
* Add initial impl

* fix some format inconsistencies, add indicator in user settings when local is out of sync

* Fix sliders in user settings, unify constants and formatting

* address CodeRabbit suggestions

* add mobile implementation

* address coderabbit nitpicks

* fix responsiveness of the reader settings popover

* Move more of the web UI strings to i18n

* update translations for more coverage

* remove duplicate logic/definitions

* fix android font family

* add shared reading setting hook between web and mobile

* unify reader settings context for both web and mobile

* remove unused export

* address coderabbit suggestions

* fix tests
2025-12-15 00:39:25 +00:00
Mohamed Bassem
fbd12ea345 fix(mobile): fix app memory page size compatibility (#2135)
* fix(mobile): Add 16KB memory page size support for Android

Updates to support Google Play's requirement for 16KB memory page sizes:

- Update Expo SDK from 53.0.11 to 53.0.19
- Update expo-image from 2.2.0 to 2.4.0
- Update React Native from 0.79.3 to 0.79.5
- Configure expo-build-properties with:
  - compileSdkVersion: 35
  - targetSdkVersion: 35
  - buildToolsVersion: 34.0.0
  - ndkVersion: 27.1.12297006 (r27 with 16KB support)

These changes ensure all native libraries are compiled with proper
alignment for 16KB page sizes as required by Android 15+ devices.

Fixes Google Play rejection: "Your app does not support 16 KB memory page sizes"

* some fixes

* more fixes

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-15 00:50:02 +00:00
Mohamed Bassem
ec621bf55a feat(mobile): add custom headers configuration in sign-in screen (#2103)
* feat(mobile): add custom headers configuration in sign-in screen

Add ability for mobile app users to configure custom HTTP headers that are
sent with every API request. This enables users to add authentication headers,
proxy headers, or other custom headers required by their server setup.

Changes:
- Add customHeaders field to mobile app settings schema
- Create CustomHeadersModal component for managing headers
- Update sign-in screen with link to configure custom headers
- Modify tRPC provider to merge custom headers with Authorization header

The custom headers are stored securely in the app settings and persist
across sessions.

* fix keyboard

* add custom headers to other callsites

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-08 18:04:46 +00:00
MohamedBassem
560900bb59 deps: Upgrade react-query to 5.90 2025-11-02 23:51:42 +00:00
Mohamed Bassem
62f7d900c5 feat: Add tag search and pagination (#1987)
* feat: Add tag search and use in the homepage

* use paginated query in the all tags view

* wire the load more buttons

* add skeleton to all tags page

* fix attachedby aggregation

* fix loading states

* fix hasNextPage

* use action buttons for load more buttons

* migrate the tags auto complete to the search api

* Migrate the tags editor to the new search API

* Replace tag merging dialog with tag auto completion

* Merge both search and list APIs

* fix tags.list

* add some tests for the endpoint

* add relevance based sorting

* change cursor

* update the REST API

* fix review comments

* more fixes

* fix lockfile

* i18n

* fix visible tags
2025-09-28 11:03:48 +01:00
Mohamed Bassem
820b7e655a feat: Add Create Tag button to tags page (#1942)
* feat: add Create Tag button to tags page

- Added useCreateTag hook to shared-react/hooks/tags.ts
- Created CreateTagModal component for tag creation without bookmark attachment
- Added Create Tag button to AllTagsView component
- Added necessary translation keys for the new feature

Fixes #1937

Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com>

* format

* localize toasts

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com>
2025-09-14 10:37:36 +01:00
Mohamed Bassem
18c1d15e84 fix: Incremental polling interval for ongoing crawls 2025-08-31 16:52:21 +00:00
Mohamed Bassem
dd53ccb962 deps: Upgrade expo & nextjs to react 19 (#1565)
* Attempt to upgrade expo 53

* Attempt upgrade nextjs

* Fix a bunch of peer deps

* upgrade some docs deps

* fix typecheck

* update the shadcn calendar component

* more fixes

* more fixes

* revert ollama upgrade

* update react version to use carets

* remove react-select from landing

* fix the typescript error caused by customFetch

* upgrade the new grid user setting to nextjs 15

* mobile: enable react canary to support react 19.1

* upgrade react native menu

* fix navigation context error
2025-08-20 13:57:34 +01:00
MohamedBassem
77ae89b222 chore: More turbo fixes 2025-07-27 15:06:22 +01:00
MohamedBassem
8f1cb065d7 fix: Ensure that all packages are ESM packages 2025-07-27 14:36:16 +01:00
Mohamed Bassem
a441a67775 deps: Upgrade vite 2025-07-26 21:32:40 +00:00
Mohamed Bassem
fd0bac2832 deps: Upgrade trpc 2025-07-26 10:26:39 +00:00
lexafaxine
39fcda015b feat: adding search history #1541 (#1627)
* feat: adding search history

* fix popover should close when no matched history

* remove unnecessary react import

* replace current Input component with CommandInput for better UX

* add i18n for recent searches label

* fix bug

* refactor local storage logic to make code reusable

* using zod schema to validate search history and revert debounce change

* Consolidate some of the files

---------

Co-authored-by: Mohamed Bassem <me@mbassem.com>
2025-07-14 01:00:36 +01:00
Mohamed Bassem
845ccf1ad4 feat: Add delete account support 2025-07-13 09:54:51 +00:00
Mohamed Bassem
f7b3193815 chore: More oxlint changes 2025-06-22 12:38:24 +00:00
xuatz
d5e2973dce chore: migrate away from eslint to oxlint (#1642)
* chore: migrate away from eslint to oxlint

* revert turbo task name lint

* it seems like we can remove the seemingly default globals
2025-06-22 12:29:30 +01:00
xuatz
b8cad6a37d deps: upgrade to pnpm@9.15.9 (#1544)
* feat: upgrade to pnpm@9.15.9

* extra stuff

* unpin mobile deps

* unpin root package.json deps too

---------

Co-authored-by: Mohamed Bassem <me@mbassem.com>
2025-06-08 11:38:04 +01:00
Mohamed Bassem
9695bba2e9 feat: Generate RSS feeds from lists (#1507)
* refactor: Move bookmark utils from shared-react to shared

* Expose RSS feeds for lists

* Add e2e tests

* Slightly improve the look of the share dialog

* allow specifying a limit in the rss endpoint
2025-05-31 18:46:04 +01:00
Mohamed Bassem
b218118b84 refactor: Move bookmark utils from shared-react to shared 2025-05-31 15:23:46 +00:00
Mohamed Bassem
09652176f9 feat: Allow defaulting to reader mode when clicking on bookmarks. Fixes #662 2025-05-24 12:59:43 +00:00
Mohamed Bassem
2743d9e38e feat: Add AI auto summarization. Fixes #1163 2025-05-18 20:22:59 +00:00
Mohamed Bassem
136f126296 feat: Implement generic rule engine (#1318)
* Add schema for the new rule engine

* Add rule engine backend logic

* Implement the worker logic and event firing

* Implement the UI changesfor the rule engine

* Ensure that when a referenced list or tag are deleted, the corresponding event/action is

* Dont show smart lists in rule engine events

* Add privacy validations for attached tag and list ids

* Move the rules logic into a models
2025-04-27 00:02:20 +01:00
omnitrix
71a474268e feat(web): Add support for merging lists (#1231)
* feat: Support list merging

* some fixes

* move @hoarder to @karakeep

---------

Co-authored-by: Mohamed Bassem <me@mbassem.com>
2025-04-16 15:18:04 +01:00
MohamedBassem
755fc36e91 chore: Rename hoarder packages to karakeep 2025-04-12 19:37:40 +01:00
MohamedBassem
0b769c3532 fix: Deprecate the updateBookmarkText trpc endpoint and replace it with updateBookmark 2025-04-08 03:56:19 -07:00
MohamedBassem
3207264fc1 feat: Allow editing bookmark details 2025-04-08 03:48:12 -07:00
Mohamed Bassem
7297144c3a deps: Upgrade trpc and react query 2025-03-22 16:08:26 +00:00
Mohamed Bassem
379c49b2cd feat(web): Show list stats in the sidebar 2025-03-02 10:46:59 +00:00
Mohamed Bassem
14e4fed321 feat: Add a setting page to manage assets. Fixes #730 2025-02-23 23:16:52 +00:00
Mohamed Bassem
5ecdc36b7d feat: Add support for smart lists (#802)
* feat: Add support for smart lists

* i18n

* Fix update list endpoint

* Add a test for smart lists

* Add header to the query explainer

* Hide remove from lists in the smart context list

* Add proper validation to list form

---------

Co-authored-by: Deepak Kapoor <41769111+orthdron@users.noreply.github.com>
2025-01-02 13:00:58 +02:00
Mohamed Bassem
7956e9fa67 feat: Implement the all highlights page. Fixes #620 2024-12-28 12:30:24 +00:00
Mohamed Bassem
86d74e3f32 feat: Implement highlights support for links. Fixes #620 2024-12-27 16:09:29 +00:00
Mohamed Bassem
fd4a99678c deps(mobile): Upgrade to Expo 52 (#692)
* fix(mobile): Sharing bookmark modal

* WIP: Upgrade to 52

* post ugprade fixes

* more fixes

* fix padding in tabbar
2024-11-24 16:03:45 +00:00
Mohamed Bassem
731d2dfbea feature: Add a summarize with AI button for links 2024-10-27 00:12:11 +00:00
MohamedBassem
b147c8e5df feature: Persevere the source URL of clipped texts from the extension.
Fixes #448
2024-10-05 18:16:46 +00:00
MohamedBassem
a770e55520 feature(web): Show attachments and allow users to manipulate them. 2024-09-22 15:04:20 +00:00
MohamedBassem
a13c552f2b build: Fix sherif failures by sorting deps 2024-08-31 17:48:00 +00:00
MohamedBassem
d8cf7c17a2 feature(mobile): Allow editing notes from the mobile app 2024-08-25 00:52:15 +03:00
kamtschatka
a2225648a2 fix: Fix TRPC batchign failure because of long URLs. Fixes #281 (#291)
limiting the length of the URL for batched requests to prevent 431 errors
2024-07-13 13:39:25 +01:00
kamtschatka
e6486465de refactor: added the bookmark type to the database (#256)
* refactoring asset types
Extracted out functions to silently delete assets and to update them after crawling
Generalized the mapping of assets to bookmark fields to make extending them easier

* Added the bookmark type to the database
Introduced an enum to have better type safety
cleaned up the code and based some code on the type directly

* add BookmarkType.UNKNWON

* lint and remove unused function

---------

Co-authored-by: MohamedBassem <me@mbassem.com>
2024-07-01 12:03:53 +01:00
MohamedBassem
7d163f2189 feature: Allow users to delete all unused tags in one go 2024-04-26 12:38:02 +01:00
Mohamed Bassem
d07f2c9006 feature(web): Add ability to rename, merge and fast delete tags. Fixes #105 (#125)
* feature(web): Allow deleting tags from the all tags page

* feature(web): Add ability to rename, merge and fast delete tags. Fixes #105
2024-04-25 20:15:15 +01:00
MohamedBassem
ec15d20aba ui(web): Show bookmark URL when maximizing a bookmark 2024-04-24 15:07:18 +01:00
MohamedBassem
77b1aba5ac feature(extension): Allow adding tags and lists to newly hoarded bookmarks 2024-04-23 13:56:35 +01:00
MohamedBassem
4402e6f041 feature: Download images and screenshots 2024-04-20 00:05:31 +01:00
MohamedBassem
4f9b6c89de fix(mobile): Fix flicker on sign in page 2024-04-19 14:58:53 +01:00
Mohamed Bassem
e0999f701c feature: Nested lists (#110). Fixes #62
* feature: Add support for nested lists

* prevent moving the parent to a subtree
2024-04-19 00:09:27 +01:00
MohamedBassem
deba31ee01 refactor: Move the shared types to the shared package 2024-04-18 10:01:45 +01:00