No description
  • JavaScript 72.2%
  • Shell 26.2%
  • HTML 1.6%
Find a file
2026-03-11 10:02:28 +01:00
fixtures feat(extension): scaffold mv3 companion with mock capture path 2026-03-07 13:42:35 +01:00
patches feat(extension): add prune audit log and sidepanel event history 2026-03-07 17:10:24 +01:00
scripts add project rename and delete lifecycle 2026-03-11 10:02:28 +01:00
test add project rename and delete lifecycle 2026-03-11 10:02:28 +01:00
.gitignore eat(extension): add session json export from sidepanel 2026-03-07 17:18:36 +01:00
archive-annotations.js feat(extension): add local archive notes and tags in sidepanel 2026-03-07 21:53:02 +01:00
archive-bulk-export.js feat(extension): add bulk export for selected archives 2026-03-07 23:32:19 +01:00
archive-groups.js feat(extension): group archives into pinned recent and rest blocks 2026-03-07 23:14:50 +01:00
archive-priority.js feat(extension): add archive pinning and priority ordering 2026-03-07 23:03:19 +01:00
archive-quick-find.js feat(extension): add archive quick find and tag filter in sidepanel 2026-03-07 22:07:07 +01:00
archive-store.js feat(extension): add per-segment context dump structure to session exports and imported archives 2026-03-09 22:45:03 +01:00
capture-store.js feat(extension): focus sidepanel and preview archived turns on placeholder click 2026-03-07 16:54:56 +01:00
content.js 004g-fix11 verbose test-shape fixes for url-change and target-site gating 2026-03-10 21:07:58 +01:00
content.js.bak.004g-fix10 004g-fix11 verbose test-shape fixes for url-change and target-site gating 2026-03-10 21:08:12 +01:00
content.js.bak.004g-fix11 004g-fix11 verbose test-shape fixes for url-change and target-site gating 2026-03-10 21:08:12 +01:00
delta-summary.js feat(extension): add archive versus live delta summary to sidepanel 2026-03-07 21:29:37 +01:00
dom-metrics-store.js feat(extension): modernize soft-prune policy for critical pressure on live chatgpt threads 2026-03-09 19:01:59 +01:00
health-history.js fix(extension): repair stale health history oscillation from previous sidepanel read writes 2026-03-09 22:27:47 +01:00
health-score.js feat(extension): add live session health scores to sidepanel 2026-03-07 20:18:57 +01:00
indexeddb-backend.js feat(extension): migrate chrome local state into indexeddb on first load 2026-03-08 09:03:55 +01:00
manifest.json fix(extension): prefer the active tab session in the sidepanel state selection 2026-03-09 21:37:03 +01:00
package.json feat(extension): scaffold mv3 companion with mock capture path 2026-03-07 13:42:35 +01:00
project-workspaces.js add project rename and delete lifecycle 2026-03-11 10:02:28 +01:00
prune-audit-store.js feat(extension): add prune audit log and sidepanel event history 2026-03-07 17:10:24 +01:00
prune-policy.js fix(extension): prefer live DOM pressure over stored session backlog in prune preview 2026-03-09 22:35:00 +01:00
README.md feat(extension): add persistent advisor policy and user overrides 2026-03-09 11:27:31 +01:00
segment-store.js finish local closed-segment summaries 2026-03-10 00:16:01 +01:00
sidepanel.html add project rename and delete lifecycle 2026-03-11 10:02:28 +01:00
sidepanel.js add project rename and delete lifecycle 2026-03-11 10:02:28 +01:00
site-adapter.js fix(extension): prefer article text for modern chatgpt turn capture 2026-03-09 18:01:39 +01:00
storage-advisor-activity.js fix(extension): complete quiet-hours and page-activity automation guards after partial 002r apply 2026-03-09 13:49:14 +01:00
storage-advisor-automation.js feat(extension): add target-site eligibility and domain guard for advisor automation 2026-03-09 14:13:51 +01:00
storage-advisor-executor.js feat(extension): add persistent advisor policy and user overrides 2026-03-09 11:27:31 +01:00
storage-advisor-policy.js feat(extension): add persistent advisor policy and user overrides 2026-03-09 11:27:31 +01:00
storage-advisor.js feat(extension): add storage pressure advisor and action preview 2026-03-08 23:39:23 +01:00
storage-compaction.js feat(extension): add compaction rollback snapshots for safe storage actions 2026-03-08 18:04:29 +01:00
storage-diagnostics.js fix(extension): complete guarded storage compaction actions after partial 002e apply 2026-03-08 17:42:45 +01:00
storage-gateway.js 004h add local project workspaces 2026-03-10 23:17:13 +01:00
storage-integrity.js feat(extension): add storage integrity check and auto repair 2026-03-08 18:28:23 +01:00
storage-observability.js feat(extension): add storage observability timeline and event log 2026-03-08 23:22:25 +01:00
storage-offload-gc.js feat(extension): add offload garbage collection and orphan payload repair 2026-03-08 22:55:52 +01:00
storage-schema.js COMMIT_MSG: fix(extension): bump prune policy and storage schema to 002s 2026-03-09 14:32:59 +01:00
storage-target-site-guard.js feat(extension): add target-site eligibility and domain guard for advisor automation 2026-03-09 14:13:51 +01:00
storage-tiering.js fix(extension): lower tiering thresholds and strengthen offload tests 2026-03-08 22:15:51 +01:00
storage-write-queue.js feat(extension): add storage observability timeline and event log 2026-03-08 23:22:25 +01:00
suggestion-engine.js feat(extension): add dom and prune suggestions panel to sidepanel 2026-03-07 20:02:09 +01:00
sw.js add project rename and delete lifecycle 2026-03-11 10:02:28 +01:00
sw.js.bak.004g-fix10 004g-fix11 verbose test-shape fixes for url-change and target-site gating 2026-03-10 21:08:12 +01:00
sw.js.bak.004g-fix11 004g-fix11 verbose test-shape fixes for url-change and target-site gating 2026-03-10 21:08:12 +01:00
turn-filter.js feat(extension): add search and role filters for live and archive turns 2026-03-07 19:52:22 +01:00

Hier ist ein konkreter E2E-Testplan für den aktuellen Stand der Extension in Chromium/Opera unter Linux.

Ziel des Testlaufs

Prüfen, ob die aktuelle Version bereits als zusammenhängendes System funktioniert:

  • Extension lädt sauber
  • Sidepanel öffnet
  • Service Worker läuft
  • Content Script hängt an der Zielseite
  • State kann vom Sidepanel abgefragt werden
  • Storage-/Advisor-/Timeline-/Executor-UI reagiert
  • keine stillen Laufzeitfehler in Konsole oder Service Worker

1. Vorbereitungen

Im Repo:

cd ~/devel/chatbot-companion
npm run build
npm test

Erwartung:

  • Build grün
  • Tests grün

Dann prüfen, dass die wichtigen Dateien da sind:

ls -1 manifest.json sw.js sidepanel.html sidepanel.js content.js site-adapter.js

2. Extension als Unpacked laden

Chromium / Chrome

  1. chrome://extensions öffnen
  2. Developer mode aktivieren
  3. Load unpacked
  4. Repo-Ordner ~/devel/chatbot-companion auswählen

Opera

  1. opera://extensions öffnen
  2. Developer mode aktivieren
  3. Load unpacked
  4. Repo-Ordner ~/devel/chatbot-companion auswählen

Erwartung:

  • Extension wird ohne Manifest-Fehler geladen
  • keine rote Fehlermeldung direkt im Extension-Manager

3. Sidepanel-Verfügbarkeit prüfen

Im Extension-Manager prüfen:

  • ist die Extension aktiviert?
  • gibt es Fehlerhinweise bei Service Worker / Background Page?
  • lässt sich das Sidepanel öffnen?

Dann Zielseite öffnen, auf der der Chatbot läuft.

Danach das Sidepanel der Extension öffnen.

Erwartung:

  • sidepanel.html wird sichtbar
  • UI rendert
  • keine leere weiße Fläche
  • Buttons und Statusfelder sind sichtbar

4. Zielseite + Content Script prüfen

Auf der Chatbot-Seite:

  1. DevTools öffnen
  2. Konsole prüfen
  3. nach offensichtlichen Fehlern suchen

Besonders relevant:

  • Fehler aus content.js
  • Fehler aus site-adapter.js
  • CSP-/Permission-/Message-Fehler

Erwartung:

  • keine ungefangenen Exceptions direkt nach Seitenaufruf
  • kein permanenter Fehler-Loop

5. Service Worker prüfen

Im Extension-Manager bei der Extension den Service Worker inspizieren.

Dort in der Konsole prüfen:

  • startet sw.js sauber?
  • fehlen importierte Module?
  • gibt es Message-Handler-Fehler?
  • gibt es Storage-Fehler?

Erwartung:

  • keine Fehler wie:

    • missing import
    • undefined global
    • unknown message type bei normalem Laden
    • storage unavailable

6. Erstes State-Handshake testen

Mit geöffneter Zielseite und geöffnetem Sidepanel prüfen:

  • werden Sessions angezeigt?
  • kommen Metriken?
  • erscheint Storage-Health?
  • erscheinen Timeline / Event Log / Advisor?

Erwartung:

  • Sidepanel bleibt nicht auf “leer”
  • mindestens Default-/Initialzustand kommt zurück
  • auch wenn noch keine echten Chatdaten gelesen werden, muss die UI stabil bleiben

Achte auf diese Bereiche:

  • Version-Badge
  • Storage health
  • Storage integrity
  • Storage schema
  • Storage writes
  • Storage tiering
  • Storage offload GC
  • Storage timeline
  • Storage advisor
  • Advisor executor

7. Negativtest: Adapter greift nicht richtig

Falls die Zielseite nicht korrekt erkannt wird, muss trotzdem Folgendes gelten:

  • Sidepanel bleibt benutzbar
  • keine komplette UI-Explosion
  • Status zeigt eher “leer / none / not-run / no recommendation”
  • nicht permanent Exceptions

Das ist wichtig, weil damit klar wird, ob das Grundsystem stabil ist, auch wenn der DOM-Adapter noch nicht perfekt sitzt.

8. Storage-Persistenz testen

Jetzt ein echter Reload-Test.

Ablauf

  1. Zielseite öffnen
  2. Sidepanel öffnen
  3. ein paar Sekunden warten
  4. Browser-Tab neu laden
  5. Sidepanel erneut öffnen bzw. offen lassen
  6. prüfen, ob Zustände wieder da sind

Erwartung:

  • Schema-/Storage-/Event-Bereiche kommen wieder hoch
  • nichts “vergisst” sofort alles
  • kein Fehler durch Rehydration, Tiering, Offload-GC oder Advisor-State

Besonders prüfen:

  • storageSchemaVersion
  • storageMigrationLog
  • storageEventLog
  • storageAdvisorExecutionStatus

9. Timeline / Event Log testen

Es sollten inzwischen Events sichtbar sein, z. B. durch:

  • Load-State
  • Schema-Upgrade
  • Writes
  • evtl. Advisor-/Tiering-/Integrity-Status

Erwartung:

  • Timeline zeigt Anzahl / letztes Event
  • Event-Log zeigt mehrere Einträge
  • kein kaputtes Rendering durch lange Texte oder fehlende Felder

10. Advisor nur lesen

Noch ohne Aktion:

Prüfen, ob im Sidepanel eine plausible Advisor-Zeile erscheint, z. B.:

  • healthy / observe
  • recommend-compaction
  • expect-tiering
  • reduce-write-pressure
  • repair-missing-offload

Erwartung:

  • Advisor ist nicht leer
  • Preview-Aktionen werden angezeigt
  • keine JS-Fehler beim Rendern

11. Safe Executor testen

Jetzt die beiden Buttons im Sidepanel prüfen:

  • Run advisor safe actions
  • Run advisor + compaction

Test A: Safe ohne Compaction

Button klicken.

Erwartung:

  • kein UI-Absturz
  • storageAdvisorExecutionStatus ändert sich
  • Timeline/Event-Log bekommt neue Einträge
  • wenn nichts auszuführen war: sauberer blocked/noop/executed-Status

Test B: Mit Compaction-Gate

Button klicken und Bestätigung akzeptieren.

Erwartung:

  • nur dann Compaction, wenn Advisor wirklich dazu rät und eine Action verfügbar ist
  • sonst sauber blockiert
  • Status muss klar sagen, was blockiert wurde und warum

12. Cooldown / Idempotenz testen

Das ist wichtig für 002o.

Ablauf

  1. Safe-Advisor einmal ausführen
  2. direkt danach nochmal denselben Button klicken

Erwartung:

  • dieselbe Aktion wird nicht stumpf nochmal ausgeführt

  • Executor-Status zeigt eher:

    • decision_already_applied
    • oder cooldown_active

Das ist einer der wichtigsten praktischen Checks.

13. Compaction-/Rollback-Pfad testen

Nur wenn im UI aktuell Compaction-Kandidaten sichtbar sind.

Prüfen

  • gibt es reclaimable Bereiche?
  • lässt sich eine Compaction auslösen?
  • erscheint Audit-Eintrag?
  • erscheint Recovery/Rollback-Zustand?
  • funktioniert Rollback sauber?

Erwartung:

  • Compaction verändert den State kontrolliert
  • Rollback bringt ihn kontrolliert zurück
  • Event-Log zeigt beide Vorgänge

14. Was du parallel offen haben solltest

Praktisch am besten 3 Fenster gleichzeitig:

  • Webseiten-DevTools-Konsole
  • Service-Worker-Konsole
  • Sidepanel

So siehst du sofort:

  • DOM-/Adapterfehler
  • Message-/Storagefehler
  • UI-Fehler

15. Fehlerbilder sauber unterscheiden

A. Sidepanel leer, aber keine Fehler

Dann kommt vermutlich nur kein brauchbarer Capture-State vom Adapter.

B. Sidepanel mit Fehlern, Service Worker Fehlerfrei

Dann ist meist sidepanel.js oder Rendering kaputt.

C. Service Worker Fehler

Dann sitzt das Problem meist in:

  • Imports
  • Message-Handler
  • Storage-State
  • neuen Statusfeldern / Schemafeldern

D. Nur echte Zielseite kaputt, aber Fixture / Grundsystem okay

Dann ist fast sicher der site-adapter.js der Engpass.

16. Minimaler Abnahmepunkt für “praktisch testbar”

Ich würde die aktuelle Version als praktisch testbar ansehen, wenn diese 6 Punkte erfüllt sind:

  1. Extension lädt ohne Fehler
  2. Sidepanel öffnet stabil
  3. GET_CAPTURE_STATE liefert stabil Antwort
  4. Service Worker wirft keine Laufzeitfehler
  5. Advisor/Timeline/Storage-Status rendern
  6. Safe-Executor lässt sich klicken, ohne das System zu zerlegen

17. Sinnvolle Dokumentation während des Testlaufs

Für jeden Befund kurz notieren:

  • Schritt
  • Erwartet
  • Ist
  • Konsole-Fehler ja/nein
  • Reproduzierbar ja/nein

Ein sehr praktisches Raster:

[PASS|FAIL] Schrittname
Expected:
Actual:
Console:
Notes:

18. Ehrliche Gesamteinschätzung

Ja, ein echter E2E-Test ist jetzt sinnvoll. Aber:

  • Das Extension-/Storage-/Advisor-System ist deutlich weiter als die Gewissheit, dass der Adapter zur echten Chatbot-Seite schon perfekt sitzt.
  • Der wahrscheinlichste Engpass im echten Feldtest ist nicht das Sidepanel, sondern das DOM-Auslesen der Zielseite.

Darum ist der beste erste Praxistest:

  1. Extension laden
  2. Sidepanel öffnen
  3. echte Zielseite aufmachen
  4. Service Worker + Seitenkonsole beobachten
  5. prüfen, ob Daten wirklich aus der Seite kommen

Wenn du willst, schreibe ich dir als Nächstes einen ultrakompakten Test-Checkbogen zum Abhaken für Chromium/Opera, den du 1:1 während des Testlaufs verwenden kannst.