| 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 | |
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 | |
| feat: recursive list delete (#1989) | Mohamed Bassem | 5 | -16/+437 | |
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 | |
| fix: optimize memory usage of tag listing | Mohamed Bassem | 2 | -51/+137 | |
| refactor: Move callsites to liteque to be behind a plugin | Mohamed Bassem | 39 | -405/+707 | |
| feat: Regen api keys | Mohamed Bassem | 8 | -29/+259 | |
| refactor: strongly type the search plugin interface | Mohamed Bassem | 3 | -10/+41 | |
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 | |
| fix: fix 5xx on invalid api key | Mohamed Bassem | 1 | -1/+5 | |
| fix: fix tag flicker caused by tag sorting | Mohamed Bassem | 6 | -50/+53 | |
| refactor: Extract quota logic into its own class | Mohamed Bassem | 11 | -102/+133 | |
| refactor: Move highlights object into models | Mohamed Bassem | 2 | -131/+188 | |
| refactor: Move feed object into models | Mohamed Bassem | 2 | -94/+134 | |
| fix: Respect wal mode for the queue db | Mohamed Bassem | 5 | -13/+15 | |
feat: Support video uploads and attachments (#1847) …This commit allows the following mime types to be uploaded and attached as video assets on bookmarks. - video/mp4 - video/webm - video/x-matroska |
Evan Sharp | 2 | -1/+11 | |
| fix: Get rid of the userSetting table completely | MohamedBassem | 5 | -56/+2359 | |
| refactor: Move webhook, users and tags into models | MohamedBassem | 12 | -1120/+1602 | |
| feat: Drop support for time bounded invitations | MohamedBassem | 8 | -124/+2376 | |
| fix: Use prometheus histogram instead of summary | MohamedBassem | 1 | -2/+5 | |
| refactor: Extract meilisearch as a plugin | MohamedBassem | 26 | -155/+524 | |
| chore: More turbo fixes | MohamedBassem | 28 | -57/+107 | |
| fix: Fix package boundary violations | MohamedBassem | 6 | -5/+14 | |
| deps: Upgrade vite | Mohamed Bassem | 18 | -1064/+847 | |
| fix: Drop legacy container notice | Mohamed Bassem | 2 | -22/+2 | |
| deps: Upgrade trpc | Mohamed Bassem | 6 | -87/+54 | |
fix: prometheus add karakeep prefix to metrics (#1780) …* add: prometheus karakeep prefix * readd: comments |
Tobias | 1 | -7/+7 | |
| fix: Remove bcrypt from the api key validation route | Mohamed Bassem | 6 | -25/+568 | |
| fix(test): Fix subscription.test | Mohamed Bassem | 1 | -0/+1 | |
| fix(stripe): Allow promotion codes | Mohamed Bassem | 1 | -0/+1 | |
| feat: Allow setting browserless crawling per user | Mohamed Bassem | 10 | -6/+2399 | |
Revert "fix: Fix the types of the bookmark types in the db query" …This reverts commit 4ba3e8047a5b1f160169617187436c09e91662ec. |
Mohamed Bassem | 4 | -27/+16 | |
| fix: Fix the types of the bookmark types in the db query | Mohamed Bassem | 4 | -16/+27 | |
| 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: Add ratelimiting to bookmark recrawl and summarization | Mohamed Bassem | 1 | -1/+15 | |
| deps: Upgrade drizzle | Mohamed Bassem | 5 | -140/+475 | |
| 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 | |
| refactor: Move db interactions into the trpc routes | Mohamed Bassem | 4 | -33/+66 | |
| feat: Support forget and reset password | Mohamed Bassem | 13 | -47/+3170 | |
| feat: Add API ratelimits | Mohamed Bassem | 7 | -13/+173 | |
| feat: Add invite user support | Mohamed Bassem | 18 | -109/+3973 | |
| feat: Add support for email verification | Mohamed Bassem | 12 | -157/+748 | |
| fix: Add a dummy bcrypt comparison in validatePassword when the user is not… | Mohamed Bassem | 1 | -0/+6 | |
| feat: Store large html content in the asset db | Mohamed Bassem | 17 | -18/+2383 | |
| fix(tests): Fix broken user setting test | Mohamed Bassem | 1 | -0/+2 | |
| feat: Add a new timezone user setting | Mohamed Bassem | 9 | -27/+2189 | |
| feat: Add prometheus monitoring. Fixes #758 | Mohamed Bassem | 10 | -55/+331 | |
| 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: Add per user bookmark count quota | Mohamed Bassem | 13 | -168/+2553 | |
fix(tags): normalise leading hashes in tag names (#1317) (#1351) …* fix(tags): normalise leading hashes in tag names (#1317) * move the transformation to zod * fix openapi spec --------- Co-authored-by: Mohamed Bassem <me@mbassem.com> |
Mostafa Wahied | 5 | -7/+56 | |
| 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 | |
| fix: Fix webhook not firing on deletion. Fixes #1613 | Mohamed Bassem | 3 | -19/+23 | |
| fix: Change public image's signed tokens to be time aligned for better caching | Mohamed Bassem | 5 | -6/+140 | |
| fix: Fix oauth creation failure due to missing UserSettings table. Fixes #1583 | Mohamed Bassem | 4 | -45/+81 | |
| fix: Use a new public list metadata endpoint for metadata generation | Mohamed Bassem | 6 | -52/+126 | |
| feat: Allow specifying the overwrite mode for singlefile archives. Fixes #1125 | Mohamed Bassem | 5 | -40/+327 | |
feat: Add support for public lists (#1511) …* WIP: public lists * Drop viewing modes * Add the public endpoint for assets * regen the openapi spec * proper handling for different asset types * Add num bookmarks and a no bookmark banner * Correctly set page title * Add a not-found page * merge the RSS and public list endpoints * Add e2e tests for the public endpoints * Redesign the share list modal * Make NEXTAUTH_SECRET not required * propery render text bookmarks * rebase migration * fix public token tests * Add more tests |
Mohamed Bassem | 36 | -147/+3286 | |
feat: add user customisable default archive display behaviour (#1505) …* fix typo * implementation * bug fix and refactoring * Use nuqs for searchParam management * remove the todo about the tests * fix tests --------- Co-authored-by: Mohamed Bassem <me@mbassem.com> |
xuatz | 19 | -24/+2226 | |
feat: Generate RSS feeds from lists (#1507) …* refactor: Move bookmark utils from shared-react to shared * Expose RSS feeds for lists * Add e2e tests * Slightly improve the look of the share dialog * allow specifying a limit in the rss endpoint |
Mohamed Bassem | 26 | -293/+3131 | |
| feat: Add "deleted" webhook event (#1464) | Salvatore Gentile | 5 | -3/+6 | |
| feat: Allow defaulting to reader mode when clicking on bookmarks. Fixes #662 | Mohamed Bassem | 16 | -34/+2341 | |
| feat: Add AI auto summarization. Fixes #1163 | Mohamed Bassem | 34 | -2639/+4843 | |
| feat(api): Expose the endpoint to create a new tag | Mohamed Bassem | 7 | -49/+172 | |
fix(search): add new relevance sort order (#1392) …* fix(search): add new relevance sort order * address pr comments * some minor fixes --------- Co-authored-by: Mohamed Bassem <me@mbassem.com> |
xuatz | 7 | -16/+74 | |
fix(api): make PUT bookmark to a list idempotent (#1427) …* fix(api): make duplicate PUT /lists/:id/bookmarks/:id as allowed operation * apply pr comments |
xuatz | 3 | -34/+2 | |
| feat: Allow enabling/disabling RSS feeds | Mohamed Bassem | 10 | -21/+2032 | |
Revert "fix: Fix smart lists not working in list search qualifiers". #1321 …This reverts commit 6178736d64180f9bc8954099c90d54aa2f9f35f5. |
Mohamed Bassem | 3 | -133/+69 | |
| fix: Fix smart lists not working in list search qualifiers. Fixes #845 | Mohamed Bassem | 3 | -69/+133 | |
| fix: When triggering a re-index, drop all the documents first | Mohamed Bassem | 1 | -0/+3 | |
feat: Implement generic rule engine (#1318) …* Add schema for the new rule engine * Add rule engine backend logic * Implement the worker logic and event firing * Implement the UI changesfor the rule engine * Ensure that when a referenced list or tag are deleted, the corresponding event/action is * Dont show smart lists in rule engine events * Add privacy validations for attached tag and list ids * Move the rules logic into a models |
Mohamed Bassem | 42 | -40/+5787 | |
| tests: Run trpc tests in CI | Mohamed Bassem | 2 | -0/+18 | |
| tests: Add tests for various trpc endpoints | Mohamed Bassem | 9 | -5/+1108 | |
| fix: Add includeContent to search endpoint and document it in the docs | Mohamed Bassem | 11 | -22/+122 | |
feat(web): Add support for merging lists (#1231) …* feat: Support list merging * some fixes * move @hoarder to @karakeep --------- Co-authored-by: Mohamed Bassem <me@mbassem.com> |
omnitrix | 8 | -3/+325 | |
| fix: Add password salt to the user table | Mohamed Bassem | 8 | -12/+1718 | |
| feat: add support for filtering by bookmark age (#1228) | Brandon Wong | 8 | -15/+162 | |
| fix: Dont download html content by default in the bookmark grid. Fixes #1198 | Mohamed Bassem | 14 | -36/+112 | |
| feat: Allow editing the extracted content of an asset bookmark | Mohamed Bassem | 6 | -6/+66 | |
| feat: Add an MCP server for karakeep | Mohamed Bassem | 28 | -139/+2512 | |
feat(web): Optionally add short description to lists (#1225) …* feat(web): Optionally add short description to lists * regenerate openapi spec --------- Co-authored-by: Mohamed Bassem <me@mbassem.com> |
ekambains | 10 | -1/+1743 | |
| chore: Rename hoarder packages to karakeep | MohamedBassem | 230 | -644/+654 | |
| fix: Deprecate the updateBookmarkText trpc endpoint and replace it with… | MohamedBassem | 4 | -20/+6 | |
| feat: Allow editing bookmark details | MohamedBassem | 14 | -102/+732 | |
| feat: Add a search matcher for rss feed bookmarks | MohamedBassem | 7 | -1/+144 | |
| feat(workers): Adds publisher and author og:meta tags to Bookmark (#1141) | erik-nilcoast | 12 | -33/+2191 | |
| deps: Upgrade trpc and react query | Mohamed Bassem | 7 | -95/+511 | |
| deps: Upgrade vitest | Mohamed Bassem | 5 | -130/+81 | |
| feat: Add endpoints for whoami and user stats. Fixes #1113 | Mohamed Bassem | 9 | -9/+455 | |
| fix: Revert the accidental upgrade of deps. #1107 | Mohamed Bassem | 9 | -7148/+837 | |
build(deps-dev): bump vitest from 1.3.1 to 1.6.1 (#1104) …Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.3.1 to 1.6.1. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v1.6.1/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
dependabot[bot] | 5 | -265/+232 | |
| fix: Harden getBookmarks endpoint against inconsistent bookmarks. Fixes #1094 | Mohamed Bassem | 2 | -66/+60 | |
| feat: Move background jobs with the admin actions. Fixes #1083 | Mohamed Bassem | 8 | -257/+284 | |
| fix: Fix missing workers in the server stats | Mohamed Bassem | 3 | -0/+86 |