• v0.31.0 ba3db953c0

    v0.31.0 Stable

    kerem released this 2026-02-22 14:20:11 +03:00 | 169 commits to main since this release

    📅 Originally published on GitHub: Sun, 22 Feb 2026 11:49:08 GMT
    🏷️ Git tag created: Sun, 22 Feb 2026 11:20:11 GMT

    0.31.0

    Welcome to the 0.31.0 release of Karakeep! This release brings synchronized reading progress, LLM-based OCR, a revamped import pipeline, drag-and-drop for lists, highlights on mobile, a lot of mobile polish, and fixes for some long standing bugs. Huge thanks to our contributors for this release @esimkowitz, @WieserDaniel, @chen-ye, @SnowSquire, @mokhovyk, @evan6seven, @ElectricTea, @RobertRosca, @sweepies, @usr3 and everyone who shipped code, triaged bugs, or shared feedback for this release.

    If you enjoy using Karakeep, consider supporting the project here or via GitHub here.

    Buy Me A Coffee

    And in case you missed it, we now have a ☁️ managed offering ☁️ for those who don't want to self-host. You can signup here 🎉.

    New Features 🚀

    • Synchronized reading progress across all your devices (#2302). By @esimkowitz!
      • Your reading position is now saved and synced, so you can pick up right where you left off on any device.
    • LLM-based OCR as an alternative to Tesseract (#2442)
      • You can now use your configured LLM for OCR instead of Tesseract, which produces significantly better results for image and asset bookmarks.
    • Revamped Import pipeline (#2378)
      • The import experience got another big overhaul: a new import details page (#2451), a dedicated low-priority queue for import crawling (#2452), better progress tracking, ability to pause an import and more resilient error handling.
    • Drag-and-drop bookmarks into lists (#2469)
    • Highlights support on mobile (#2494)
      • You can now view and create highlights in the mobile app's reader view.
    • AI tag suggestions: instructs the model to limit auto-tagging to a subset of your existing tags for more consistent results (#2444).
    • Export lists in backups and exports (#2484)
      • Automated backups and full exports now include your lists.
    • Others:
      • Retry buttons for dangling (aka pending) bookmarks in the admin panel (#2341).
      • Add signup support to the mobile app.
      • OpenAI service tier configuration via OPENAI_SERVICE_TIER (#2339). By @RobertRosca!
      • Import from Instapaper (#2434). By @WieserDaniel!
      • Privacy-respecting bookmark debugger admin tool (#2373)
      • MCP server now supports custom configurable HTTP headers (#2436). By @chen-ye!
      • New search qualifiers:
        • source: filter to search by bookmark source (mobile, extension, web, etc.) (#2465).
        • tag: alias for # and ! alias for negation (#2425).
        • New "Title Contains" condition in the Rule Engine (#2354). By @mokhovyk!

    UX Improvements

    • Mobile app overhaul:
      • Native tabs and more native-feeling screens.
      • Animated UI feedback in the sharing modal (#2427).
      • Show bookmark count in the all lists view.
    • Better looking content fetching loading state in the bookmark preview.
    • Two-phase metadata updates so bookmarks show up faster while crawling is still in progress (#2467).
    • Links to apps, extensions and docs in the profile dropdown.
    • Extension autofocuses on note field on open (#2366). By @SnowSquire!
    • Improving the visual consistency of the settings page.
    • Opt-in OAuth auto-redirect for single-provider passwordless setups (#2483)
    • Add a download button for assets in the bookmark options menu.
    • API keys now show their last-used dates to better identify unused keys.
    • Fix masonry overflow in bookmark grids (#2400). By @evan6seven!
    • Hide confusing No suggestions message when no search suggestions are available.

    Fixes 🔧

    • [Security] Sanitize reddit's crawling output to prevent stored XSS. This was reported by @ByamB4 and published as a github advisory (GHSA-mg93-f9mw-wpgj).
    • Eliminated O(n²) parsing of Netscape bookmark imports (#2338).
    • Smart lists can now be used in search qualifiers and in other smart list queries (#2470)
    • Parallelize content extraction in the crawler worker for faster crawling.
    • Batch meilisearch indexing requests for better performance (#2441).
    • Auto dismiss dialogs during crawling that might have caused worker crashes before.
    • Use user's preferred language for manual summarization (#2429).
    • Accept more permissive RSS feed content types (#2353). By @ElectricTea!
    • Fix clipping of reader view in smaller screens.
    • Fix overscrolling in some setting pages (e.g. AI settings).
    • Stop theme flashes with Cloudflare Rocket Loader (#2340). By @sweepies!
    • Retry 403, 429 and 5XX status codes from the crawler.
    • Lower priority of recrawling and mass admin actions to avoid starving interactive traffic.
    • Fix scrolling in manage lists/edit tags when inside a dialog (#2258).
    • Respect archived display behavior setting in mobile lists and tags (#2499).
    • Fix flicker on closing bookmark preview on search page.
    • Share PDFs from the mobile app as files instead of links.
    • Fix high CPU usage of browser container after large imports due to leaking contexts. (#2503)
    • Reader settings preview in the mobile app now matches reader view formatting (#2365). By @esimkowitz!
    • When saving an image or a link from a page using "Add to Karakeep" menu item, the title of the original page is no longer incorrectly used for that link.

    For Developers 🛠️

    • Docker images moved from Alpine to Debian.
    • OpenTelemetry instrumentation for database queries and extra tracing in OTEL traces (#2453).
    • Prometheus metric for bookmark crawl latency (#2461).
    • New checkUrl API endpoint to check if a URL is already bookmarked.
    • attachedBy field in the update tags API endpoint to mark the tag as added by human or AI (#2281).
    • Upgraded to Expo SDK 54, React 19.2.1, and Node.js 24.
    • CLI can now search bookmarks (#2426).

    Screenshots 📸

    Reader Progress

    https://github.com/user-attachments/assets/86b259f6-2ce7-493f-a02c-d883c76c901c

    Import Details

    https://github.com/user-attachments/assets/b37c91a5-b74a-4de5-94d3-f25c346cae7b

    Upgrading 📦

    To upgrade:

    • If you're using KARAKEEP_VERSION=release, run docker compose pull && docker compose up -d.
    • If you're pinning it to a specific version, bump the version and then run docker compose pull && docker compose up -d.

    All Commits

    • fix(workers): sanitize reddits metascraper output - @MohamedBassem in ba3db95
    • fix(i18n): update en_US translation strings - @MohamedBassem in 52c1e9f0
    • i18n: Sync weblate translations - Weblate in f7ae922c
    • fix(workers): mitigate leaking browser contexts and setup and auto reaper (#2503) - @MohamedBassem in 627faf51
    • fix(web): avoid flicker on closing bookmark preview on search page - @MohamedBassem in ec0aaad0
    • fix(mobile): respect archiveDisplayBehaviour setting in lists and tags (#2499) - @MohamedBassem in 59a25607
    • fix(web): fix scrolling in manage lists/edit tags when inside a dialog. fixes #2258 - @MohamedBassem in e37d7286
    • fix(mobile): remove the use of custom safe areas - @MohamedBassem in ef0b50be
    • fix(mobile): remove smart lists from manage_lists page - @MohamedBassem in 7124d15b
    • docs: correct breaking typo in 05-singlefile.md doc (#2496) - @brandongalbraith in 0e3bc6f1
    • fix(mobile): fix formsheets on android - @MohamedBassem in 228eb208
    • fix(ui): fix the colors of buttons in the settings page - @MohamedBassem in 3d6c83d5
    • fix(ui): Improve visual consistency in all settings page - @MohamedBassem in e02a4c5e
    • feat: add checkUrl endpoint to replace searchBookmarks for URL existence checks - @MohamedBassem in b2492735
    • fix: auto dismiss dialogs during crawling - @MohamedBassem in 23ae17fa
    • deps: fix mismatch in @types/react across packages - @MohamedBassem in 6f78d2f8
    • deps: upgrade playwright to 1.58.2 - @MohamedBassem in 07cc3eff
    • fix(restate): call onError on rpc failures - @MohamedBassem in 4fd0eaf0
    • fix(mobile): drop the use of custom safe areas in bookmark lists - @MohamedBassem in 447d2cc8
    • fix(mobile): fix headers in android app - @MohamedBassem in 349fe05e
    • fix: parallelize content extraction in crawler worker - @MohamedBassem in 74c34529
    • fix(ux): hide autocomplete dropdown when there are no suggestions - @MohamedBassem in c6417d8e
    • docs: Add Cloudflare Workers AI provider (#2486) - @usr3 in 5946ce8f
    • feat: add synchronized reading progress for bookmarks (#2302) - @esimkowitz in fff0a280
    • feat(mobile): Add highlights support for the mobile app (#2494) - @MohamedBassem in 459ee50e
    • fix: dont trigger background jobs if bookmark doesn't change on updateTags call - @MohamedBassem in fbc63b92
    • fix(import): truncate title to max length in import worker - @MohamedBassem in 74b174ad
    • feat(crawler): retrun 403, 429 and 5XX status codes - @MohamedBassem in 1c5c8ec6
    • fix(web): fix clipping of reader view in smaller screens - @MohamedBassem in 41d2f0d7
    • fix(web): fix double scrolling in sidebar layout - @MohamedBassem in a8e8ce98
    • feat(ui): Add a better content fetching loading state in the bookmark preview - @MohamedBassem in be090270
    • feat: add a download button to the More submenu in bookmark options - @MohamedBassem in 2c57aa87
    • feat: add OAuth auto-redirect functionality (#2483) - @MohamedBassem in 33b91e3f
    • feat: export lists in backups and exports (#2484) - @MohamedBassem in 0c458ba1
    • feat(workers): extract html parsing into a subprocess (#2485) - @MohamedBassem in 7a100672
    • feat(mobile): make the bookmark edit UIs look more native - @MohamedBassem in ec7ef00f
    • fix: share PDFs as files instead of links in mobile app - @MohamedBassem in 0fab1aa6
    • feat: link to apps and extensions, docs and twitter in profile dropdown - @MohamedBassem in d72788ff
    • fix: dedup list and recent search suggestions - @MohamedBassem in 8539c836
    • fix: Support nested smart lists with cycle detection (#2470) - @MohamedBassem in b3d3602d
    • feat(mobile): Add animated UI feedback to sharing modal (#2427) - @MohamedBassem in b41b5647
    • feat(mobile): more native screens - @MohamedBassem in e455e468
    • feat(ai): Support restricting AI tags to a subset of existing tags (#2444) - @MohamedBassem in 4186c4c6
    • feat(mcp): Support custom configurable HTTP headers (#2436) - @chen-ye in 77b186c3
    • feat: Added Import for Instapaper (#2434) - @WieserDaniel in fbe7e3a9
    • feat: Add drag-and-drop support for bookmarks to lists (#2469) - @MohamedBassem in 485e9948
    • feat(crawler): Split bookmark metadata updates into two phases for faster feedback (#2467) - @MohamedBassem in c8464e30
    • feat: add source filter to query language (#2465) - @MohamedBassem in b05a7531
    • fix: treat bookmark not found as a no-op in rule engine instead of a failure (#2464) - @MohamedBassem in 960ca9b6
    • fix(extension): dont store tab title when saving links or images. fixes #2462 - @MohamedBassem in 1a01f75d
    • feat: Add separate queue for import link crawling (#2452) - @MohamedBassem in bbd65fd6
    • fix: lower the priority of recrawling - @MohamedBassem in 7d53e2e4
    • feat(metrics): add prometheus metric for bookmark crawl latency (#2461) - @MohamedBassem in b2640803
    • feat(db): add OpenTelemetry instrumentation for database queries - @MohamedBassem in 9e5693c6
    • feat(import): new import details page (#2451) - @MohamedBassem in e59fd98b
    • feat: add extra instrumentation in the otel traces (#2453) - @MohamedBassem in 538035c4
    • fix(import): sanitize error messages to prevent backend detail leakage (#2455) - @MohamedBassem in 93ad2e20
    • fix(import): propagate crawling/tagging failure to import status - @MohamedBassem in 50320ecd
    • fix: backfill old sessions and do queue backpressure (#2449) - @MohamedBassem in e8e48a41
    • feat: Import workflow v3 (#2378) - @MohamedBassem in 3c838ddb
    • feat: Add LLM-based OCR as alternative to Tesseract (#2442) - @MohamedBassem in 3fcccb85
    • feat: batch meilisearch requests (#2441) - @MohamedBassem in 54243b8c
    • fix(mobile): migrate from RN image to expo-image - @MohamedBassem in e8618800
    • feat(mobile): use native tabs for mobile - @MohamedBassem in bf5c99cb
    • feat(mobile): add signup support to the mobile app - @MohamedBassem in 5cb73069
    • fix: better looking error message when article content is unavailable - @MohamedBassem in 67501ed6
    • refactor: migrate trpc to the new react query integration mode (#2438) - @MohamedBassem in 65f6e83f
    • feat(mobile): show num bookmarks in the all lists view - @MohamedBassem in 4bc1b90f
    • fix: use user's preferred language for manual summarization (#2429) - @MohamedBassem in 95bfa569
    • feat(cli): Add bookmark search command (#2426) - @MohamedBassem in 42cdc937
    • feat(search): add tag: alias for # and ! alias for negation (#2425) - @MohamedBassem in 5656e394
    • feat(extension): autofocus on note open (#2366) - @SnowSquire in bf2c6ded
    • feat: Add attachedBy field to update tags endpoint (#2281) - @MohamedBassem in e09061bd
    • docker: add USE_JEMALLOC env var and disable it by default - @MohamedBassem in edf3f681
    • docker: switch to jemalloc - @MohamedBassem in 6535a5a2
    • docker: move from alpine to debian - @MohamedBassem in b0036ef1
    • feat: track api key usage dates - @MohamedBassem in 7b5f6328
    • deps(mobile): upgrade to sdk 54 - @MohamedBassem in 6094d360
    • feat(rules): add "Title Contains" condition to Rule Engine (#1670) (#2354) - @mokhovyk in c56cf4e2
    • fix(mobile): Reader settings preview on mobile matches reader view formatting (#2365) - @esimkowitz in 1b98014d
    • fix(web): avoid masonry overflow in bookmark grids (#2400) - @evan6seven in 789188b5
    • deps: upgrade react to 19.2.1 - @MohamedBassem in 086b464d
    • fix(mobile): add custom headers to card banners. fixes #2342 - @MohamedBassem in b4dbc9ce
    • feat: privacy-respecting bookmark debugger admin tool (#2373) - @MohamedBassem in 0f9132b5
    • fix: Accept more permissive RSS feed content types and Fix User-Agent key (#2353) - @ElectricTea in 0e938c14
    • fix: harden the restate implementation (#2370) - @MohamedBassem in f48e98e1
    • fix: parallelize queue enqueues in bookmark routes - @MohamedBassem in 4ba1475d
    • feat: add openai service tier configuration option (#2339) - @RobertRosca in aa7a81e0
    • fix: stop theme flashes with cloudflare rocket loader (#2340) - @sweepies in 2a6fe6e6
    • feat: Add retry buttons for pending bookmarks in admin panel (#2341) - @MohamedBassem in e195f40b
    • fix: Eliminate the O(n2) parsing of the netscape import parsing (#2338) - @MohamedBassem in 6fe20639
    • feat(mobile): use react native sonner - @MohamedBassem in 016433d4
    Downloads
  • v0.30.0 d472a3a1c4

    v0.30.0 Stable

    kerem released this 2026-01-01 13:27:23 +03:00 | 313 commits to main since this release

    📅 Originally published on GitHub: Thu, 01 Jan 2026 10:50:45 GMT
    🏷️ Git tag created: Thu, 01 Jan 2026 10:27:23 GMT

    0.30.0 (New year release 🎁)

    Welcome to the 0.30.0 release of Karakeep and happy new year! This release comes with "2025 wrapped" (a bit late), PDF archives, new reader settings, avatars, reddit crawling improvements, and more! Huge thanks to our contributors for this release @esimkowitz, @Moondragon85, @rzxczxc, @colado, @Yeraze, @eriktews and everyone who shipped code, triaged bugs, or shared feedback for this release.

    If you enjoy using Karakeep, consider supporting the project here or via GitHub here.

    Buy Me A Coffee

    And in case you missed it, we now have a ☁️ managed offering ☁️ for those who don't want to self-host. We're in public beta now and you can signup here 🎉.

    New Features 🚀

    • 2025 Wrapped is here to celebrate your year in Karakeep (#2322).
    • PDF archives
      • Archive bookmarks as PDFs, generated automatically during crawling or on-demand (#2309).
      • Set CRAWLER_STORE_PDF=true to enable auto PDF archiving.
    • Unified reader settings (font, size, etc) across all devices with per-device overrides (#2230). By @esimkowitz!
    • Better metadata extraction:
      • Reddit posts should now be crawled correctly, and banners should be fetched more reliably.
      • Fixed YouTube thumbnail and author extraction.
      • Fixed Amazon product image extraction (where it was sometimes showing the prime logo) (#2204, #2108). By @Yeraze
    • Upload custom user avatars for more personal profiles (#2296).
    • AI Setting customization:
      • Customize tag styling (case, separators, language) per user. It's highly recommended to set the tag style for more consistent tags (#2312).
      • Per-user toggles to disable auto-tagging and/or auto-summarization (#2275).
    • Others:
      • Import libraries from Matter with full export support (#2245). By @Moondragon85
      • Bulk remove bookmarks from lists (#2279).
      • Add a new rule condition to rule engine: "URL Does Not Contain" (#2280).
      • Configure an OpenAI proxy via OPENAI_PROXY_URL (#2231). By @rzxczxc
      • Added is:broken search qualifier to show links that failed crawling (#2225).
      • Edit list now in the mobile app (#2310). By @colado

    UX Improvements

    • Our docs got a facelift! The docs got some styling, the pages got re-organized and we now have a "Using Karakeep" section that explains some of the core concepts of Karakeep.
    • Replace bookmark banners and download attachments directly from the drop down menu (#2328).
    • Sidebar scrollbar looks cleaner, and pending list invites show as a badge in the sidebar.
    • Bookmark edit dialog now includes notes.
    • Bookmark owner avatars now show up in collaborative lists.
    • Mobile UI/UX improvements:
      • Fixed title on mobile to be at most 2 lines long.
      • Mobile settings screens should now feel more native (#2307).
      • OLED-friendly colors in the Android app matching the colors of the ios app (#1958).
      • Toasts on iOS now appear correctly above the open modals (#2320). By @colado
      • Shared lists now appear in a dedicated subsection on mobile.
      • Adding a bookmark to a list now shows a spinner during loading (#2283).
      • Server version now appears in mobile settings (#2276).
      • Fixed the confusing "tick button" beside the server address during login.

    Fixes 🔧

    • Fixed missing db indicies that was causing slow bookmark queries (#2246, #2287).
    • Improved Ollama summaries by using the generate endpoint (#2324). By @eriktews
    • Fixed HTML bookmark imports failing on empty folder names (#2300).
    • Fixed non-link bookmarks stuck in pending summarization (#1605).
    • Improved tagging prompts and error-page detection.
    • Reject spoofed content types on file uploads.
    • Preserve failure counts when rescheduling rate-limited domains (#2303).
    • Fixed duplicate backdrop buttons in reader view (#2234). By @colado
    • RSS feed fetching is now spread over the hour (#2227).
    • Asset preprocessing worker timeout is now configurable (91784cd2).
    • Fixed bypassing email verification in apiKey.exchange.
    • Added limits on number of rss feeds and webhooks per user configurable by admins.
    • Fixed a bug where failed crawling leave bookmarks as pending tagging in the admin dashboard.

    For Developers 🛠️

    • OpenTelemetry integration with OTLP exporter (#2318, #2321).
    • CLI can list users for admins.
    • We're now defaulting to Node.js 24 (the current LTS).
    • Breaking: In bookmark APIs includeContent now defaults to false. This change was announced a couple months ago, and is taking effect in this release.

    Community Projects 💡

    • Karakeep integration for Home Assistant (#2196) by @sli-cka. Get it from here.

    Screenshots 📸

    Wrapped 2025

    karakeep-wrapped-2025

    Reader Settings

    https://github.com/user-attachments/assets/4d81cb80-f9b8-43f2-998a-736f18e33038.

    AI Settings

    https://github.com/user-attachments/assets/48032bf6-5413-44ee-9c3b-ac7b385aeccf

    Upgrading 📦

    To upgrade:

    • If you're using KARAKEEP_VERSION=release, run docker compose pull && docker compose up -d.
    • If you're pinning it to a specific version, bump the version and then run docker compose pull && docker compose up -d.

    All Commits

    • i18n: fix en_US translation - @MohamedBassem in d472a3a1
    • fix: fix wrapped feature to only show bookmarks in 2025 - @MohamedBassem in 4077e286
    • i18n: Sync weblate translations - Weblate in 401ea6a9
    • chore: drop the experimental tag from the rule engine - @MohamedBassem in bf9d6105
    • fix: show a toast during banner upload - @MohamedBassem in 9555f409
    • fix: don't switch the bookmark back to pending on recrawl - @MohamedBassem in 79400d04
    • fix: use the Ollama generate endpoint instead of chat (#2324) - @eriktews in e8c79f29
    • feat: add replace banner and attachment download (#2328) - @MohamedBassem in 3d652eee
    • feat: Add bulk remove from list (#2279) - @MohamedBassem in 7a76216e
    • feat: add "URL Does Not Contain" condition to rule engine (#2280) - @MohamedBassem in b20ba9cf
    • feat: 2025 wrapped (#2322) - @MohamedBassem in a0b4a26a
    • chore: worker tracing (#2321) - @MohamedBassem in 7ab7db8e
    • feat(landing): add corporate pricing - @MohamedBassem in d852ee1a
    • fix(mobile): mobile modal UI issues (#2320) - @colado in a43d375f
    • ci: fix tests - @MohamedBassem in 9d6b1282
    • feat: change default for tag style to be title case with spaces - @MohamedBassem in 9098a5a6
    • fix: more tagging tweaks - @MohamedBassem in c1cbaa8a
    • build: fix broken CI - @MohamedBassem in a5ce977d
    • fix: change prompt to better recognize error pages - @MohamedBassem in f5a5c14e
    • refactor: reduce duplication in compare-models tool - @MohamedBassem in f00287ed
    • chore: add tracing for email functions - @MohamedBassem in ba8d84a5
    • feat(mobile): create new list edit screen (#2310) - @colado in 30fa06fe
    • feat: Add open telemetry (#2318) - @MohamedBassem in 5537fe85
    • fix: reset tagging status on crawl failure (#2316) - @MohamedBassem in f7920bdc
    • feat: add the ability to specify a different changelog version - @MohamedBassem in 10820761
    • fix: remove duplicate mobile backdrop button in reader view (#2234) - @esimkowitz in 3f44e319
    • fix(landing): fix cloud banner on mobile - @MohamedBassem in 23f28530
    • refactor: add suspense boundary in sidebar layout - @MohamedBassem in 3c3d8685
    • feat(mobile): make the settings menu look more native (#2307) - @MohamedBassem in 6ee48ffb
    • feat(web): better looking scrollbar in the sidebar - @MohamedBassem in f7523a21
    • feat(mobile): use oled friendly colors for android app. fixes #1958 - @MohamedBassem in e800d744
    • refactor: migrate toasts to sonner - @MohamedBassem in 173fb99a
    • feat: add customizable tag styles (#2312) - @MohamedBassem in af3010ab
    • feat: add Matter import support (#2245) - @Moondragon85 in 93630ce8
    • feat: support archiving as pdf (#2309) - @MohamedBassem in 267db791
    • feat: add OPENAI_PROXY_URL configuration and support for proxy in OpenAI client (#2231) - @rzxczxc in bb6b742a
    • fix(tests): fix the asset upload tests - @MohamedBassem in e82694de
    • fix: reject spoofed content types on uploads - @MohamedBassem in 2dbdf76c
    • deps: upgrade tesseract to v7 - @MohamedBassem in 347793ad
    • feat(landing): announce cloud public beta in landing page - @MohamedBassem in c3b2326c
    • chore: add a tool for comparing perf of different models - @MohamedBassem in 1dfa5d12
    • feat: add notes to the bookmark edit dialog - @MohamedBassem in ecb7a710
    • fix(restate): change journal retention for services to 3d - @MohamedBassem in 0efffdcc
    • fix(cli): migrate bookmark source in migration command - @MohamedBassem in 65cfa871
    • fix: preserve failure count when rescheduling rate limited domains (#2303) - @MohamedBassem in ddd4b578
    • feat: show bookmark owner icon in shared lists (#2277) - @MohamedBassem in ef27670f
    • fix: make avatars public - @MohamedBassem in f7d34627
    • refactor: move assets to their own model (#2301) - @MohamedBassem in 013ca67c
    • feat: add support for user avatars (#2296) - @MohamedBassem in 314c363e
    • fix: handle empty folder names in HTML bookmark imports (#2300) - @MohamedBassem in 3408e6e4
    • feat: add a warning about viewing archives inline. fixes #2286 - @MohamedBassem in e336513f
    • fix(tests): fix the user setting tests - @MohamedBassem in 258bebe0
    • feat: Add user settings to disable auto tagging/summarization (#2275) - @MohamedBassem in 0bdba54b
    • feat(mobile): Convert server address editing to modal in mobile app (#2290) - @MohamedBassem in ece68ed0
    • fix: check quota usage instead bookmark transaction - @MohamedBassem in ca4bfa4c
    • fix: optimize tagging db queries (#2287) - @MohamedBassem in e18dc4c9
    • docs: shuffle some docs around - @MohamedBassem in 4762da12
    • docs: add RSS feeds integration documentation (#2288) - @MohamedBassem in 903aa5e9
    • feat(restate): Add a var to control whether to expose core services or not - @MohamedBassem in dc8ab862
    • feat: add more restate semaphore controls - @MohamedBassem in 58eb6c00
    • feat(mobile): Show shared lists under a subsection - @MohamedBassem in 837dea5e
    • fix(mobile): Fix title line clamp to 2 lines - @MohamedBassem in 15cfa137
    • fix(mobile): Add loading spinner to mobile list button (#2283) - @MohamedBassem in 7b98c52a
    • feat: add server version display to mobile app settings (#2276) - @MohamedBassem in bd969b34
    • fix: add authentication checks to settings layout (#2274) - @MohamedBassem in e53f3ae5
    • fix: only trigger search autocomplete on first search char - @MohamedBassem in 92e352f3
    • feat(landing): remove waitlist link. fixes #2270 - @MohamedBassem in e842c5a7
    • fix: don't fail the script if the user karakeep already exists. fixes #2242 - @MohamedBassem in e78e5129
    • fix: collapse reader settings by default - @MohamedBassem in 3955f91a
    • docs: Add icons beside category names - @MohamedBassem in 9021822a
    • Revert "fix: fix restate service to return control to restate service on timeout" - @MohamedBassem in 510174db
    • feat: Add unified reader settings with local overrides (#2230) - @esimkowitz in 7f4202af
    • fix: fix restate service to return control to restate service on timeout - @MohamedBassem in 6db14ac4
    • fix: non-link bookmarks where stuck in pending summarization. Fixes #1605 - @MohamedBassem in d7357118
    • fix: move trpc error logging inside the dev check - @MohamedBassem in 0b65e5a4
    • fix: Fix Amazon product image extraction on amazon.com URLs (#2108) - @Yeraze in b3196354
    • feat: use reddit API for metadata extraction. Fixes #1853 #1883 - @MohamedBassem in f5c32d94
    • fix: use GET requests for the content type request - @MohamedBassem in d6dd8ebd
    • docs: fix sidebar on mobile - @MohamedBassem in f111cba9
    • feat: Add limits on number of rss feeds and webhooks per user - @MohamedBassem in 74df8bd7
    • release(cli): Bump CLI version to 0.29.1 - @MohamedBassem in 697c853a
    • readme: some readme updates - @MohamedBassem in 1ebc721c
    • docs: Update screenshots in docs - @MohamedBassem in c6cf4188
    • docs: Adding user guides - @MohamedBassem in 04b9c291
    • docs: drop docs for old versions - @MohamedBassem in fecb0079
    • docs: restructure the docs - @MohamedBassem in af69f637
    • docs: restyle the docs - @MohamedBassem in b4344401
    • ci: run CI with node 24 - @MohamedBassem in 2bdba536
    • deps: Upgrade to nodejs 24 - @MohamedBassem in 480abce4
    • fix!: changing default for includeContent to be false in the API - @MohamedBassem in 1369ad01
    • deps: Upgrade nextjs to 15.3.8 - @MohamedBassem in 80278ecf
    • deps: Upgrade nextjs to 15.3.7 - @MohamedBassem in 74bdc186
    • fix: add more indicies for faster bookmark queries (#2246) - @MohamedBassem in 683083f4
    • feat: make asset preprocessing worker timeout configurable - @Claude in 91784cd2
    • fix: Add cache control header on asset endpoints - @MohamedBassem in 3e8cc745
    • chore: Allowing multi user benchmarks and adding more coverage - @MohamedBassem in 265b6773
    • feat(cli): Add ability to list users for the admin in the CLI - @MohamedBassem in 69a756aa
    • fix: fix correctly accounting for text bookmark in import sessions. #2208 - @MohamedBassem in 6886385c
    • fix: check import quota before importing bookmarks (#2232) - @MohamedBassem in 20d3761c
    • build: fix typecheck error in query explainer - @MohamedBassem in b6c2dadd
    • fix: migrate to metascraper-x from metascraper-twitter - @MohamedBassem in c6f93b3b
    • feat: add is:broken search qualifier for broken links (#2225) - @MohamedBassem in 1f43f232
    • feat: spread feed fetch scheduling deterministically over the hour (#2227) - @MohamedBassem in 13a090c4
    • fix: better extraction for youtube thumbnails. #2204 - @MohamedBassem in e3cc5463
    • fix: remove queue triggers outside of updateTags transaction - @MohamedBassem in cf2a12c8
    • chore: add benchmarks (#2229) - @MohamedBassem in 6180c662
    • build: dont update latest tags on release - @MohamedBassem in de98873a
    • deps: Upgrade nextjs to 15.3.6 - @MohamedBassem in 20081a3a
    • feat: add a notification badge for list invitations - @MohamedBassem in 3c6b8e97
    • docs: add karakeep integration for Home Assistant (#2196) - @sli-cka in 9a339385
    • fix: regen turnstile token on signup resubmission - @MohamedBassem in 9257b534
    • feat(landing): Add more features to the homepage - @MohamedBassem in 9a6d36f2
    • ci: run arm docker image builds on arm machines - @MohamedBassem in 3421246d
    • ci: parallelize the docker workflow for platforms - @MohamedBassem in 2e889617
    • fix: reenable idempotency key for search indexing - @MohamedBassem in 2ef751ef
    • fix: fix bypass email verification in apiKey.exchange - @MohamedBassem in e4f434e7
    • readme: add collaborative lists to the list of features - @MohamedBassem in d6d319d3
    • fix: Add restate queued idempotency (#2169) - @MohamedBassem in a71b9505
    • feat: add support for turnstile on signup - @MohamedBassem in b12c1c3a
    • build: fix npm trusted publishing - @MohamedBassem in 4898b6be
    • release: cli, mcp and sdk - @MohamedBassem in 28d6750e
    • release(extension): Release version 1.2.8 - @MohamedBassem in fdea0861
    • release(mobile): Bump mobile version to 1.8.3 - @MohamedBassem in 8da5b598
    • release(docs): release the 0.29 docs - @MohamedBassem in 97c386a4
    Downloads
  • v0.29.3 9cbf402c6f

    v0.29.3 Stable

    kerem released this 2025-12-12 12:10:14 +03:00 | 431 commits to main since this release

    📅 Originally published on GitHub: Fri, 12 Dec 2025 09:14:41 GMT
    🏷️ Git tag created: Fri, 12 Dec 2025 09:10:14 GMT

    Well. Upgrading Nextjs one more time to patch CVE-2025-67779.

    Downloads
  • v0.29.2 648a4f7985

    v0.29.2 Stable

    kerem released this 2025-12-12 01:59:10 +03:00 | 432 commits to main since this release

    📅 Originally published on GitHub: Thu, 11 Dec 2025 23:12:06 GMT
    🏷️ Git tag created: Thu, 11 Dec 2025 22:59:10 GMT

    Upgrading Nextjs to patch two new vulnerabilities in react CVE-2025-55184 & CVE-2025-55183. This is on top of the critical vulnerability (CVE-2025-66478) that was patched in 0.29.1.

    Downloads
  • v0.29.1 fc0f6b1ba4

    v0.29.1 Stable

    kerem released this 2025-12-03 19:52:54 +03:00 | 433 commits to main since this release

    📅 Originally published on GitHub: Wed, 03 Dec 2025 16:56:18 GMT
    🏷️ Git tag created: Wed, 03 Dec 2025 16:52:54 GMT

    0.29.1

    A patch release for 0.29.0 with the fix of NextJs CVE: CVE-2025-66478

    Downloads