| Age | Commit message | Author | Files | +/- |
|---|---|---|---|---|
refactor: generalize tidy assets queue into admin maintenance (#2059) …* refactor: generalize admin maintenance queue * more fixes |
Mohamed Bassem | 10 | -159/+227 | |
feat: Add source field to track bookmark creation sources (#2037) …* feat: Add source field to track bookmark creation sources Add a new 'source' field to the bookmarks table to track where bookmarks were created from. Possible values: api, web, cli, mobile, singlefile, rss. Changes: - Add source field to bookmarks table schema - Update Zod schemas to include source field - Update tRPC createBookmark procedure to store source - Update all callsites to pass appropriate source value: - api: Default to "api" if not provided - singlefile: Set to "singlefile" - rss: Set to "rss" in feedWorker - cli: Set to "cli" - mobile: Set to "mobile" in all mobile app bookmark creation - browser-extension: Set to "web" - web: Set to "web" in all web app bookmark creation - Create migration file for database schema change Fixes #2036 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Mohamed Bassem <MohamedBassem@users.noreply.github.com> * feat: Add extension source type for browser extension - Add 'extension' to bookmark source enum - Update browser extension to use 'extension' instead of 'web' Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com> * fix CI * fix CI * fix the migration file * add import source * make source nullish --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com> |
Mohamed Bassem | 16 | -12/+2650 | |
| feat: Add service dependency checks in the server overview page | Mohamed Bassem | 7 | -102/+404 | |
fix(web): Add w-full to tags editor to prevent unusable narrow width (#2035) …* fix(web): Add min-width to tags editor to prevent unusable narrow width When there are no tags, the tags editor input was shrinking to just 1 character width, making the entire component unusably narrow. This adds a min-w-64 (256px) class to ensure the input field is always at a usable width. Fixes #2033 Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com> * fix --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com> |
Mohamed Bassem | 1 | -1/+1 | |
feat: make list dropdown searchable in Manage Lists modal (#2029) …- Replace simple Select component with searchable Command/Popover component - Add search input that filters lists as you type (like tags) - Maintain sidebar ordering using allPaths - Add visual checkmark for selected list - Improve UX with keyboard navigation and accessibility Fixes #2025 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com> |
Mohamed Bassem | 1 | -30/+75 | |
| fix: fix show no bookmark page when there isn't search results | Mohamed Bassem | 1 | -4/+5 | |
feat: Revamp import experience (#2001) …* WIP: import v2 * remove new session button * don't redirect after import * store and lint to root list * models + tests * redesign the progress * simplify the import session for ow * drop status from session schema * split the import session page * i18n * fix test * remove pagination * fix some colors in darkmode * one last fix * add privacy filter * privacy check * fix interactivity of import progress * fix test |
Mohamed Bassem | 21 | -37/+3618 | |
| fix: fix public list sharing for empty lists (#1990) | Mohamed Bassem | 1 | -3/+4 | |
| feat: recursive list delete (#1989) | Mohamed Bassem | 5 | -16/+437 | |
| chore: Silence lint on <a> and <img> tags when it's intentional | Mohamed Bassem | 3 | -0/+6 | |
feat: Add tag search and pagination (#1987) …* feat: Add tag search and use in the homepage * use paginated query in the all tags view * wire the load more buttons * add skeleton to all tags page * fix attachedby aggregation * fix loading states * fix hasNextPage * use action buttons for load more buttons * migrate the tags auto complete to the search api * Migrate the tags editor to the new search API * Replace tag merging dialog with tag auto completion * Merge both search and list APIs * fix tags.list * add some tests for the endpoint * add relevance based sorting * change cursor * update the REST API * fix review comments * more fixes * fix lockfile * i18n * fix visible tags |
Mohamed Bassem | 32 | -493/+1731 | |
| feat: Regen api keys | Mohamed Bassem | 8 | -29/+259 | |
| fix(web): Handle user deletion more gracefully | Mohamed Bassem | 1 | -4/+22 | |
| feat: A better looking catch all error boundary | Mohamed Bassem | 1 | -2/+39 | |
| fix(web): fix error when attempting to merge tags. fixes #1938 | Mohamed Bassem | 3 | -8/+17 | |
feat: Add Create Tag button to tags page (#1942) …* feat: add Create Tag button to tags page - Added useCreateTag hook to shared-react/hooks/tags.ts - Created CreateTagModal component for tag creation without bookmark attachment - Added Create Tag button to AllTagsView component - Added necessary translation keys for the new feature Fixes #1937 Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com> * format * localize toasts --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Mohamed Bassem <MohamedBassem@users.noreply.github.com> |
Mohamed Bassem | 4 | -1/+170 | |
feat(search): add title search qualifier (#1940) …* fix(search): include link titles in title matcher * docs(search): add title qualifier * docs: remove title qualifier from v0.27 guide |
Mohamed Bassem | 9 | -2/+142 | |
i18n: Sync weblate translations …Co-authored-by: Filippo Moscatelli <filipp28mo@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: OpenAI <noreply-mt-openai@weblate.org> 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/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 |
Hosted Weblate | 30 | -61/+2011 | |
| fix: fix tag flicker caused by tag sorting | Mohamed Bassem | 6 | -50/+53 | |
feat: Show loading indicator while file is being generated #1787 (#1870) …Co-authored-by: ahmed.abdelakrim <ahmad.abdelakrim89@gmail.com> |
ahmed-abdelkarim | 1 | -7/+51 | |
feat(web): render AI summary in markdown (#1869) …* feat: wrap bookmark summary with MarkdownReadonly component to render Markdown properly. * fix: hydration errors because of the markdown component |
Youen Chéné | 2 | -5/+12 | |
| fix(web): Fix deleting the action in the rule engine auto saves. fixes #1858 | Mohamed Bassem | 1 | -0/+1 | |
| fix: Incremental polling interval for ongoing crawls | Mohamed Bassem | 5 | -36/+40 | |
| fix: handle list with slashes in their names and truncate long list names.… | Mohamed Bassem | 12 | -602/+1076 | |
| feat: Add a bookmark skeleton for search | Mohamed Bassem | 2 | -2/+86 | |
u18n: Update french translation.json (#1866) …Better french 🥖 |
Vivien | 1 | -1/+1 | |
| fix: fix nextjs warning about dialog without title in bookmark preview | MohamedBassem | 3 | -3/+18 | |
| fix(web): fix query getting rest when bookmark preview is closed. fixes #1521 | MohamedBassem | 4 | -17/+34 | |
| fix(web): Fix hydration errors in add api key page | MohamedBassem | 1 | -14/+7 | |
| fix: preserve selected section in link preview in query params | MohamedBassem | 1 | -2/+4 | |
| fix: Hide bookmark global actions when there's no bookmark grid shown | MohamedBassem | 3 | -3/+27 | |
| fix(security): Add CSP policies on asset serving path | MohamedBassem | 2 | -2/+20 | |
| fix: Remove dev indicator config from nextjs config | MohamedBassem | 1 | -4/+0 | |
| fix(web): Fix dark mode titles for public lists | MohamedBassem | 1 | -4/+4 | |
| feat: Add confirmations to background job actions | MohamedBassem | 2 | -25/+40 | |
| feat: A redesigned background jobs page. #1551 | MohamedBassem | 4 | -202/+499 | |
Revert "deps: Upgrade nextjs to 15.5" …This reverts commit be420c9aebb0f2d343a0c94327fddc089f56d402. |
MohamedBassem | 9 | -1317/+2360 | |
| deps: Upgrade nextjs to 15.5 | MohamedBassem | 9 | -2359/+1316 | |
| fix(web): Suppress hydration warning on root html | MohamedBassem | 1 | -1/+5 | |
deps: Upgrade expo & nextjs to react 19 (#1565) …* Attempt to upgrade expo 53 * Attempt upgrade nextjs * Fix a bunch of peer deps * upgrade some docs deps * fix typecheck * update the shadcn calendar component * more fixes * more fixes * revert ollama upgrade * update react version to use carets * remove react-select from landing * fix the typescript error caused by customFetch * upgrade the new grid user setting to nextjs 15 * mobile: enable react canary to support react 19.1 * upgrade react native menu * fix navigation context error |
Mohamed Bassem | 29 | -3336/+2403 | |
| fix: renamed export filename to karakeep (#1829) | David Pearson | 1 | -1/+1 | |
| feat: Render human tags before AI tags (#1740) | haappi | 3 | -29/+40 | |
| feat: Add an error boundary around the custom renderer | MohamedBassem | 1 | -2/+35 | |
| feat(web): Add special cards for specific websites. Fixes #1344 | MohamedBassem | 11 | -2/+494 | |
| fix: Merge the quota columns in the user lists | Mohamed Bassem | 1 | -8/+2 | |
| refactor: Move webhook, users and tags into models | MohamedBassem | 12 | -1120/+1602 | |
| feat: Drop support for time bounded invitations | MohamedBassem | 8 | -124/+2376 | |
| refactor: Extract meilisearch as a plugin | MohamedBassem | 26 | -155/+524 | |
| chore: More turbo fixes | MohamedBassem | 28 | -57/+107 | |
| deps: Upgrade vite | Mohamed Bassem | 18 | -1064/+847 | |
| refactor: Extract the importing logic into its own hook | Mohamed Bassem | 2 | -258/+268 | |
| feat: Configurable number of grid columns. Fixes #1713 | Mohamed Bassem | 7 | -72/+152 | |
| feat: Render author, publisher and pub data in the bookmark view | Mohamed Bassem | 1 | -1/+49 | |
| fix: Avoid prefetching assets and tags in the link component. Fixes #1759 | Mohamed Bassem | 3 | -0/+5 | |
| feat: Hide AI settings tab if inference is not configured. #1781 | Mohamed Bassem | 2 | -22/+21 | |
| fix: Stop forcing next-auth to read email from id_token. Fixes #410 | Mohamed Bassem | 1 | -1/+0 | |
| fix: Drop legacy container notice | Mohamed Bassem | 2 | -22/+2 | |
| deps: Upgrade trpc | Mohamed Bassem | 6 | -87/+54 | |
| fix: Remove bcrypt from the api key validation route | Mohamed Bassem | 6 | -25/+568 | |
i18n: Sync weblate translations …Co-authored-by: Aindriú Mac Giolla Eoin <aindriu80@gmail.com> Co-authored-by: Blubberland <github@alias.kardansch.de> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Michael Förster <mfo1009@googlemail.com> Co-authored-by: Myst <mystou@gmail.com> Co-authored-by: OpenAI <noreply-mt-openai@weblate.org> Co-authored-by: katzecz <sich@svetlokadanzs.cz> 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/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 |
Hosted Weblate | 30 | -90/+3362 | |
| fix(web): Remove horizontal scroll in PWA's header | Mohamed Bassem | 1 | -1/+1 | |
| feat(web): Slightly nicer looking tags page | Mohamed Bassem | 3 | -80/+94 | |
| fix: Fix edit list modal not clearing parent | Mohamed Bassem | 1 | -1/+1 | |
| feat: Add a proper reader mode | Mohamed Bassem | 10 | -163/+583 | |
| fix(web): Fix the clear parent button in the edit list dialog. Fixes #1742 | Mohamed Bassem | 1 | -1/+1 | |
| fix: Clear search history on logout | Mohamed Bassem | 3 | -15/+20 | |
feat: adding search history #1541 (#1627) …* feat: adding search history * fix popover should close when no matched history * remove unnecessary react import * replace current Input component with CommandInput for better UX * add i18n for recent searches label * fix bug * refactor local storage logic to make code reusable * using zod schema to validate search history and revert debounce change * Consolidate some of the files --------- Co-authored-by: Mohamed Bassem <me@mbassem.com> |
lexafaxine | 7 | -47/+416 | |
feat: markdown file upload support (#1647) (#1672) …* feat: Add support for uploading Markdown (.md) files * add: markdown to supported bookmark assets * revert the changes in the assetdb --------- Co-authored-by: Mohamed Bassem <me@mbassem.com> |
Rodrigo Santos | 1 | -3/+20 | |
| feat: Add stripe based subscriptions | Mohamed Bassem | 18 | -60/+4351 | |
| feat: Add delete account support | Mohamed Bassem | 6 | -2/+252 | |
| fix: Drop auth failure logger | Mohamed Bassem | 4 | -61/+11 | |
| fix(web): Fix the alignment in the user options page | Mohamed Bassem | 1 | -4/+1 | |
| deps: Upgrade drizzle | Mohamed Bassem | 5 | -140/+475 | |
| fix(web): Fix dark mode in auth pages | Mohamed Bassem | 6 | -10/+10 | |
| fix(tests): Fix missing mock in trpc tests | Mohamed Bassem | 3 | -4/+3 | |
| fix: Prioritize crawling user added links over bulk imports. fixes #1717 | Mohamed Bassem | 14 | -91/+159 | |
| feat: Support forget and reset password | Mohamed Bassem | 13 | -47/+3170 | |
| feat(ui): Revamp the signin/signup page | Mohamed Bassem | 6 | -238/+393 | |
| feat: Add invite user support | Mohamed Bassem | 18 | -109/+3973 | |
| feat: Add support for email verification | Mohamed Bassem | 12 | -157/+748 | |
| fix: Drop the need to for the self-call for providers and NEXTAUTH_INTERNAL_URL | Mohamed Bassem | 2 | -5/+9 | |
| feat: Add a logout page | Mohamed Bassem | 1 | -0/+18 | |
| fix(web): Clicking on search tooltip opens the search language guide. Fixes… | Mohamed Bassem | 2 | -5/+10 | |
| feat: Store large html content in the asset db | Mohamed Bassem | 17 | -18/+2383 | |
| feat: Add a new timezone user setting | Mohamed Bassem | 9 | -27/+2189 | |
| fix: Fix i18n in the new stats page | Mohamed Bassem | 3 | -37/+108 | |
| feat: Add per user storage quota | Mohamed Bassem | 17 | -108/+2388 | |
| feat: Add new user stats page. Fixes #1523 | Mohamed Bassem | 6 | -1/+1102 | |
| feat(workers): Allow custmoizing max parallelism for a bunch of workers. Fixes… | Mohamed Bassem | 9 | -15/+45 | |
| refactor: Move the health endpoint to hono as well | Mohamed Bassem | 3 | -8/+18 | |
| refactor: Move the trpc endpoint to hono | Mohamed Bassem | 5 | -22/+46 | |
| feat: Add per user bookmark count quota | Mohamed Bassem | 13 | -168/+2553 | |
| fix(web): Add icons to preview selectors | Mohamed Bassem | 1 | -4/+19 | |
| fix: switch import / export icons (#1682) | Harry Peach | 1 | -2/+2 | |
| chore: More oxlint changes | Mohamed Bassem | 23 | -87/+24 | |
chore: migrate away from eslint to oxlint (#1642) …* chore: migrate away from eslint to oxlint * revert turbo task name lint * it seems like we can remove the seemingly default globals |
xuatz | 70 | -1695/+1174 | |
feat(admin): add confirmation dialog for user deletion (#1648) (#1649) …* feat(admin): add confirmation dialog for user deletion (#1648) * No need to manage dialog state --------- Co-authored-by: Mohamed Bassem <me@mbassem.com> |
Deepanshu Saini | 2 | -10/+32 | |
| fix: Fix oauth creation failure due to missing UserSettings table. Fixes #1583 | Mohamed Bassem | 4 | -45/+81 | |
i18n: Add Greek translation (#1564) …* Add Greek translation * pnpm format:fix |
apo-mak | 2 | -0/+482 | |
| fix: Fix UI infinite recursion by upgrading radix packages | Mohamed Bassem | 4 | -1004/+516 |