rcgit

/ karakeep
follow (on) | order: default date topo
Age Commit message Author Files +/-
i18n: Enable ukrainian language (#1195) Denys Dovhan 1 -0/+1
feat: Allow storing assets in a separate directory. Fixes #1091 Mohamed Bassem 3 -4/+8
feat(workers): Add CRAWLER_SCREENSHOT_TIMEOUT_SEC (#1155) Chang-Yen Tseng 3 -10/+21
feat(workers): Adds publisher and author og:meta tags to Bookmark (#1141) erik-nilcoast 12 -33/+2191
deps: Upgrade vitest Mohamed Bassem 5 -130/+81
feat(auth): Added env variable for OAuth timeout (#1136)
* feat(auth): add configurable OAuth timeout option
* fix(config): change OAUTH_TIMEOUT to use z.coerce.number for better type handling
* docs: Added instructions for OAUTH_TIMEOUT flag
Kaio Cesar 3 -0/+6
feat(workers): allows videoWorker to use ytdlp command line arguments specified… erik-nilcoast 3 -1/+8
i18n: Enable new languages Mohamed Bassem 1 -1/+5
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: Add support for 'ai tagged' as a webhook trigger. Fixes #1092 Mohamed Bassem 4 -4/+12
fix: Move away from JSON outputs to structured outputs. Fixes #1047 Mohamed Bassem 7 -39/+74
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: custom fetch wrapper for ollama inference. Fixes #656 (#1032)
* Add configurable fetch timeout for Ollama client
* Worker service needs access to the .env file
* repair typescript types
* Update customFetch.ts
* update the config docs
---------
Co-authored-by: sbarbett <shane@barbetta.me>
Co-authored-by: Mohamed Bassem <me@mbassem.com>
Gavin Mogan 5 -12/+34
fix: Loosen the restriction about the browser address env variable. Fixes #1000 Mohamed Bassem 1 -2/+2
feat(web): bulk tag deletion. Fixes #872 (#900)
* feat(web): #872 bulk tag deletion
* revert lock file change
* change bulk tag action type def and fix small issue
* fix prettier
* minor fixes
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
lexafaxine 5 -23/+311
feat(i18n): add Arabic language support (#983) Ahmad Mujahid 3 -1/+324
i18n: Enable the Hungarian translation Mohamed Bassem 1 -0/+1
fix: Dont rearchive singlefile uploads and consider them as archives Mohamed Bassem 4 -4/+20
feat: Change default max upload size to 50MB up from 4MB Mohamed Bassem 2 -6/+6
feat(api): Expose the modifiedAt date in the bookmarks API Mohamed Bassem 3 -0/+13
fix: Fix search query parsing to allow and/or to be identifiers. Fixes #935 Mohamed Bassem 2 -4/+15
fix: Fix missing handling for AbortSignal in inference client Mohamed Bassem 1 -28/+53
fix: Abort all IO when workers timeout instead of detaching. Fixes #742 Mohamed Bassem 10 -119/+232
deps: Upgrade typescript to 5.7 Mohamed Bassem 13 -445/+336
i18n: Fix spanish language code. Fixes #925 Mohamed Bassem 1 -1/+1
feat: Change webhooks to be configurable by users Mohamed Bassem 23 -28/+4272
feat(webhook): Implement webhook functionality for bookmark events (#852)
* feat(webhook): Implement webhook functionality for bookmark events
- Added WebhookWorker to handle webhook requests.
- Integrated webhook triggering in crawlerWorker after video processing.
- Updated main worker initialization to include WebhookWorker.
- Enhanced configuration to support webhook URLs, token, and timeout.
- Documented webhook configuration options in the documentation.
- Introduced zWebhookRequestSchema for validating webhook requests.
* feat(webhook): Update webhook handling and configuration
- Changed webhook operation type from "create" to "crawled" in crawlerWorker and documentation.
- Enhanced webhook retry logic in WebhookWorker to support multiple attempts.
- Updated Docker configuration to include new webhook environment variables.
- Improved validation for webhook configuration in shared config.
- Adjusted zWebhookRequestSchema to reflect the new operation type.
- Updated documentation to clarify webhook configuration options and usage.
* minor modifications
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
玄猫 6 -11/+237
fix: Limit concurrency of bulk actions. Fix #773 Mohamed Bassem 5 -30/+285
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
refactor: Implement file streaming for asset route. Fixes #818 Mohamed Bassem (aider) 2 -23/+71
i18n: Enable the new translated languages Mohamed Bassem 1 -4/+11
feat: Expose the search functionality in the REST API Mohamed Bassem 8 -20/+299
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
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
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
i18n: Added Croatian translation (#788)
* Added Croatian translation
* Update translation.json
Jaksa101 2 -0/+268
feat: Add support for embeddings in the inference interface (#403)
* support embeddings generation in inference.ts
(cherry picked from commit 9ae8773ad13ed87af8f72f167bdd56e02ea66f15)
* make AI worker generate embeddings for text bookmark
* make AI worker generate embeddings for text bookmark
* fix unintentional change -- inference image model
* support embeddings for PDF bookmarks
* Upgrade drizzle-kit
Existing version is not working with the upgraded version of drizzle-orm.
I removed the "driver" to the match the new schema of the Config.
Quoting from their Config:
* `driver` - optional param that is responsible for explicitly providing a driver to use when accessing a database
 * *Possible values*: `aws-data-api`, `d1-http`, `expo`, `turso`, `pglite`
 * If you don't use AWS Data API, D1, Turso or Expo - ypu don't need this driver. You can check a driver strategy choice here: https://orm.
* fix formatting and lint
* add comments about truncate content
* Revert "Upgrade drizzle-kit"
This reverts commit 08a02c8df4ea403de65986ed1265940c6c994a20.
* revert keep alive field in Ollama
* change the interface to accept multiple inputs
* docs
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
Mohammed Farghal 3 -11/+48
fix: Coerce createdAt in the bookmark create/update APIs Mohamed Bassem 2 -4/+6
i18n: Added Turkish translation (#781) Buğra Canata 2 -0/+267
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
i18n: Enable polish translations Mohamed Bassem 3 -157/+158
i18n: Enable the Swedish translation Mohamed Bassem 1 -0/+1
fix: Instruct the model to only respond with the summary when summarizing… Mohamed Bassem 1 -1/+1
i18n: Add zh-TW Traditional Chinese locale (#689) Peter Dave Hello 2 -1/+208
fix(workers): Don't block connection to chrome when failing to download adblock… Mohamed Bassem 5 -117/+120
fix: Fix homepage not loading when hitting adding invalid URL during crawling.… Mohamed Bassem 2 -9/+6
feature: Allow setting bookmark metadata during creation Mohamed Bassem 4 -133/+120
docs: fix typo in inference.ts (#640)
successfull -> successful
Ikko Eltociear Ashimine 1 -1/+1
translations: Add german, french and chinese LLM translations Mohamed Bassem 5 -2/+622
feature: Add i18n support. Fixes #57 (#635)
* feature(web): Add basic scaffolding for i18n
* refactor: Switch most of the app's strings to use i18n strings
* fix: Remove unused i18next-resources-for-ts command
* Add user setting
* More translations
* Drop the german translation for now
Mohamed Bassem 56 -281/+929
fix: Increase max prompt length to 500 chars instead of 100 Mohamed Bassem 1 -1/+1
fix: Feed refreshes were not getting re-enqueued for failed jobs Mohamed Bassem 4 -9/+15
feature: Schedule RSS feed refreshes every hour Mohamed Bassem 5 -11/+66
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
fix: Fix type in the separate container env variable Mohamed Bassem 2 -4/+4
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
deps: Extract the queue implementation into its own repos Mohamed Bassem 23 -1336/+65
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
refactor: Move inference to the shared package Mohamed Bassem 6 -165/+166
docker: Add a flag to detect apps running in legacy container setup Mohamed Bassem 2 -0/+6
feature: Add OCR support for images. Fixes #296 Mohamed Bassem 8 -2/+139
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
featue: Add infra for REST APIs and implement GET /bookmarks Mohamed Bassem 6 -1/+215
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: Allow importing hoarder's own bookmark file. Fixes #527 MohamedBassem 5 -46/+122
feature: Allow customizing the inference's context length MohamedBassem 9 -36/+51
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
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): 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 the ability to customize the inference prompts. Fixes #170 MohamedBassem 13 -39/+1764
feature(web): Show attachments and allow users to manipulate them. MohamedBassem 9 -12/+544
feature(web): Preserve title, tags and createdAt when importing a netscape… MohamedBassem 7 -45/+189
refactor: Extract useUpload into its own reusable hook MohamedBassem 3 -20/+44
feature: Added support for custom OIDC providers to set up authentication.…
* https://github.com/hoarder-app/hoarder/issues/92
Added support for custom OIDC providers to set up authentication
* Added support for custom OIDC providers to set up authentication #92
Showing OAuth errors in the signin page
* Added support for custom OIDC providers to set up authentication #92
Added the possibility to log in using an API key in case OAuth is used
* Added support for custom OIDC providers to set up authentication #92
improved the code to also promote the first user to admin if OAuth is used
* revert extension changes
* Simplify admin checks
---------
Co-authored-by: MohamedBassem <me@mbassem.com>
kamtschatka 4 -11/+133
feature(worker): Allow configuring inference job timeout and ollama keep alive.… MohamedBassem 4 -19/+26
feat: Upgrade default openai models to gpt-4o-mini which are 3x cheaper MohamedBassem 3 -6/+6
fix: async/await issues with the new queue (#319) kamtschatka 6 -25/+27
next