aboutsummaryrefslogtreecommitdiffstats
path: root/packages (follow)
Commit message (Collapse)AuthorAgeFilesLines
* feat(ai): Support restricting AI tags to a subset of existing tags (#2444)Mohamed Bassem10 days13-9/+3287
| | | | | * feat(ai): Support restricting AI tags to a subset of existing tags Co-authored-by: Claude <noreply@anthropic.com>
* feat: Added Import for Instapaper (#2434)Daniel Wieser10 days1-1/+63
| | | | | * Added Instapaper import * Fixes #1444 Added Instapaper import support
* fix: correctly sum low pri and normal crawl queue sizeMohamed Bassem11 days2-4/+11
|
* feat: add source filter to query language (#2465)Mohamed Bassem11 days4-3/+83
| | | | | | | | | | | * feat: add source filter to query language Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * autocomplete source --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* fix: treat bookmark not found as a no-op in rule engine instead of a failure ↵Mohamed Bassem11 days2-13/+15
| | | | | | | | | | | (#2464) When a bookmark is deleted before the rule engine worker processes its event, the worker would throw an error, triggering failure metrics, error logging, and retries. This changes both the worker and RuleEngine.forBookmark to gracefully skip processing with an info log instead. Co-authored-by: Claude <noreply@anthropic.com>
* feat: Add separate queue for import link crawling (#2452)Mohamed Bassem11 days2-1/+19
| | | | | | | * feat: add separate queue for import link crawling --------- Co-authored-by: Claude <noreply@anthropic.com>
* fix: lower the priority of recrawlingMohamed Bassem11 days3-9/+20
|
* feat(db): add OpenTelemetry instrumentation for database queriesClaude11 days4-0/+75
| | | | | | | | | Instruments the better-sqlite3 driver so that every prepared statement execution (run/get/all) produces an OTel span with db.system, db.statement, and db.operation attributes. The instrumentation is a no-op when no TracerProvider is registered (i.e. tracing is disabled). https://claude.ai/code/session_01JZut7LqeHPUKAFbFLfVP8F
* feat: add extra instrumentation in the otel traces (#2453)Mohamed Bassem2026-02-042-5/+52
|
* fix: lower priority of mass admin actionsMohamedBassem2026-02-041-12/+33
|
* fix: backfill old sessions and do queue backpressure (#2449)Mohamed Bassem2026-02-042-1/+64
| | | | | * fix: backfill old sessions and do queue backpressure * fix typo
* feat: Import workflow v3 (#2378)Mohamed Bassem2026-02-0416-377/+7578
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-012-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | * 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-014-13/+205
| | | | | * feat: batch meilisearch requests * more fixes
* fix(web): don't bundle tiktoken in client bundlesMohamed Bassem2026-02-013-81/+90
|
* feat: add support for redirectUrl after signup (#2439)Mohamed Bassem2026-02-016-7/+153
| | | | | | | | | | | * feat: add support for redirectUrl after signup * pr review * more fixes * format * another fix
* refactor: migrate trpc to the new react query integration mode (#2438)Mohamed Bassem2026-02-0115-414/+634
| | | | | | | | | * refactor: migrate trpc to the new react query integration mode * more fixes * more migrations * upgrade trpc client
* chore: add an endpoint for propagating client configs to the mobile appMohamed Bassem2026-02-013-0/+41
|
* refactor: lazy init background queuesMohamed Bassem2026-02-014-48/+105
|
* fix: use user's preferred language for manual summarization (#2429)Mohamed Bassem2026-01-281-1/+9
|
* feat(search): add tag: alias for # and ! alias for negation (#2425)Mohamed Bassem2026-01-262-3/+142
| | | | | | | | Add `tag:` as an alternative syntax to `#` for tag search queries, and `!` as an alternative to `-` for negating qualifiers. This provides more intuitive syntax options for users who prefer text-based qualifiers over special characters. Co-authored-by: Claude <noreply@anthropic.com>
* feat: disable karakeep 2025 wrappedMohamed Bassem2026-01-191-0/+8
|
* feat: Add attachedBy field to update tags endpoint (#2281)Mohamed Bassem2026-01-185-13/+198
| | | | | | | | | | | | | | | | | | | | | | * feat: Add attachedBy field to updateTags endpoint This change allows callers to specify the attachedBy field when updating tags on a bookmark. The field defaults to "human" if not provided, maintaining backward compatibility with existing code. Changes: - Added attachedBy field to zManipulatedTagSchema with default "human" - Updated updateTags endpoint to use the specified attachedBy value - Created mapping logic to correctly assign attachedBy to each tag * fix(cli): migrate bookmark source in migration command * fix * reduce queries --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat: track api key usage datesMohamed Bassem2026-01-186-1/+3049
|
* feat(rules): add "Title Contains" condition to Rule Engine (#1670) (#2354)Andrii Mokhovyk2026-01-183-0/+75
| | | | | | | | * feat(rules): add "Title Contains" condition to Rule Engine (#1670) * feat(rules): hide title conditions for bookmark created trigger * fix typecheck
* deps: upgrade react to 19.2.1Mohamed Bassem2026-01-151-1/+1
|
* feat: privacy-respecting bookmark debugger admin tool (#2373)Mohamed Bassem2026-01-114-15/+592
| | | | | | | | | | | | | * 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: depri mass admin actionsMohamed Bassem2026-01-101-10/+31
|
* fix: harden the restate implementation (#2370)Mohamed Bassem2026-01-108-211/+611
| | | | | | | | | | | | | | | | | | | * fix: parallelize queue enqueues in bookmark routes * fix: guard meilisearch client init with mutex * fix: fix propagation of last error in restate * fix: don't fail invocations when the job fails * fix: add a timeout around the worker runner logic * fix: add leases to handle dangling semaphores * feat: separate dispatchers and runners * add a test * fix silent promise failure
* fix: fix propagation of last error in restateMohamed Bassem2026-01-101-0/+1
|
* fix: guard meilisearch client init with mutexMohamed Bassem2026-01-101-0/+12
|
* fix: parallelize queue enqueues in bookmark routesMohamed Bassem2026-01-101-35/+42
|
* feat: add openai service tier configuration option (#2339)Robert Rosca2026-01-032-0/+10
|
* feat: Add retry buttons for pending bookmarks in admin panel (#2341)Mohamed Bassem2026-01-031-2/+2
|
* fix: drop idProvider from restate hot pathMohamed Bassem2026-01-031-2/+1
|
* fix: Eliminate the O(n2) parsing of the netscape import parsing (#2338)Mohamed Bassem2026-01-032-34/+351
| | | | | * fix: Eliminate the O(n2) parsing of the netscape import parsing * remove unneeded tests
* release(cli,sdk): release cli and sdk v0.30Mohamed Bassem2026-01-012-4/+14
|
* fix: fix wrapped feature to only show bookmarks in 2025Mohamed Bassem2026-01-011-1/+11
|
* fix: don't switch the bookmark back to pending on recrawlMohamed Bassem2026-01-011-7/+0
|
* fix: use the Ollama generate endpoint instead of chat (#2324)Erik Tews2026-01-011-5/+4
| | | | | | | | | * Use the Ollama generate endpoint instead of chat Ollama has two API endpoints for text generation. There is a chat endpoint for interactive and interactive chat like generation of text and there is a generate endpoint that is used one one-shot prompts, such as summarization tasks and similar things. Karakeep used the chat endpoint that resulted in odd summaries. This commit makes karakeep use the generate endpoint instead, which results in better and more compact summaries. * format
* feat: add "URL Does Not Contain" condition to rule engine (#2280)Mohamed Bassem2025-12-303-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: add "URL Does Not Contain" condition to rule engine Add a new condition type `urlDoesNotContain` that allows users to create rules based on URLs that do NOT contain specific strings. This enables more flexible rule configurations, such as: - Automatically adding bookmarks to a "Read Later" list if the URL does not contain "reddit.com" or "youtube.com" Changes: - Added `urlDoesNotContain` condition type to Zod schema - Implemented evaluation logic in RuleEngine - Added UI support in ConditionBuilder component - Added translation key for new condition type - Added test coverage for the new condition Fixes #2259 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Mohamed Bassem <MohamedBassem@users.noreply.github.com> * fix type link --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com>
* feat: 2025 wrapped (#2322)Mohamed Bassem2025-12-303-1/+382
| | | | | * feat: 2025 wrapped * don't add wrapped for new users
* ci: fix testsMohamed Bassem2025-12-301-1/+1
|
* feat: change default for tag style to be title case with spacesMohamed Bassem2025-12-304-1/+3030
|
* fix: more tagging tweaksMohamed Bassem2025-12-291-4/+3
|
* fix: change prompt to better recognize error pagesMohamed Bassem2025-12-291-3/+6
|
* refactor: reduce duplication in compare-models toolMohamed Bassem2025-12-291-28/+79
|
* chore: add tracing for email functionsMohamed Bassem2025-12-291-124/+118
|
* feat: Add open telemetry (#2318)Mohamed Bassem2025-12-298-3/+376
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: add OpenTelemetry tracing infrastructure Introduce distributed tracing capabilities using OpenTelemetry: - Add @opentelemetry packages to shared-server for tracing - Create tracing utility module with span helpers (withSpan, addSpanEvent, etc.) - Add tRPC middleware for automatic span creation on API calls - Initialize tracing in API and workers entry points - Add demo instrumentation to bookmark creation and crawler worker - Add configuration options (OTEL_TRACING_ENABLED, OTEL_EXPORTER_OTLP_ENDPOINT, etc.) - Document tracing configuration in environment variables docs When enabled, traces are collected for tRPC calls, bookmark creation flow, and crawler operations, with support for any OTLP-compatible backend (Jaeger, Tempo, etc.) * refactor: remove tracing from workers for now Keep tracing infrastructure but remove worker instrumentation: - Remove tracing initialization from workers entry point - Remove tracing instrumentation from crawler worker - Fix formatting in tracing files The tracing infrastructure remains available for future use. * add hono and next tracing * remove extra span logging * more fixes * update config * some fixes * upgrade packages * remove unneeded packages --------- Co-authored-by: Claude <noreply@anthropic.com>
* fix: reset tagging status on crawl failure (#2316)Mohamed Bassem2025-12-297-3/+3057
| | | | | | | * feat: add the ability to specify a different changelog version * fix: reset tagging status on crawl failure * fix missing crawlStatus in loadMulti