Commit Graph
4 Commits
Author SHA1 Message Date
JUSNandClaude Opus 5.5 0eab2a0ee9 Worker: Einrichtungs-Codes, verschluesselte Uebergabe Handy<->PC, zweisprachige Analyse
- /code loest Einrichtungs-Codes fuer Beratungsstellen ein (Guthaben mit
  Name + Ablaufdatum, max. 10 Fehlversuche pro IP und Tag). Leeres oder
  abgelaufenes Kontingent sagt "fragen Sie bei <Stelle> nach" statt "kaufen".
- /uebergabe/<id>: Durable Object haelt nur Chiffrat (AES-GCM, Schluessel
  nur im QR-Code), loescht nach 15 Minuten, 50 Schreibvorgaenge, Rate-Limit.
  Durable Object statt KV, weil KV fehlende Schluessel zwischenspeichert.
- /demo mit auchDeutsch: deutsch analysieren (Sonnet), dann mit Haiku in die
  Zielsprache uebersetzen - PC zeigt Deutsch, Handy die Muttersprache.
- LOKAL_TEST=1 (.dev.vars) erlaubt localhost fuer Tests mit wrangler dev.
- tools/einrichtungs-code.js: neu | stand | aufladen | verlaengern.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 18:46:29 +02:00
JUSNandClaude Fable 5 b27c69c4bd Web-Demo Fix: geteilte Anschluesse blockierten den ersten Versuch
Fehler: Der anonyme Erst-Versuch war auf 1 pro IP (30 Tage) begrenzt.
Teilen sich mehrere Menschen eine Leitung (Familie, WLAN, Mobilfunk/CGNAT),
bekam der Zweite sofort 'E-Mail noetig' statt einer Analyse. Trat auch
beim Testen ueber denselben Anschluss auf.

- IP- und Anon-Zaehler jetzt TAEGLICH (Datum im Schluessel), 48h TTL
- Anonyme Erst-Analysen pro Anschluss/Tag: 3 (statt 1/30 Tage)
- IP-Gesamtlimit pro Tag: 8 (statt 3/30 Tage)
- 'Wallet'-Schutz unveraendert: globales Tagesbudget 100 + Turnstile +
  E-Mail-Hash (dauerhaft 1x/Adresse)
- Client: email_noetig markiert den Browser NICHT mehr als verbraucht
  (sonst dauerhafte Blockade ohne gelungene Analyse); localStorage-Key
  auf 'bk_demo_v2' umbenannt -> setzt falsche Testphasen-Staende zurueck

Ende-zu-Ende verifiziert: frischer Erst-Upload liefert wieder das Ergebnis.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 13:51:37 +02:00
JUSNandClaude Fable 5 ec6ec22421 Web-Demo: 2 Gratis-Analysen direkt auf der Webseite
Worker (/demo auf behoerdenklar-proxy):
- Turnstile-Verifikation serverseitig (Bot-Mauer)
- Analyse 1 anonym (1x pro IP/30 Tage), Analyse 2 nur mit E-Mail
  (SHA-256-Hash mit Pepper, dauerhaft — nie Klartext gespeichert)
- IP-Gesamtlimit 3/30 Tage, globales Tagesbudget 100 (~2,50 EUR Deckel)
- Wegwerf-Mail-Blockliste, 5-MB-Limit, CORS nur eigene Domain
- Prompt/Schema identisch zur App (ohne Antwort-Generator)

Webseite:
- demo.html im Papier-Design: Einwilligung, Upload mit Client-Downscaling
  (2000px/JPEG wie App), Ampel-Logik, Ergebnis-Karten, Warteliste-CTA
  mit vorbelegter E-Mail, gestaffelter Ablauf 1. anonym / 2. mit E-Mail
- Startseite verlinkt Demo im Hero
- Datenschutz: neuer Abschnitt 8 Gratis-Demo (Einwilligung, Turnstile,
  E-Mail-Hash), Folgeabschnitte neu nummeriert; Sitemap + /demo

Ende-zu-Ende getestet: echte Analyse (Jobcenter-Testbrief korrekt erklärt,
Ampel erkennt fruehere Absagefrist), Schummler-Szenarien (Browser-Loeschen,
doppelte E-Mail) serverseitig abgefangen. Dabei entdeckt: Anthropic-Key
war ungueltig -> erneuert (App-Analyse funktionierte wieder).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 13:06:03 +02:00
JUSNandClaude Fable 5 9dc1d8d87b Release-Vorbereitung: Proxy, Kostenoptimierung, Freemium, Store-Assets
- Backend-Proxy (Cloudflare Worker in proxy/): API-Key serverseitig,
  Modell-Whitelist, max_tokens-Deckel, Tageslimits pro Gerät und IP
- Modell-Split: Analyse auf Sonnet 5, Übersetzung/Antwort auf Haiku 4.5
- Bild-Downscaling auf 2000px vor dem Upload (ScanScreen)
- Expo SDK 56 -> 57 Upgrade
- Freemium: 3 Gratis-Analysen mit lokalem Zähler und Paywall-Hinweis
- Einstellungen: API-Key-Feld nur noch im Dev-Modus (NUTZT_PROXY)
- Build-Setup: Bundle-IDs, eas.json, Splash-Screen-Plugin
- Tests: jest-expo + 17 Tests für die Ampel-/Fristlogik
- Rechtliches: Datenschutzerklärung (Entwurf), Webseite (webseite/,
  live auf behoerdenklar.pages.dev), Store-Texte (store/)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 14:14:00 +02:00