rcgit

/ karakeep
follow (on) | order: default date topo
Age Commit message Author Files +/-
chore: More oxlint changes Mohamed Bassem 23 -87/+24
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
fix: Fix webhook not firing on deletion. Fixes #1613 Mohamed Bassem 3 -19/+23
fix: Change public image's signed tokens to be time aligned for better caching Mohamed Bassem 5 -6/+140
fix: Fix oauth creation failure due to missing UserSettings table. Fixes #1583 Mohamed Bassem 4 -45/+81
fix: Use a new public list metadata endpoint for metadata generation Mohamed Bassem 6 -52/+126
feat: Allow specifying the overwrite mode for singlefile archives. Fixes #1125 Mohamed Bassem 5 -40/+327
feat: Add support for public lists (#1511)
* WIP: public lists
* Drop viewing modes
* Add the public endpoint for assets
* regen the openapi spec
* proper handling for different asset types
* Add num bookmarks and a no bookmark banner
* Correctly set page title
* Add a not-found page
* merge the RSS and public list endpoints
* Add e2e tests for the public endpoints
* Redesign the share list modal
* Make NEXTAUTH_SECRET not required
* propery render text bookmarks
* rebase migration
* fix public token tests
* Add more tests
Mohamed Bassem 36 -147/+3286
feat: add user customisable default archive display behaviour (#1505)
* fix typo
* implementation
* bug fix and refactoring
* Use nuqs for searchParam management
* remove the todo about the tests
* fix tests
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
xuatz 19 -24/+2226
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
Mohamed Bassem 26 -293/+3131
feat: Add "deleted" webhook event (#1464) Salvatore Gentile 5 -3/+6
feat: Allow defaulting to reader mode when clicking on bookmarks. Fixes #662 Mohamed Bassem 16 -34/+2341
feat: Add AI auto summarization. Fixes #1163 Mohamed Bassem 34 -2639/+4843
feat(api): Expose the endpoint to create a new tag Mohamed Bassem 7 -49/+172
fix(search): add new relevance sort order (#1392)
* fix(search): add new relevance sort order
* address pr comments
* some minor fixes
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
xuatz 7 -16/+74
fix(api): make PUT bookmark to a list idempotent (#1427)
* fix(api): make duplicate PUT /lists/:id/bookmarks/:id as allowed operation
* apply pr comments
xuatz 3 -34/+2
feat: Allow enabling/disabling RSS feeds Mohamed Bassem 10 -21/+2032
Revert "fix: Fix smart lists not working in list search qualifiers". #1321
This reverts commit 6178736d64180f9bc8954099c90d54aa2f9f35f5.
Mohamed Bassem 3 -133/+69
fix: Fix smart lists not working in list search qualifiers. Fixes #845 Mohamed Bassem 3 -69/+133
fix: When triggering a re-index, drop all the documents first Mohamed Bassem 1 -0/+3
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
Mohamed Bassem 42 -40/+5787
tests: Run trpc tests in CI Mohamed Bassem 2 -0/+18
tests: Add tests for various trpc endpoints Mohamed Bassem 9 -5/+1108
fix: Add includeContent to search endpoint and document it in the docs Mohamed Bassem 11 -22/+122
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>
omnitrix 8 -3/+325
fix: Add password salt to the user table Mohamed Bassem 8 -12/+1718
feat: add support for filtering by bookmark age (#1228) Brandon Wong 8 -15/+162
fix: Dont download html content by default in the bookmark grid. Fixes #1198 Mohamed Bassem 14 -36/+112
feat: Allow editing the extracted content of an asset bookmark Mohamed Bassem 6 -6/+66
feat: Add an MCP server for karakeep Mohamed Bassem 28 -139/+2512
feat(web): Optionally add short description to lists (#1225)
* feat(web): Optionally add short description to lists
* regenerate openapi spec
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
ekambains 10 -1/+1743
chore: Rename hoarder packages to karakeep MohamedBassem 230 -644/+654
fix: Deprecate the updateBookmarkText trpc endpoint and replace it with… MohamedBassem 4 -20/+6
feat: Allow editing bookmark details MohamedBassem 14 -102/+732
feat: Add a search matcher for rss feed bookmarks MohamedBassem 7 -1/+144
feat(workers): Adds publisher and author og:meta tags to Bookmark (#1141) erik-nilcoast 12 -33/+2191
deps: Upgrade trpc and react query Mohamed Bassem 7 -95/+511
deps: Upgrade vitest Mohamed Bassem 5 -130/+81
feat: Add endpoints for whoami and user stats. Fixes #1113 Mohamed Bassem 9 -9/+455
fix: Revert the accidental upgrade of deps. #1107 Mohamed Bassem 9 -7148/+837
build(deps-dev): bump vitest from 1.3.1 to 1.6.1 (#1104)
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.3.1 to 1.6.1.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v1.6.1/packages/vitest)
---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] 5 -265/+232
fix: Harden getBookmarks endpoint against inconsistent bookmarks. Fixes #1094 Mohamed Bassem 2 -66/+60
feat: Move background jobs with the admin actions. Fixes #1083 Mohamed Bassem 8 -257/+284
fix: Fix missing workers in the server stats Mohamed Bassem 3 -0/+86
fix: Move away from JSON outputs to structured outputs. Fixes #1047 Mohamed Bassem 7 -39/+74
feat(web): Show list stats in the sidebar Mohamed Bassem 6 -42/+97
refactor: Move the list logic into a separate model Mohamed Bassem 6 -194/+308
feat: Add a setting page to manage assets. Fixes #730 Mohamed Bassem 16 -347/+630
feat: Add PDF screenshot generation and display (#995)
* Updated pdf2json to 3.1.5
* Extract and store a screenshot from PDF files using pdf2pic
* Installing graphicsmagick and ghostscript
* Generate Missing PDF screenshot with tidyAssets worker for backward support
* Display PDF screenshot instead of the PDF in web if it exists.
* Display PDF screenshot in mobile app if exists.
* Updated pnpm-lock.yaml
* Removed console.log
* Revert the unnecessary changes in package.json
* Revert pnpm-lock changes
* Prevent rendering PDF files if the screenshot is not generated
* refactor: replace useEffect with useMemo for section initialization
* feat: show PDF file download button and handle large PDFs by defaulting to screenshot view
* feat: add file size to openapi spec
* feature: Add Assets preprocessing in fix mode to admin actions
* i18n: add reprocess_assets_fix_mode translation
* i18n: Add missing ar translations
* A bunch of fixes
* Fix openspec schema
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
Ahmad Mujahid 34 -101/+545
fix: Dont rearchive singlefile uploads and consider them as archives Mohamed Bassem 4 -4/+20
feat: Update the last modifiedAt timestamp when tags of the bookmark change Mohamed Bassem 1 -0/+9
feat: Add a new modifiedAt field to bookmarks table. Fixes #952 Mohamed Bassem 5 -13/+1683
feat: Change webhooks to be configurable by users Mohamed Bassem 23 -28/+4272
fix: Fix url matcher not matching sourceUrl. Fixes #874 Mohamed Bassem 2 -5/+25
feat: Add ability to filter by bookmark type Mohamed Bassem 9 -14/+208
feat: Add Bookmark Sorting Feature (#812)
* feat: add bookmark sorting by creation date
- Add sort order toggle in GlobalActions component
- Implement ascending/descending sort functionality
- Update translations for sorting feature in all languages
- Add sort order icons and dropdown menu
- Maintain sort preference in URL params
* feat: add bookmark sorting by creation date
- Add sort order toggle in GlobalActions component
- Implement ascending/descending sort functionality
- Update translations for sorting feature in all languages
- Add sort order icons and dropdown menu
- Maintain sort preference in URL params during session
Note: Sort order resets to default on page refresh, server-side persistence can be implemented in future enhancement
* feat: Add global sort by date feature with shared sort order state
- Implement global sort order functionality using a shared Zustand store (`useSortOrder` hook).
- Update `getBookmarks` and `searchBookmarks` endpoints to accept a `sortOrder` parameter.
- Refactor code to import `ZSortOrder` from shared types (`bookmarks.ts`), ensuring consistency across the codebase.
- Update components (`UpdatableBookmarksGrid`, `bookmark-search`) to use the shared `useSortOrder` hook.
- Remove unused `zSortBy` definition from `packages/shared/types/bookmarks.ts` to avoid confusion.
- Ensure consistent naming conventions by prefixing Zod inferred types with `Z`.
- Clean up code and address previous PR feedback comments.
* tiny fixes and fixing TS errors
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
Daksh Pareek 24 -32/+231
feat: Support customizing the summarization prompt. Fixes #731 Mohamed Bassem 10 -16/+1649
feat: Add support for singlefile extension uploads. #172 Mohamed Bassem 14 -37/+275
feat: Expose the search functionality in the REST API Mohamed Bassem 8 -20/+299
fix: Change search endpoint to accept query as raw string Mohamed Bassem 3 -9/+10
Revert "ci: Run tests on push (#807)" (#808)
This reverts commit 39358b1517a06b90b9886a648ce1c595d1556c8e.
Mohamed Bassem 8 -20/+5
ci: Run tests on push (#807)
* ci: Run tests on push
* disable drizzle logging in tests
* run db migrations in trpc tests
Mohamed Bassem 8 -5/+20
fix: Add i18n for query explainer and add missing url matcher Mohamed Bassem 4 -15/+82
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>
Mohamed Bassem 26 -100/+2045
feat: Add support for searching for tagged and listed items Mohamed Bassem 6 -0/+128
feat: Add support for negative search terms Mohamed Bassem 6 -69/+282
chore: add format:fix and lint:fix scripts to all packages Mohamed Bassem (aider) 10 -2/+22
test: Add tests for the search id queries Mohamed Bassem 2 -0/+280
feat: Introduce advanced search capabilities (#753)
* feat: Implement search filtering in the backend
* feat: Implement search language parser
* rename matcher name
* Add ability to interleve text
* More fixes
* be more tolerable to parsing errors
* Add a search query explainer widget
* Handle date parsing gracefully
* Fix the lockfile
* Encode query search param
* Fix table body error
* Fix error when writing quotes
Mohamed Bassem 11 -20/+1054
deps: Upgrade drizzle-orm to 0.38.3 Mohamed Bassem 5 -15/+114
feat: Implement the all highlights page. Fixes #620 Mohamed Bassem 13 -85/+255
feat: Add REST APIs for manipulating highlights. Fixes #620 Mohamed Bassem 11 -10/+448
feat: Implement highlights support for links. Fixes #620 Mohamed Bassem 16 -6/+3837
refactor: Move asset preprocessing to its own worker out of the inference worker Mohamed Bassem 7 -120/+258
feat: Add basic pagination to searchBookmarks tRPC Mohamed Bassem 5 -19/+75
feature: Add an admin notice about the usage of the legacy container images Mohamed Bassem 7 -9/+229
feature: Store crawling status code and allow users to find broken links. Fixes… Mohamed Bassem 9 -6/+1628
feature: Allow setting bookmark metadata during creation Mohamed Bassem 4 -133/+120
feature(web): Add the ability to view the bookmarks of a particular rss feed Mohamed Bassem 5 -2/+77
feature: Add support for subscribing to RSS feeds. Fixes #202 Mohamed Bassem 16 -3/+2280
feature: Archive videos using yt-dlp. Fixes #215 (#525)
* Allow downloading more content from a webpage and index it #215
Added a worker that allows downloading videos depending on the environment variables
refactored the code a bit
added new video asset
updated documentation
* Some tweaks
* Drop the dependency on the yt-dlp wrapper
* Update openapi specs
* Dont log an error when the url is not supported
* Better handle supported websites that dont download anything
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
kamtschatka 17 -71/+403
fix: Index the summary in search Mohamed Bassem 3 -1/+4
feature: Add a summarize with AI button for links Mohamed Bassem 12 -11/+1536
fix: Improve field names in the tag APIs Mohamed Bassem 4 -15/+24
feature(api): Add REST APIs to update bookmarks, tags and lists Mohamed Bassem 5 -7/+64
feature(api): Add REST APIs to manipulate lists and tags for bookmarks Mohamed Bassem 9 -58/+166
feature: Add APIs to create new lists and bookmarks Mohamed Bassem 4 -10/+37
feature: Allow reseting user password, change their roles and create new users.…
* How do I set the variable "user" or "system" for AI inference #262
changed from system to user
* Make Myself an Admin #560
added  user management functionality to the admin page
* A bunch of UI fixes and simplifications
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
kamtschatka 9 -52/+711
feature: Log authentication failures to support fail2ban. Fixes #477 (#569)
* How do I set the variable "user" or "system" for AI inference #262
changed from system to user
* [Feature Request] Log failed login attempts for fail2ban implementation
#477
added logging of failed logins
* [Feature Request] Log failed login attempts for fail2ban implementation #477
added more logging for extension related logins
* Propagte IP to trpc
---------
Co-authored-by: Your Name <you@example.com>
kamtschatka 9 -12/+116
feature: Support regenerating AI tags only for failed bookmarks MohamedBassem 2 -11/+29
feature: Introduce a mechanism to cleanup dangling assets MohamedBassem 10 -8/+351
feature: Allow to disable default password login after SSO is configured. Fixes…
* [Feature Request] Allow to disable default password log in after SSO is configured #406
changed the flag to also disallow logging in via password
The extensions will also no longer be allowed to log in via username/password then
* [Feature Request] Allow to disable default password log in after SSO is configured #406
added the error message for OAuth
kamtschatka 8 -14/+37
refactor: Start tracking bookmark assets in the assets table MohamedBassem 14 -175/+1581
refactor: Include userId in the assets table MohamedBassem 7 -0/+1235
feature: Allow disabling password signups (#413)
* [Feature Request] Allow to disable default password log in after SSO is configured #406
Added the DISABLE_LOCAL_SIGNUPS that can be used to force OAuth signups only
* rename local signups to password signups
---------
Co-authored-by: MohamedBassem <me@mbassem.com>
kamtschatka 5 -3/+15
fix: Drop the usage of useCursorV2 from the server MohamedBassem 2 -22/+16
feature: Persevere the source URL of clipped texts from the extension.
Fixes #448
MohamedBassem 13 -31/+1246
feature(web): Async validate JWT account and sign out the user if they no… MohamedBassem 3 -2/+39
feature(web): Add ability to manually trigger full page archives. Fixes #398…
* [Feature Request] Ability to select what to "crawl full page archive" #398
Added the ability to start a full page crawl for links and also in bulk operations
added the ability to refresh links as a bulk operation as well
* minor icon and wording changes
---------
Co-authored-by: MohamedBassem <me@mbassem.com>
kamtschatka 5 -6/+89
feature(web): Add ability to rerun inference on all bookmarks. Fixes 443 MohamedBassem 2 -0/+35
next