aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web (follow)
Commit message (Collapse)AuthorAgeFilesLines
* feat(ai): Support restricting AI tags to a subset of existing tags (#2444)Mohamed Bassem2 days4-8/+218
| | | | | * 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 Wieser2 days2-0/+20
| | | | | * Added Instapaper import * Fixes #1444 Added Instapaper import support
* feat: Add drag-and-drop support for bookmarks to lists (#2469)Mohamed Bassem2 days5-111/+265
| | | | | * feat: add drag and drop bookmark cards into sidebar lists Co-authored-by: Claude <noreply@anthropic.com>
* feat: add source filter to query language (#2465)Mohamed Bassem3 days3-1/+70
| | | | | | | | | | | * 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>
* feat(import): new import details page (#2451)Mohamed Bassem7 days5-2/+666
| | | | | | | * feat(import): new import details page * fix typecheck * review comments
* feat: Import workflow v3 (#2378)Mohamed Bassem7 days4-105/+143
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* chore: replace dayjs with data-fnsMohamed Bassem10 days4-15/+7
|
* fix(web): don't bundle tiktoken in client bundlesMohamed Bassem10 days2-1/+7
|
* feat: add support for redirectUrl after signup (#2439)Mohamed Bassem10 days4-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 Bassem10 days2-1/+22
|
* refactor: remove unused trpc files from web and mobileMohamed Bassem10 days59-64/+82
|
* refactor: migrate trpc to the new react query integration mode (#2438)Mohamed Bassem10 days65-1179/+1513
| | | | | | | | | * 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 Bassem10 days15-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>
* 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: track api key usage datesMohamed Bassem2026-01-183-19/+29
|
* 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(web): avoid masonry overflow in bookmark grids (#2400)Evan Frenkel2026-01-183-5/+25
|
* deps: upgrade react to 19.2.1Mohamed Bassem2026-01-151-2/+2
|
* 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: 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
|
* 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
|
* feat: add replace banner and attachment download (#2328)Mohamed Bassem2026-01-013-16/+163
| | | | | | | | | * feat: add replace banner and attachment download * add pdf preview in mobile app * fix menu order * fix comment
* feat: Add bulk remove from list (#2279)Mohamed Bassem2025-12-304-2/+88
| | | | | | | | | | | | | | | | | | | | | | | * feat: Add bulk remove from list action in list context - Add "Remove from List" button in bulk actions menu - Only visible when in a manual list context with editor/owner role - Includes confirmation dialog before removal - Uses same concurrency pattern as bulk add (50 concurrent operations) - Displays success count in toast notification - Add translation key "actions.remove" for consistency This complements the existing bulk add to list functionality and allows users to efficiently remove multiple bookmarks from a list at once. * fmt * fix list context * add remove from list --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat: add "URL Does Not Contain" condition to rule engine (#2280)Mohamed Bassem2025-12-302-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-309-15/+690
| | | | | * feat: 2025 wrapped * don't add wrapped for new users
* feat: Add open telemetry (#2318)Mohamed Bassem2025-12-292-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* feat: add the ability to specify a different changelog versionMohamed Bassem2025-12-292-19/+42
|
* fix: remove duplicate mobile backdrop button in reader view (#2234)Evan Simkowitz2025-12-291-14/+0
|
* refactor: add suspense boundary in sidebar layoutMohamed Bassem2025-12-298-175/+297
|
* feat(web): better looking scrollbar in the sidebarMohamed Bassem2025-12-281-1/+1
|
* refactor: migrate toasts to sonnerMohamed Bassem2025-12-2865-288/+134
|
* feat: add customizable tag styles (#2312)Mohamed Bassem2025-12-276-124/+645
| | | | | | | | | | | | | | | * feat: add customizable tag styles * add tag lang setting * ui settings cleanup * fix migration * change look of the field * more fixes * fix tests
* feat: add Matter import support (#2245)Moondragon852025-12-2733-0/+49
| | | | | | | | | | | * Matter import * use zod * fix date parsing --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
* feat: support archiving as pdf (#2309)Mohamed Bassem2025-12-275-30/+154
| | | | | | | | | | | * feat: support archiving as pdf * add supprot for manually triggering pdf downloads * fix submenu * menu cleanup * fix store pdf
* feat: add notes to the bookmark edit dialogMohamed Bassem2025-12-251-0/+21
|
* feat: show bookmark owner icon in shared lists (#2277)Mohamed Bassem2025-12-245-46/+164
| | | | | | | | | | | | | | | | | | | | | | * feat: Add owner icon to bookmarks in shared lists Display a small icon showing the bookmark owner's name and email on hover when viewing bookmarks from other users in shared lists. The icon appears in the top-right corner of bookmark cards across all layout types (grid, list, compact). Changes: - Add user field to ZBookmark type to include owner name and email - Update bookmark queries to fetch user information via join - Create BookmarkOwnerIcon component with tooltip showing owner details - Integrate owner indicator into BookmarkLayoutAdaptingCard for all layouts - Only show icon for bookmarks not owned by current user * use icons in more places * remove tooltip providers * fix non list context --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat: add support for user avatars (#2296)Mohamed Bassem2025-12-2410-4/+297
| | | | | | | | | | | * feat: add support for user avatars * more fixes * more fixes * more fixes * more fixes
* feat: add a warning about viewing archives inline. fixes #2286Mohamed Bassem2025-12-223-1/+33
|
* feat: Add user settings to disable auto tagging/summarization (#2275)Mohamed Bassem2025-12-224-0/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | * feat: Add per-user settings to disable auto-tagging and auto-summarization This commit adds user-level controls for AI features when they are enabled on the server. Users can now toggle auto-tagging and auto-summarization on/off from the AI Settings page. Changes: - Added autoTaggingEnabled and autoSummarizationEnabled fields to user table - Updated user settings schemas and API endpoints to handle new fields - Modified inference workers to check user preferences before processing - Added toggle switches to AI Settings page (only visible when server has features enabled) - Generated database migration for new fields - Exposed enableAutoTagging and enableAutoSummarization in client config The settings default to null (use server default). When explicitly set to false, the user's bookmarks will skip the respective AI processing. * revert migration * i18n --------- Co-authored-by: Claude <noreply@anthropic.com>
* fix: add authentication checks to settings layout (#2274)Mohamed Bassem2025-12-201-2/+24
| | | | | | | | | | | | | | | | | The settings layout was missing authentication checks, causing server errors when unauthenticated users tried to access any settings page. This fix adds: - Session verification via getServerAuthSession() - Redirect to "/" if no session exists - Proper error handling with tryCatch wrapper - Redirect to "/logout" for NOT_FOUND or UNAUTHORIZED errors This brings the settings layout in line with the auth patterns used in dashboard, admin, and reader layouts. Fixes #2242 Co-authored-by: Claude <noreply@anthropic.com>
* fix: only trigger search autocomplete on first search charMohamed Bassem2025-12-201-2/+7
|
* fix: collapse reader settings by defaultMohamed Bassem2025-12-181-186/+209
|
* feat: Add unified reader settings with local overrides (#2230)Evan Simkowitz2025-12-1511-162/+1041
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add initial impl * fix some format inconsistencies, add indicator in user settings when local is out of sync * Fix sliders in user settings, unify constants and formatting * address CodeRabbit suggestions * add mobile implementation * address coderabbit nitpicks * fix responsiveness of the reader settings popover * Move more of the web UI strings to i18n * update translations for more coverage * remove duplicate logic/definitions * fix android font family * add shared reading setting hook between web and mobile * unify reader settings context for both web and mobile * remove unused export * address coderabbit suggestions * fix tests
* deps: Upgrade nextjs to 15.3.8Mohamed Bassem2025-12-121-1/+1
|
* deps: Upgrade nextjs to 15.3.7Mohamed Bassem2025-12-111-1/+1
|