aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components (unfollow)
Commit message (Collapse)AuthorFilesLines
2026-02-09feat: link to apps and extensions, docs and twitter in profile dropdownMohamed Bassem1-1/+30
2026-02-09fix: dedup list and recent search suggestionsMohamed Bassem1-10/+32
2026-02-09feat(ai): Support restricting AI tags to a subset of existing tags (#2444)Mohamed Bassem2-7/+210
* feat(ai): Support restricting AI tags to a subset of existing tags Co-authored-by: Claude <noreply@anthropic.com>
2026-02-09feat: Added Import for Instapaper (#2434)Daniel Wieser1-0/+19
* Added Instapaper import * Fixes #1444 Added Instapaper import support
2026-02-08feat: Add drag-and-drop support for bookmarks to lists (#2469)Mohamed Bassem4-111/+260
* feat: add drag and drop bookmark cards into sidebar lists Co-authored-by: Claude <noreply@anthropic.com>
2026-02-08feat: add source filter to query language (#2465)Mohamed Bassem2-1/+68
* 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>
2026-02-04feat(import): new import details page (#2451)Mohamed Bassem2-0/+602
* feat(import): new import details page * fix typecheck * review comments
2026-02-04feat: Import workflow v3 (#2378)Mohamed Bassem1-11/+66
* 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
2026-02-01chore: replace dayjs with data-fnsMohamed Bassem2-9/+5
2026-02-01feat: add support for redirectUrl after signup (#2439)Mohamed Bassem1-4/+16
* feat: add support for redirectUrl after signup * pr review * more fixes * format * another fix
2026-02-01fix: better looking error message when article content is unavailableMohamed Bassem1-1/+20
2026-02-01refactor: remove unused trpc files from web and mobileMohamed Bassem49-49/+71
2026-02-01refactor: migrate trpc to the new react query integration mode (#2438)Mohamed Bassem51-1029/+1310
* refactor: migrate trpc to the new react query integration mode * more fixes * more migrations * upgrade trpc client
2026-02-01refactor: centralize auth imports through new client module (#2437)Mohamed Bassem11-11/+11
* 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>
2026-01-19fix(ui): Improve visual consistency in all lists and highlights pageMohamed Bassem3-10/+9
2026-01-18feat: track api key usage datesMohamed Bassem2-19/+28
2026-01-18feat(rules): add "Title Contains" condition to Rule Engine (#1670) (#2354)Andrii Mokhovyk2-1/+56
* feat(rules): add "Title Contains" condition to Rule Engine (#1670) * feat(rules): hide title conditions for bookmark created trigger * fix typecheck
2026-01-18fix(web): avoid masonry overflow in bookmark grids (#2400)Evan Frenkel3-5/+25
2026-01-11feat: privacy-respecting bookmark debugger admin tool (#2373)Mohamed Bassem2-2/+650
* 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
2026-01-03fix: stop theme flashes with cloudflare rocket loader (#2340)Sweepy1-1/+5
2026-01-03feat: Add retry buttons for pending bookmarks in admin panel (#2341)Mohamed Bassem1-0/+28
2026-01-01fix: show a toast during banner uploadMohamed Bassem1-42/+27
2026-01-01feat: add replace banner and attachment download (#2328)Mohamed Bassem2-15/+157
* feat: add replace banner and attachment download * add pdf preview in mobile app * fix menu order * fix comment
2025-12-30feat: Add bulk remove from list (#2279)Mohamed Bassem2-2/+80
* 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>
2025-12-30feat: add "URL Does Not Contain" condition to rule engine (#2280)Mohamed Bassem1-0/+19
* 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>
2025-12-30feat: 2025 wrapped (#2322)Mohamed Bassem4-0/+570
* feat: 2025 wrapped * don't add wrapped for new users
2025-12-29feat: add the ability to specify a different changelog versionMohamed Bassem2-19/+42
2025-12-29refactor: add suspense boundary in sidebar layoutMohamed Bassem6-133/+281
2025-12-28feat(web): better looking scrollbar in the sidebarMohamed Bassem1-1/+1
2025-12-28refactor: migrate toasts to sonnerMohamed Bassem59-282/+127
2025-12-27feat: add customizable tag styles (#2312)Mohamed Bassem3-122/+630
* feat: add customizable tag styles * add tag lang setting * ui settings cleanup * fix migration * change look of the field * more fixes * fix tests
2025-12-27feat: add Matter import support (#2245)Moondragon851-0/+17
* Matter import * use zod * fix date parsing --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
2025-12-27feat: support archiving as pdf (#2309)Mohamed Bassem2-30/+144
* feat: support archiving as pdf * add supprot for manually triggering pdf downloads * fix submenu * menu cleanup * fix store pdf
2025-12-25feat: add notes to the bookmark edit dialogMohamed Bassem1-0/+21
2025-12-24feat: show bookmark owner icon in shared lists (#2277)Mohamed Bassem5-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>
2025-12-24feat: add support for user avatars (#2296)Mohamed Bassem4-3/+270
* feat: add support for user avatars * more fixes * more fixes * more fixes * more fixes
2025-12-22feat: add a warning about viewing archives inline. fixes #2286Mohamed Bassem1-1/+30
2025-12-22feat: Add user settings to disable auto tagging/summarization (#2275)Mohamed Bassem1-0/+108
* 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>
2025-12-20fix: only trigger search autocomplete on first search charMohamed Bassem1-2/+7
2025-12-18fix: collapse reader settings by defaultMohamed Bassem1-186/+209
2025-12-15feat: Add unified reader settings with local overrides (#2230)Evan Simkowitz3-11/+768
* 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
2025-12-08fix: check import quota before importing bookmarks (#2232)Mohamed Bassem1-2/+11
* 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>
2025-12-08build: fix typecheck error in query explainerMohamed Bassem1-0/+10
2025-12-08feat: add is:broken search qualifier for broken links (#2225)Mohamed Bassem1-0/+6
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>
2025-11-30feat: add a notification badge for list invitationsMohamed Bassem2-0/+27
2025-11-30fix: regen turnstile token on signup resubmissionMohamed Bassem1-1/+14
2025-11-30feat: add support for turnstile on signupMohamed Bassem1-0/+42
2025-11-29feat: autocomplete search terms (#2178)Mohamed Bassem2-59/+618
* refactor(web): split search autocomplete logic * some improvements * restructure the code * fix typesafety * add feed suggestions * fix
2025-11-29feat: Add automated bookmark backup feature (#2182)Mohamed Bassem1-0/+423
* feat: Add automated bookmark backup system Implements a comprehensive automated backup feature for user bookmarks with the following capabilities: Database Schema: - Add backupSettings table to store user backup preferences (enabled, frequency, retention) - Add backups table to track backup records with status and metadata - Add BACKUP asset type for storing compressed backup files - Add migration 0066_add_backup_tables.sql Background Workers: - Implement BackupSchedulingWorker cron job (runs daily at midnight UTC) - Create BackupWorker to process individual backup jobs - Deterministic scheduling spreads backup jobs across 24 hours based on user ID hash - Support for daily and weekly backup frequencies - Automated retention cleanup to delete old backups based on user settings Export & Compression: - Reuse existing export functionality for bookmark data - Compress exports using Node.js built-in zlib (gzip level 9) - Store compressed backups as assets with proper metadata - Track backup size and bookmark count for statistics tRPC API: - backups.getSettings - Retrieve user backup configuration - backups.updateSettings - Update backup preferences - backups.list - List all user backups with metadata - backups.get - Get specific backup details - backups.delete - Delete a backup - backups.download - Download backup file (base64 encoded) - backups.triggerBackup - Manually trigger backup creation UI Components: - BackupSettings component with configuration form - Enable/disable automatic backups toggle - Frequency selection (daily/weekly) - Retention period configuration (1-365 days) - Backup list table with download and delete actions - Manual backup trigger button - Display backup stats (size, bookmark count, status) - Added backups page to settings navigation Technical Details: - Uses Restate queue system for distributed job processing - Implements idempotency keys to prevent duplicate backups - Background worker concurrency: 2 jobs at a time - 10-minute timeout for large backup exports - Proper error handling and logging throughout - Type-safe implementation with Zod schemas * refactor: simplify backup settings and asset handling - Move backup settings from separate table to user table columns - Update BackupSettings model to use static methods with users table - Remove download mutation in favor of direct asset links - Implement proper quota checks using QuotaService.checkStorageQuota - Update UI to use new property names and direct asset downloads - Update shared types to match new schema Key changes: - backupSettingsTable removed, settings now in users table - Backup downloads use direct /api/assets/{id} links - Quota properly validated before creating backup assets - Cleaner separation of concerns in tRPC models * migration * use zip instead of gzip * fix drizzle * fix settings * streaming json * remove more dead code * add e2e tests * return backup * poll for backups * more fixes * more fixes * fix test * fix UI * fix delete asset * fix ui * redirect for backup download * cleanups * fix idempotency * fix tests * add ratelimit * add error handling for background backups * i18n * model changes --------- Co-authored-by: Claude <noreply@anthropic.com>
2025-11-28fix: fix react errors in signin and signup formsMohamed Bassem2-0/+10