From 2defc2475fc36635c45a449a44669048871864f6 Mon Sep 17 00:00:00 2001
From: Mohamed Bassem <me@mbassem.com>
Date: Sun, 12 Oct 2025 22:41:56 +0100
Subject: feat: Add source field to track bookmark creation sources (#2037)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* 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>
---
 apps/mobile/app/dashboard/bookmarks/new.tsx | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

(limited to 'apps/mobile/app/dashboard/bookmarks/new.tsx')

diff --git a/apps/mobile/app/dashboard/bookmarks/new.tsx b/apps/mobile/app/dashboard/bookmarks/new.tsx
index 51db6d97..25882d7f 100644
--- a/apps/mobile/app/dashboard/bookmarks/new.tsx
+++ b/apps/mobile/app/dashboard/bookmarks/new.tsx
@@ -48,9 +48,13 @@ const NoteEditorPage = () => {
       if (url.protocol != "http:" && url.protocol != "https:") {
         throw new Error(`Unsupported URL protocol: ${url.protocol}`);
       }
-      createBookmark({ type: BookmarkTypes.LINK, url: data });
+      createBookmark({ type: BookmarkTypes.LINK, url: data, source: "mobile" });
     } catch {
-      createBookmark({ type: BookmarkTypes.TEXT, text: data });
+      createBookmark({
+        type: BookmarkTypes.TEXT,
+        text: data,
+        source: "mobile",
+      });
     }
   };
 
-- 
cgit v1.3-1-g0d28

