rcgit

/ karakeep
follow (on) | order: default date topo
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
next