Setzt die Reihenfolge aus docs/EXTRAKTION.md um. **Qualitätssignal statt Vermutung.** `articleQuality()` unterscheidet vier Zustände: ok · unextracted (kein Text, aber keine Wand → Server-Versuch lohnt) · blocked (Quelle hat die Zustimmungsseite geliefert → Server kann das prinzipiell nicht lösen) · thin. Vorher beantwortete eine einzige Funktion zwei verschiedene Fragen und war deshalb an beiden Aufrufstellen ein Stück falsch — die eigenen Tests haben das aufgedeckt. Jetzt getrennt: `titleIsJustHost` für „ist der Titel unbrauchbar", `articleQuality` für „was ist mit dem Artikel los". **Neu extrahieren.** Der Web-Client emittiert jetzt `ArticleEnriched` — einzeln im Reader, als Stapel in der Liste („N ohne Text neu holen", seriell, weil jeder Versuch ein Fetch auf eine fremde Seite ist). Das Event lag samt nicht-destruktivem Reducer schon im Schema, wurde aber nur von Native genutzt. Kein Schema-Bump nötig. **Wand-Erkennung ohne Raten.** `redirectedToWall()` prüft das Redirect-Ziel: wer eine Artikel-URL anfragt und auf /sonstiges/zustimmung/ landet, hat keinen Artikel bekommen — unabhängig von der Wortzahl. Die alte Schwelle (300 Wörter) lag bei Golem mit 254 knapp richtig, hätte eine ausführlichere Consent-Seite aber durchgelassen. Dazu ein Metadaten-Fallback: hinter der Wand wenigstens og:title/og:description retten, damit die Karte nicht „golem.de" heisst. **Browser-Erweiterung** (apps/extension, MV3, Chrome + Firefox). Ein Klick speichert die gerenderte Seite mitsamt Sitzung — der einzige Weg an harte Wände. Nutzt denselben /lese-liste/add/receive-Transport wie das Bookmarklet, damit es einen gepflegten Eingang gibt statt zweier. Bewusst ohne API-Schlüssel, ohne dauerhafte Leseerlaubnis (activeTab), ohne Telemetrie; ein check.mjs wacht darüber, dass die Berechtigungen nicht stillschweigend wachsen. **Und ein ehrlicheres Schild.** Auf den Karten stand bisher „Cookie-Wand" auch dort, wo gar keine gemeldet war — genau das zeigte der Screenshot vom 27.07. Jetzt „Quelle blockiert" vs. „Ohne Text", mit je einer Aktion, die zum Zustand passt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
7.4 KiB
128x128px
7.4 KiB
128x128px