← Übersicht

F08 Wetell-Adapterwahl und Session-Fallback deterministisch machen

Wetell-Adapterwahl und Session-Fallback deterministisch machen

Finding: F08 Priorität: P1 Status: IN UMSETZUNG Stand: 2026-07-16

Problembeschreibung

  • Fallback merkt den erfolgreichen Login-Adapter nicht; Discover/Download probieren Primary/Fallback (FallbackWetellSourceAdapter.php:47/71).
  • Fallback kann ohne eigenen Login laufen.
  • Headless-Login nutzt Methoden-Credentials, Discover Constructor-Credentials (HeadlessWetellSourceAdapter.php:33/44).

Ziel

Pro Lauf ist genau ein Adapter mit einer Identität/Session aktiv; Fallback nur nach klassifiziertem Fehler.

Aufgabe

  1. Login liefert Session-Handle.
  2. Discover/Download nur aktive Session.
  3. Fallback nur bei technischen Fehlern; Credentials einmal injizieren und Matrix testen.

Scope

  • In Scope: alle unter Code Blast genannten Komponenten, Daten, Verträge und Tests.
  • Out of Scope: neue Features und produktive externe Mutation ohne separate Freigabe.

Harte Spezifikation

  • MUST: Discover/Download nach Login derselben Instanz.
  • MUST: keine Credentialmischung.
  • MUST: leere Liste ist Ergebnis.
  • MUST: Authfehler nicht verschluckt.

Harte Quality Gateways

  • 2x2x2 Session-Matrix mit exakten Calls.
  • Primary leer folgt expliziter Policy.
  • Credentialmischung typseitig unmöglich.
  • Fehlercodes bleiben erhalten.
  • Global: PHPStan Level 8 und PHPUnit liefern 0 Fehler; kein Ignore oder Baseline.

Code Blast

  • Direkt: Fallback/Headless/HTTP-Adapter, Port, Use Cases, CLI.
  • Netz: Anzahl Logins/Sessionverhalten.

Code-Impact-Analyse

  • Deterministische Sessions.
  • Portsignatur migriert alle Adapter gemeinsam.

Risikoanalyse

| Risiko | Eintritt | Schaden | |---|---|---| | Nicht eingeloggter Adapter | hoch | hoch | | Authfehler verschleiert | mittel | hoch |

Strategie zur Risikonullierung

  1. Prevent: Session-Handle.
  2. Detect: Callsequence.
  3. Contain: klassifizierter Fallback.
  4. Recover: eigener Login.

Abschlussnachweis

Erledigt erst, wenn alle MUST-Spezifikationen implementiert, alle Gateways mit unveränderlicher Evidenz grün und Restrisiken technisch ausgeschlossen oder ausdrücklich fachlich akzeptiert sind.

Supervisionsfortschritt 2026-07-16

  • Fallback bindet Login, Discovery und Download an denselben aktiven Adapter; PHP-Contracttests gruen. Reale Anmeldung steht mangels wetell.json aus.

Supervisionsfortschritt 2026-07-16 (Session-Vertrag)

  • `login()` liefert jetzt einen opaken [WetellSessionHandle](/code/196); Primary, Discovery und Download bleiben an derselben aktiven Adapterinstanz.
  • [WetellAuthenticationException](/code/197) trennt Authentifizierungsfehler von technischen Fehlern; Authfehler loesen nachweislich keinen Fallback aus.
  • Aktuelles Gateway: 67 PHPUnit-Tests/240 Assertions, PHPStan Level 8, 9 Node-Tests und LOC gruen. Die reale Wetell-Session bleibt offen.

Frühere Versionen

VersionZeitpunktOperation
61 2026-07-16 20:24:26.042893+02 UPDATE
54 2026-07-16 20:21:22.332724+02 UPDATE
39 2026-07-16 19:53:19.687431+02 UPDATE