Zum Inhalt springen

Architektur und Datenfluss

src/background/index.ts ist die Koordinationsstelle:

  • initialisiert Default-Einstellungen bei Installation
  • reagiert auf bookmarks.onCreated
  • reagiert auch auf onRemoved, onChanged und onMoved, um das Dashboard aktuell zu halten
  • verarbeitet Runtime-Messages aus Popup, Dashboard und Content Script
  • akzeptiert Queue-Einträge und löst Re-Runs aus
  • entfernt angenommene oder verworfene Queue-Einträge statt sie nur umzusetzen

src/content/index.ts extrahiert:

  • document.title
  • Meta-Description
  • Textauszug
  • optional den vollständigen Text

Wenn kein passender offener Tab verfügbar ist, fällt die Pipeline auf serverseitiges fetch() der URL zurück.

  • popup: Status des aktuellen Tabs plus Recheck-Trigger
  • options: vollständiges Dashboard
  • ui/app.tsx: modale Settings-Editoren, Bookmark-Root-Filter, Delete-Aktionen, Review-Queue und paginiertes Event-Log mit AI-Details

Die Verarbeitung eines Lesezeichens erfolgt in src/lib/pipeline.ts.

  1. Einstellungen laden
  2. Lesezeichen-Summary auflösen
  3. Bookmark-Struktur lesen
  4. ausgeschlossene Quell- und Zielordner berücksichtigen
  5. bevorzugten Root-Ordner aus dem aktuellen Pfad ableiten
  6. Seitensnapshot extrahieren
  7. Provider-Entscheidung einholen
  8. Entscheidung anwenden oder Queue-Eintrag erzeugen

Die Pipeline liefert vier Outcomes:

  • moved
  • queued
  • skipped
  • failed

Die zentrale Message-Map ist in src/lib/types.ts definiert:

MessageZweck
dashboard:getkompletten Dashboard-Zustand laden
settings:updateEinstellungen speichern und neuen Zustand zurückgeben
bookmark:runeinzelnes Lesezeichen manuell verarbeiten
bookmark:deleteeinzelnes Lesezeichen löschen
queue:acceptQueue-Vorschlag anwenden
queue:dismissQueue-Eintrag verwerfen
queue:rerunQueue-Eintrag erneut analysieren
popup:current-tabBookmark-Status des aktiven Tabs abfragen
options:openDashboard-Seite öffnen
content:extractSeitendaten aus offenem Tab extrahieren

src/lib/storage.ts verwendet runtimeBrowser.storage.local mit vier relevanten Schlüsseln:

  • bookmark-sorter-settings
  • bookmark-sorter-review-queue
  • bookmark-sorter-event-log
  • bookmark-sorter-dashboard-revision

Das Event-Log speichert strukturierte Objekte statt einfacher Strings. Neben Status und Scope können auch Provider, Klassifikation, Zielpfad sowie aiRequest und aiResponse abgelegt werden.