rcgit

/ karakeep
follow (on) | order: default date topo
Age Commit message Author Files +/-
fix: remove incorrect array destructuring in mobile search (#2124)
The search was crashing because of incorrect array destructuring on
the useDebounce hook return value. useDebounce returns a string, not
an array, so using `const [query] = useDebounce(...)` caused query
to be undefined when the search string was empty.
This resulted in passing { text: undefined } to the tRPC endpoint,
which failed Zod validation expecting a string.
Fixed by removing the array destructuring: const query = useDebounce(...)
Co-authored-by: Claude <noreply@anthropic.com>
Mohamed Bassem 1 -1/+1
feat: display notes on bookmark card (#2083)
* feat: display notes on bookmark card
* apply styling
* include mobile impl
* apply pr comments
* add display options menu into PR
* put it under app setting
* cleanup
* address pr comments
* change the default for show notes to false
* make the in-card note font lighter
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
xuatz 13 -25/+268
feat: Add source field to track bookmark creation sources (#2037)
* feat: Add source field to track bookmark creation sources
Add a new 'source' field to the bookmarks table to track where bookmarks
were created from. Possible values: api, web, cli, mobile, singlefile, rss.
Changes:
- Add source field to bookmarks table schema
- Update Zod schemas to include source field
- Update tRPC createBookmark procedure to store source
- Update all callsites to pass appropriate source value:
  - api: Default to "api" if not provided
  - singlefile: Set to "singlefile"
  - rss: Set to "rss" in feedWorker
  - cli: Set to "cli"
  - mobile: Set to "mobile" in all mobile app bookmark creation
  - browser-extension: Set to "web"
  - web: Set to "web" in all web app bookmark creation
- Create migration file for database schema change
Fixes #2036
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Mohamed Bassem <MohamedBassem@users.noreply.github.com>
* feat: Add extension source type for browser extension
- Add 'extension' to bookmark source enum
- Update browser extension to use 'extension' instead of 'web'
Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com>
* fix CI
* fix CI
* fix the migration file
* add import source
* make source nullish
---------
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com>
Mohamed Bassem 16 -12/+2650
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
Mohamed Bassem 32 -493/+1731
fix(mobile): Fix text bookmark editor MohamedBassem 6 -379/+444
fix(mobile): Disable the save button when bookmark is being saved MohamedBassem 1 -2/+2
feat(mobile): Retheme the mobile app (#1872)
* Add nativewindui
* migrate to nativewindui text
* Replace buttons with nativewindui buttons
* Use nativewindui search input
* fix the divider color
* More changes
* fix manage tag icon
* fix styling of bookmark card
* fix ios compilation
* fix search clear
* fix tag pill border color
* Store theme setting in app settings
* fix setting color appearance
* fix coloring of search input
* fix following system theme
* add a save button to info
* fix the grey colors on android
* fix icon active tint color
* drop the use of TextField
Mohamed Bassem 47 -433/+1991
feat: Add delete button and creation dates to mobile info page MohamedBassem 1 -33/+78
fix(mobile): Fix image quality slider showing lots of decimal places. fixes… Mohamed Bassem 1 -1/+1
feat(mobile): Add user setting for default bookmark view mode (#1723)
* feat(mobile): add user setting for default bookmark view mode
* regen db migration script
* clean up implementation
* Update docs/docs/07-Development/01-setup.md
* Update GEMINI.md
* use local setting instead of storing value in db
* improve start-dev.sh to also handle for db migration
* rename mobileBookmarkClickDefaultViewMode to defaultBookmarkView for consistency
xuatz 11 -10/+214
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>
lexafaxine 7 -47/+416
fix(mobile): Fix crash when bookmark doesn't have archive or screenshot. Fixes… Mohamed Bassem 2 -26/+65
feat(mobile): Add tag clearing functionality to tag list (#1595) Ashok Úradníček 1 -1/+31
fix(mobile): always visible search bar in tags list (#1596) Ashok Úradníček 1 -0/+1
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
xuatz 70 -1695/+1174
feat(mobile): Add support for viewing PDFs (#1519)
* feat(mobile): add react-native-pdf dependency
Add react-native-pdf package to enable PDF viewing functionality
in the mobile app. This will be used to display PDF bookmarks
directly within the app.
Part of #597
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat(mobile): add PDF viewer component with authentication support
Add a dedicated PDFViewer component that handles downloading and
displaying PDF assets with proper authentication headers. Features
include:
- Download progress indication
- Error handling with user-friendly messages
- Automatic cleanup of temporary files
- Proper memory management to prevent leaks
- Content type validation for PDF files
Part of #597
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat(mobile): integrate PDF viewing in bookmark detail view
Integrate the PDFViewer component to display PDF bookmarks inline.
When a bookmark is a PDF asset, it now renders using the dedicated
PDF viewer instead of treating it as an image.
Also adds external PDF opening functionality with platform-specific
handling for iOS and Android, proper filename handling, and temporary
file cleanup.
Additionally fixes dark mode styling for the navigation header to ensure
proper contrast in both light and dark themes.
Part of #597
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* revert the open externally button
* use react query for downloading the pdf
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: MohamedBassem <me@mbassem.com>
Code Love 4 -33/+226
feat(mobile): add reader/screenshot/archive view to bookmark preview (#1509)
* feat(mobile): add reader view by default to bookmark detail view, retaining WebView fallback
* feat(mobile): add dark mode support for mobile reader view
* Add selectors for different views for bookmark link
---------
Co-authored-by: MohamedBassem <me@mbassem.com>
Simon Kenny 2 -12/+288
refactor: Move bookmark utils from shared-react to shared Mohamed Bassem 20 -104/+100
fix: Dont download html content by default in the bookmark grid. Fixes #1198 Mohamed Bassem 14 -36/+112
chore: Rename hoarder packages to karakeep MohamedBassem 230 -644/+654
fix: Deprecate the updateBookmarkText trpc endpoint and replace it with… MohamedBassem 4 -20/+6
fix(mobile): add header class name corresponding to dark mode for text color… Md. Saadman Farhad 1 -0/+1
fix(mobile): Fix flicker on sign in page. Fixes #911 MohamedBassem 5 -109/+53
fix(mobile): margin for "Lists" tab content (#927)
* fix: left margin for list items
* refactor: move type into func definition
* fix: missing return type
Co-authored-by: Joseph Chambers <5374985+imcodingideas@users.noreply.github.com>
* style: remove trailing space
---------
Co-authored-by: Joseph Chambers <5374985+imcodingideas@users.noreply.github.com>
Daniel Vigaru 2 -1/+42
feat: Add basic pagination to searchBookmarks tRPC Mohamed Bassem 5 -19/+75
fix(mobile): useLayoutEffect for navigator changes MohamedBassem 4 -12/+18
ui(mobile): Use native search bar for manage tags page MohamedBassem 1 -80/+80
fix(mobule): Fix keyboard issues in the info screen MohamedBassem 1 -22/+24
ui(mobile): Make page titles more native MohamedBassem 8 -61/+67
fix(mobile): Use keyboard avoiding view in the info page MohamedBassem 2 -12/+19
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
Mohamed Bassem 15 -4802/+3830
feature(mobile): Add support for creating tags from the manage tags page MohamedBassem 1 -13/+86
fix(mobile): Dont dismiss keyboard on tag selection MohamedBassem 1 -0/+1
feat(mobile): Add support for managing tags from mobile MohamedBassem 6 -16/+211
feat(mobile): Allow editing titles and a cleaner info page MohamedBassem 1 -14/+73
ui(mobile): Replace bottom sheet with native screens (#690)
* Remove bottom sheet from bookmark info page
* Remove bottom sheet from manage lists page
* Remove bottom sheet from new list page
* Remove bottom sheet from new bookmark page
* Drop bottom-sheets
* Improve the look of the modals
* Make the search page fade from bottom
Mohamed Bassem 19 -914/+746
ui(mobile): Remove the dedicated search page and add a search bar in home MohamedBassem 5 -71/+88
fix(mobile): Fix bookmarkview page on android not showing bookmark actions.… MohamedBassem 3 -9/+36
feature(mobile): Use inline WebView for expanding bookmarks MohamedBassem 5 -151/+329
fix(mobile): Drop the floating add button. Fixes #439 MohamedBassem 1 -15/+3
feature(mobile): Allow users to login with API keys in the mobile app MohamedBassem 5 -75/+214
fix(mobile): Fix some icon colors in dark mode MohamedBassem 3 -4/+10
feature(mobile): Add settings page for configuring the theme MohamedBassem 5 -11/+106
feature(mobile): Add proper error handling for server errors MohamedBassem 6 -13/+58
feature(mobile): Add a floating button for quickly adding new bookmarks MohamedBassem 1 -2/+8
feature(mobile): Add support for deleting lists MohamedBassem 1 -3/+57
feature(mobile): Allow configuring uploaded image quality in the mobile app MohamedBassem 6 -12/+84
feature(mobile): Add ability to create basic lists from the app MohamedBassem 3 -5/+111
ui(mobile): Merge the editors for notes and links MohamedBassem 3 -32/+30
feature(mobile): Change the view bookmark page to be a modal and add tags and
notes
MohamedBassem 6 -192/+285
ui(mobile): Change the add/edit note editor dialogs to be bottom sheets MohamedBassem 5 -125/+154
feature(mobile): Allow editing notes from the mobile app MohamedBassem 4 -32/+122
fix(mobile): Allow expanding the text by clicking on bookmark card MohamedBassem 4 -37/+160
fix(mobile): Change the next note text input to have multiple lines by default MohamedBassem 1 -0/+2
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>
kamtschatka 27 -120/+1266
feature(mobile): Show server address in the settings MohamedBassem 1 -1/+8
ui(mobile): Add horizontal margins to the bookmark cards MohamedBassem 4 -3/+10
feature: Dedup links on creation. Fixes #49 MohamedBassem 8 -106/+176
fix(mobile): Add a bigger button to collable the nested list MohamedBassem 1 -6/+5
fix(mobile): Fix the color of the collapsible triangle to respect dark mode MohamedBassem 1 -9/+15
feature(mobile): Add support for nested listed on mobile MohamedBassem 1 -18/+89
mobile: Add dark mode support MohamedBassem 22 -56/+188
feature: Change archived meaning to only mean removed from homepage MohamedBassem 7 -16/+5
fix(mobile): Refetch queries on app focus MohamedBassem 1 -0/+15
format: Add missing lint and format, and format the entire repo MohamedBassem 57 -192/+255
mobile(android): Getting the android app ready for submission MohamedBassem 19 -43/+109
fix(mobile): Fix active tab tint color MohamedBassem 1 -1/+5
fix(mobile): Fix setting propagatin MohamedBassem 11 -135/+91
fix(mobile): Fix flicker on search MohamedBassem 8 -70/+105
Feature: Add support for uploading images and automatically inferring their…
* feature: Experimental support for asset uploads
* feature(web): Add new bookmark type asset
* feature: Add support for automatically tagging images
* fix: Add support for image assets in preview page
* use next Image for fetching the images
* Fix auth and error codes in the route handlers
* Add support for image uploads on mobile
* Fix typing of upload requests
* Remove the ugly dragging box
* Bump mobile version to 1.3
* Change the editor card placeholder to mention uploading images
* Fix a typo
* Change ios icon for photo library
* Silence typescript error
Mohamed Bassem 31 -79/+2736
refactor: Prepare for pagination by dropping querying bookmarks by id MohamedBassem 16 -100/+155
ui(mobile): New header style in the app MohamedBassem 12 -114/+163
fix(mobile): Scroll to the top when the main tab is clicked MohamedBassem 3 -9/+15
ui(mobile): Change the creation buttons to be under a menu MohamedBassem 2 -12/+42
ui(mobile): Add a chevron to the list items in the list view MohamedBassem 1 -1/+3
feat(mobile): Add tag viewing page MohamedBassem 2 -2/+34
mobile: Fix the naming of the lists screen MohamedBassem 1 -8/+8
mobile: Revert the margins around the cards MohamedBassem 5 -9/+7
lint: Lint and format the entire repo with the new configs MohamedBassem 122 -411/+424
structure: Create apps dir and copy tooling dir from t3-turbo repo MohamedBassem 396 -9511/+10350