aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* feat(mobile): Show shared lists under a subsectionMohamed Bassem2025-12-201-8/+66
|
* fix(mobile): Fix title line clamp to 2 linesMohamed Bassem2025-12-201-4/+9
|
* fix(mobile): Add loading spinner to mobile list button (#2283)Mohamed Bassem2025-12-201-25/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix: add loading spinner to manage lists buttons in mobile app Adds visual feedback when adding/removing bookmarks from lists on the manage lists page. The checkbox is replaced with an ActivityIndicator while the operation is in progress, preventing multiple taps and improving UX when the server is slow. Changes: - Track isPending and variables from add/remove mutations - Add isListLoading helper to check if a specific list is loading - Show ActivityIndicator instead of Checkbox during operations - Disable Pressable interaction while loading * fix: add loading spinner to manage tags page in mobile app Adds visual feedback when adding/removing tags on the manage tags page. A spinner appears on the specific tag being modified, replacing the check/plus icon during the network request. Only the tag being modified is disabled and dimmed to prevent multiple taps. Changes: - Track isPending and variables from updateTags mutation - Add isTagLoading helper to check if a specific tag is loading - Show ActivityIndicator on the specific tag being modified - Only disable the tag item that's loading * revert the change in the tags --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat: add server version display to mobile app settings (#2276)Mohamed Bassem2025-12-202-0/+43
| | | | | | | | - Created useServerVersion hook to fetch server version from /api/version - Display both app version (from expo-constants) and server version - Added version info at the bottom of settings page - Server version shows loading state and handles errors gracefully 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-202-2/+9
|
* feat(landing): remove waitlist link. fixes #2270Mohamed Bassem2025-12-192-5/+5
|
* fix: don't fail the script if the user karakeep already exists. fixes #2242Mohamed Bassem2025-12-181-2/+6
|
* fix: collapse reader settings by defaultMohamed Bassem2025-12-181-186/+209
|
* docs: Add icons beside category namesMohamed Bassem2025-12-1811-13/+13
|
* Revert "fix: fix restate service to return control to restate service on ↵Mohamed Bassem2025-12-152-21/+1
| | | | | | timeout" This reverts commit 6db14ac492cd5d9e26d0d986513771f14faa7fd0.
* feat: Add unified reader settings with local overrides (#2230)Evan Simkowitz2025-12-1530-199/+4866
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* fix: fix restate service to return control to restate service on timeoutMohamed Bassem2025-12-152-1/+21
|
* fix: non-link bookmarks where stuck in pending summarization. Fixes #1605Mohamed Bassem2025-12-144-0/+2959
|
* fix: move trpc error logging inside the dev checkMohamed Bassem2025-12-141-1/+1
|
* fix: Fix Amazon product image extraction on amazon.com URLs (#2108)Randall Hand2025-12-142-0/+79
| | | | | | | | | | | | | | | | The metascraper-amazon package extracts the first .a-dynamic-image element, which on amazon.com is often the Prime logo instead of the product image. This works fine on amazon.co.uk where the product image appears first in the DOM. Created a custom metascraper plugin that uses more specific selectors (#landingImage, #imgTagWrapperId, #imageBlock) to target the actual product image. By placing this plugin before metascraperAmazon() in the chain, we fix image extraction while preserving all other Amazon metadata (title, brand, description). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com>
* feat: use reddit API for metadata extraction. Fixes #1853 #1883Mohamed Bassem2025-12-134-33/+346
|
* fix: use GET requests for the content type requestMohamed Bassem2025-12-131-1/+1
|
* docs: fix sidebar on mobileMohamed Bassem2025-12-131-4/+2
|
* feat: Add limits on number of rss feeds and webhooks per userMohamed Bassem2025-12-136-4/+218
|
* release(cli): Bump CLI version to 0.29.1Mohamed Bassem2025-12-131-1/+1
|
* readme: some readme updatesMohamed Bassem2025-12-131-4/+12
|
* docs: Update screenshots in docsMohamed Bassem2025-12-137-5/+1
|
* docs: Adding user guidesMohamed Bassem2025-12-1320-11/+154
|
* docs: drop docs for old versionsMohamed Bassem2025-12-13342-22139/+1
|
* docs: restructure the docsMohamed Bassem2025-12-1338-31/+282
|
* docs: restyle the docsMohamed Bassem2025-12-132-66/+788
|
* ci: run CI with node 24Mohamed Bassem2025-12-131-1/+2
|
* deps: Upgrade to nodejs 24Mohamed Bassem2025-12-136-113/+125
|
* fix!: changing default for includeContent to be false in the APIMohamed Bassem2025-12-121-2/+1
|
* deps: Upgrade nextjs to 15.3.8Mohamed Bassem2025-12-122-22/+22
|
* deps: Upgrade nextjs to 15.3.7Mohamed Bassem2025-12-112-22/+22
|
* fix: add more indicies for faster bookmark queries (#2246)Mohamed Bassem2025-12-115-117/+3129
|
* feat: make asset preprocessing worker timeout configurableClaude2025-12-103-1/+4
| | | | | | - Added ASSET_PREPROCESSING_JOB_TIMEOUT_SEC environment variable with default of 60 seconds (increased from hardcoded 30 seconds) - Updated worker to use the configurable timeout from serverConfig - Added documentation for the new configuration option
* fix: Add cache control header on asset endpointsMohamed Bassem2025-12-101-0/+1
|
* chore: Allowing multi user benchmarks and adding more coverageMohamed Bassem2025-12-093-31/+157
|
* feat(cli): Add ability to list users for the admin in the CLIMohamed Bassem2025-12-082-0/+91
|
* fix: fix correctly accounting for text bookmark in import sessions. #2208Mohamed Bassem2025-12-082-16/+58
|
* fix: check import quota before importing bookmarks (#2232)Mohamed Bassem2025-12-083-3/+54
| | | | | | | | | | | | | | | | | | | | | | | * feat: check import quota before importing bookmarks Add quota validation before bookmark import to prevent users from exceeding their bookmark limits. The implementation includes: - New QuotaService.canImportBookmarks() method to check if user can import N bookmarks - New tRPC checkImportQuota procedure for client-side quota validation - Updated useBookmarkImport hook to parse files and check quota before import - Added error banner in ImportExport component to display quota errors - Optimized file parsing to avoid reading the file twice The quota check displays remaining bookmarks and provides clear error messages when the import would exceed the user's quota. * fix * some fixes --------- Co-authored-by: Claude <noreply@anthropic.com>
* build: fix typecheck error in query explainerMohamed Bassem2025-12-081-0/+10
|
* fix: migrate to metascraper-x from metascraper-twitterMohamed Bassem2025-12-083-297/+16
|
* feat: add is:broken search qualifier for broken links (#2225)Mohamed Bassem2025-12-087-0/+60
| | | | | | | | | | | | | | | | | | | | Add a new search qualifier `is:broken` that allows users to filter bookmarks with broken or failed links. This matches the functionality on the broken links settings page, where a link is considered broken if: - crawlStatus is "failure" - crawlStatusCode is less than 200 - crawlStatusCode is greater than 299 The qualifier supports negation with `-is:broken` to find working links. Changes: - Add brokenLinks matcher type definition - Update search query parser to handle is:broken qualifier - Implement query execution logic for broken links filtering - Add autocomplete support with translations - Add parser tests - Update search query language documentation Co-authored-by: Claude <noreply@anthropic.com>
* feat: spread feed fetch scheduling deterministically over the hour (#2227)Mohamed Bassem2025-12-081-0/+31
| | | | | | | | | | Previously, all RSS feeds were fetched at the top of each hour (minute 0), which could cause load spikes. This change spreads feed fetches evenly throughout the hour using a deterministic hash of the feed ID. Each feed is assigned a target minute (0-59) based on its ID hash, ensuring consistent scheduling across restarts while distributing the load evenly. Co-authored-by: Claude <noreply@anthropic.com>
* fix: better extraction for youtube thumbnails. #2204Mohamed Bassem2025-12-073-18/+241
|
* fix: remove queue triggers outside of updateTags transactionMohamed Bassem2025-12-071-15/+19
|
* chore: add benchmarks (#2229)Mohamed Bassem2025-12-0615-0/+789
| | | | | | | | | * chore: add benchmarks * upgrade deps * fixes * lint
* build: dont update latest tags on releaseMohamed Bassem2025-12-031-8/+19
|
* deps: Upgrade nextjs to 15.3.6Mohamed Bassem2025-12-032-55/+55
|
* feat: add a notification badge for list invitationsMohamed Bassem2025-11-302-0/+27
|
* docs: add karakeep integration for Home Assistant (#2196)Flo2025-11-301-0/+8
| | | | | | | | | | | | | | | | | | | * Update 13-community-projects.md Add Karakeep integration for Home Assistant * Update docs/docs/13-community-projects.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/13-community-projects.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update 13-community-projects.md --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>