aboutsummaryrefslogtreecommitdiffstats
path: root/apps (follow)
Commit message (Collapse)AuthorAgeFilesLines
* fix(import): sanitize error messages to prevent backend detail leakage (#2455)Mohamed Bassem13 days1-1/+26
| | | | | | | | | | | | | | | | | | The catch block in processOneBookmark was storing raw error strings via String(error) in the resultReason field, which is exposed to users through the getImportSessionResults tRPC route. This could leak internal details like database constraint errors, file paths, stack traces, or connection strings. Replace String(error) with getSafeErrorMessage() that only allows through: - TRPCError client errors (designed to be user-facing) - Known safe validation messages from the import worker - A generic fallback for all other errors The full error is still logged server-side for debugging. https://claude.ai/code/session_01F1NHE9dqio5LJ177vmSCvt Co-authored-by: Claude <noreply@anthropic.com>
* fix(import): skip counting pending items for paushed sessionsMohamedBassem13 days1-7/+16
|
* fix(import): register improt metrics to the prom registryMohamed Bassem13 days2-1/+9
|
* fix(import): propagate crawling/tagging failure to import statusMohamed Bassem13 days1-18/+50
|
* fix: extra logging for the import workerMohamed Bassem13 days1-13/+39
|
* fix: backfill old sessions and do queue backpressure (#2449)Mohamed Bassem13 days1-21/+54
| | | | | * fix: backfill old sessions and do queue backpressure * fix typo
* feat: Import workflow v3 (#2378)Mohamed Bassem13 days6-106/+722
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: import workflow v3 * batch stage * revert migration * cleanups * pr comments * move to models * add allowed workers * e2e tests * import list ids * add missing indicies * merge test * more fixes * add resume/pause to UI * fix ui states * fix tests * simplify progress tracking * remove backpressure * fix list imports * fix race on claiming bookmarks * remove the codex file
* feat: Add LLM-based OCR as alternative to Tesseract (#2442)Mohamed Bassem2026-02-011-9/+58
| | | | | | | | | | | | | | | | | | | | | | | | | * feat(ocr): add LLM-based OCR support alongside Tesseract Add support for using configured LLM inference providers (OpenAI or Ollama) for OCR text extraction from images as an alternative to Tesseract. Changes: - Add OCR_USE_LLM environment variable flag (default: false) - Add buildOCRPrompt function for LLM-based text extraction - Add readImageTextWithLLM function in asset preprocessing worker - Update extractAndSaveImageText to route between Tesseract and LLM OCR - Update documentation with the new configuration option When OCR_USE_LLM is enabled, the system uses the configured inference model to extract text from images. If no inference provider is configured, it falls back to Tesseract. https://claude.ai/code/session_01Y7h7kDAmqXKXEWDmWbVkDs * format --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat: batch meilisearch requests (#2441)Mohamed Bassem2026-02-011-7/+18
| | | | | * feat: batch meilisearch requests * more fixes
* fix(mobile): migrate from RN image to expo-imageMohamed Bassem2026-02-016-34/+55
|
* chore: replace dayjs with data-fnsMohamed Bassem2026-02-016-20/+10
|
* fix(web): don't bundle tiktoken in client bundlesMohamed Bassem2026-02-014-3/+10
|
* feat(mobile): use native tabs for mobileMohamed Bassem2026-02-014-90/+59
|
* fix(mobile): make the subtext in bookmark info page more subtleMohamed Bassem2026-02-011-3/+3
|
* feat(mobile): add signup support to the mobile appMohamed Bassem2026-02-011-1/+14
|
* feat: add support for redirectUrl after signup (#2439)Mohamed Bassem2026-02-014-14/+62
| | | | | | | | | | | * feat: add support for redirectUrl after signup * pr review * more fixes * format * another fix
* fix: better looking error message when article content is unavailableMohamed Bassem2026-02-012-1/+22
|
* fix(mobile): fix some mobile warning after expo 54 upgradeMohamed Bassem2026-02-0111-30/+50
|
* refactor: remove unused trpc files from web and mobileMohamed Bassem2026-02-0176-83/+102
|
* refactor: migrate trpc to the new react query integration mode (#2438)Mohamed Bassem2026-02-0196-1405/+1845
| | | | | | | | | * refactor: migrate trpc to the new react query integration mode * more fixes * more migrations * upgrade trpc client
* refactor: centralize auth imports through new client module (#2437)Mohamed Bassem2026-02-0115-15/+25
| | | | | | | | | | | | | | | * refactor(web): centralize next-auth client-side utilities Create lib/auth/client.ts to re-export all next-auth/react APIs (useSession, signIn, signOut, SessionProvider) from a single location. This prepares for future auth provider replacement by isolating the next-auth dependency. https://claude.ai/code/session_01RLLL6SquzmegG6wKHdT3Fm * format --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat(mobile): show num bookmarks in the all lists viewMohamed Bassem2026-02-011-4/+30
|
* fix(mobile): fix mobile list stylingMohamed Bassem2026-02-014-12/+12
|
* refactor: lazy init background queuesMohamed Bassem2026-02-011-10/+50
|
* feat(cli): Add bookmark search command (#2426)Mohamed Bassem2026-01-262-12/+88
| | | | | | | | | | | | | | | | | | | | | | * feat(cli): Add search subcommand to bookmarks Add a new search subcommand that uses the searchBookmarks API endpoint. The command supports: - Full-text search with advanced query matchers (tag:, is:, list:, etc.) - Pagination with --all flag to fetch all results - Sorting by relevance, ascending, or descending order - Optional full content inclusion with --include-content - Configurable result limit per page Example usage: bookmarks search "is:fav tag:important" bookmarks search "kotlin" --sort-order desc --limit 20 bookmarks search "title:api" --include-content --all * fixes + format --------- Co-authored-by: Claude <noreply@anthropic.com>
* fix(ui): Improve visual consistency in all lists and highlights pageMohamed Bassem2026-01-195-21/+29
|
* feat: disable karakeep 2025 wrappedMohamed Bassem2026-01-193-56/+3
|
* feat(extension): autofocus on note open (#2366)Snoww2026-01-191-0/+1
| | | * Autofocus on note open
* ux(mobile): align all lists in the all lists tabMohamed Bassem2026-01-181-19/+34
|
* feat: track api key usage datesMohamed Bassem2026-01-183-19/+29
|
* deps(mobile): upgrade to sdk 54Mohamed Bassem2026-01-184-514/+36
|
* feat(rules): add "Title Contains" condition to Rule Engine (#1670) (#2354)Andrii Mokhovyk2026-01-183-1/+58
| | | | | | | | * feat(rules): add "Title Contains" condition to Rule Engine (#1670) * feat(rules): hide title conditions for bookmark created trigger * fix typecheck
* fix(mobile): Reader settings preview on mobile matches reader view ↵Evan Simkowitz2026-01-182-16/+170
| | | | | | | formatting (#2365) * fix: Reader settings preview on mobile matches reader view formatting * address comments
* fix(web): avoid masonry overflow in bookmark grids (#2400)Evan Frenkel2026-01-183-5/+25
|
* deps: upgrade react to 19.2.1Mohamed Bassem2026-01-154-7/+7
|
* fix(mobile): add custom headers to card banners. fixes #2342Mohamed Bassem2026-01-111-6/+9
|
* feat: privacy-respecting bookmark debugger admin tool (#2373)Mohamed Bassem2026-01-115-3/+712
| | | | | | | | | | | | | * fix: parallelize queue enqueues in bookmark routes * fix: guard meilisearch client init with mutex * feat: add bookmark debugging admin tool * more fixes * more fixes * more fixes
* fix: Accept more permissive RSS feed content types and Fix User-Agent key ↵E.T.2026-01-111-2/+2
| | | | | | | | | | | | | | | (#2353) * Fix User-Agent key and accept more permissive content types Some feeds are Content-Type application/xml only and will respond with a 406 error to responses with a header of content type application/rss+xml. This change allows for the more permissive content types application/xml and text/xml to be accepted Also fixes UserAgent with correct User-Agent * Fix: Remote trailing whitespace in feedWorker.ts Fix formatting on HTTP Header for RSS Accceptable Content-Types introduced in commit 6896392 * format
* fix: stop theme flashes with cloudflare rocket loader (#2340)Sweepy2026-01-031-1/+5
|
* feat: Add retry buttons for pending bookmarks in admin panel (#2341)Mohamed Bassem2026-01-032-0/+31
|
* chore: add a note about hostname allowlists in the validation error messageMohamed Bassem2026-01-021-1/+1
|
* fix(mobile): fix the connection debug text areaMohamed Bassem2026-01-022-17/+14
|
* fix(mobile): fix save button in server-address screen on androidMohamed Bassem2026-01-021-8/+9
|
* feat(mobile): use react native sonnerMohamed Bassem2026-01-013-183/+38
|
* release(cli,sdk): release cli and sdk v0.30Mohamed Bassem2026-01-011-1/+1
|
* release(mobile): Bump mobile version to 1.8.4Mohamed Bassem2026-01-011-3/+3
|
* i18n: fix en_US translationMohamed Bassem2026-01-011-15/+15
|
* i18n: Sync weblate translationsHosted Weblate2026-01-0131-189/+2340
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: OpenAI <noreply-mt-openai@weblate.org> Co-authored-by: killallpie <killallpie@inbox.ru> Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/ar/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/cs/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/da/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/de/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/el/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/en_US/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/es/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/fa/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/fi/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/fr/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/ga/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/gl/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/hr/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/hu/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/it/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/ja/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/ko/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/nl/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/pl/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/pt/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/ru/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/sk/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/sl/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/sv/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/tr/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/uk/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/vi/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/karakeep/karakeep/zh_Hant/ Translation: Karakeep/Karakeep
* chore: drop the experimental tag from the rule engineMohamed Bassem2026-01-011-10/+1
|
* fix: show a toast during banner uploadMohamed Bassem2026-01-012-43/+30
|