Dokumentation: Seiten auswählen

Adresszuordnung: Vertrag und Abnahmestand

Issue #561, Ausgangspunkt 174a3fc0c5ab248538dcb6176c3b31eb7a98610d, 5. September 2026.

Reproduzierter Kundendefekt

Der PM prüfte „Hannover, Niedersachsen, Deutschland“ über die Startseite. Nominatim beschränkt die Suche korrekt auf Österreich und liefert keinen Treffer. Bisher wurde trotzdem ein leerer Report gespeichert, mit falschem Regionsdefault „Niederösterreich“, Permalink und PDF. Der Umsetzungs-Audit bestätigte den Pfad im Builder, in der Persistenzroute und im Regionsmapping. Report-IDs/URLs sind Bearer-Capabilities und stehen nicht in diesem Nachweis.

Vertrag

  • 422 address_not_found: kein AT-Adresstreffer; Eingabe korrigieren.
  • 503 geocoding_unavailable: Provider-/HTTP-/Timeout-/Antwortfehler; später erneut versuchen, keine Behauptung einer falschen Adresse.
  • Kein nachgelagerter Quellen-/Szenarioaufruf und keine Reportpersistenz bei beiden Fehlern. Keine neue Report-ID und kein Exporterfolg in MCP.
  • Gefundene AT-Adresse mit einzelnen Datenlücken bleibt gültiger Teilreport.
  • Unbekanntes Bundesland: at-unknown; historische Reports ohne Koordinate zeigen die Region in Web/PDF neutral. Speicherung/JSON-Snapshot unverändert.
  • Die bestehenden IP-/Konto-/Key-Tageslimits bleiben Anfragezähler vor dem Geocoder, einschließlich Fehlern. PM-Präzisierung vom 5. September: keine Erfolgsquotenarchitektur, kein neuer Versuchsbucket, keine Rückbuchung.

Lokale Prüfung

  • Node 24.19.0: acht neue/angepasste Regressionen zuerst rot; No-Hit, Providerfehler/Timeout, neutraler Regionsdefault und UI-Rückmeldungen.
  • PM-Nachschärfung: vier Länderidentitätsfälle zuerst rot. Fehlende/leere/ ungültige Länderkennung gilt als Providerfehler; ausdrücklich Nicht-AT bleibt No-Hit. Gültige AT-Identität bleibt Voraussetzung.
  • Vollständige Vitest-Suite: 3.632 bestanden, 43 bewusst übersprungen (284 Testdateien bestanden, sieben übersprungen). Inklusive v1/Legacy, Keine-Speicherung, unverändertem Anfrageguard, MCP-Toolfehlern und historischer HTML-Regionanzeige.
  • Typecheck, ESLint, Content-/SEO-Audit und PDF-Layout-Regressionsharness bestanden. Bestehende Layerausfälle bleiben als degraded erhalten.
  • Lokaler Produktionsbuild erfolgreich. Er verwendet eine synthetische, nicht erreichbare DB-URL ausschließlich zur Initialisierung, keinen echten Datenbankzugang; daraus folgt keine Daten-/Persistenzabnahme.
  • Vier Playwright-Prüfungen gegen den gebauten lokalen Server bestanden: Desktop-Startseite und mobile Direktseite jeweils No-Hit → Korrektur → Providerstörung → erfolgreicher synthetischer Report mit fehlendem Klimadatenlayer. Zusätzlich bestehende 429-/Doppelabsende-Regressionsfälle.
  • Offline-PDF aus ausdrücklich synthetischem historischen Teilreport: drei Seiten gerendert und visuell geprüft; Quellen-Metadaten zeigen „Region: Nicht bestimmt“. Textauszug enthält keine NÖ-Regionsbehauptung. Der Eingangsdatensatz bleibt unverändert. Dies ist keine PDF/UA-Abnahme.

Die privaten lokalen Bild-/PDF-Belege enthalten nur öffentliche Testadressen oder ausdrücklich synthetische Daten, keine echten Report-Capabilities. Keine neuen Produktionsreports wurden in dieser Umsetzung erzeugt.

CI, Preview und Produktion

Runtime-Prüfstand: fab567e4c726b1220782d7c0a9fa3f5863dd373e, READY-Preview dpl_6aUvALxCw5Yi3z4GS6B3y8UVAyw7.

  • Die reale Startseitenanfrage für Hannover führt zum Korrekturhinweis ohne Permalink. GET /api/v1/report bestätigt 422 address_not_found, Cache-Control: private, no-store und den passenden X-Deploy-Commit.
  • Die Korrektur auf die öffentliche Schuladresse „Schulgasse 2, 2230 Gänserndorf“ erzeugt genau einen Preview-Testreport. Koordinate, Region Niederösterreich, DKM-Parzelle 1517/7 und Klimaprofil sind vorhanden; 25 degraded-Einträge bleiben transparent. Die Adressfehlermeldung ist weg.
  • Derselbe neue Report wurde anschließend ohne Neuerstellung als gespeichertes JSON, HTML und PDF mit jeweils HTTP 200 rückgelesen. Das private JSON hat 17.463 Byte, SHA-256 1ef07752b34e4b3b9a0726b9078515ebed7c5112dfaaf20a31ed6049e9cc337e; das PDF 57.920 Byte, SHA-256 eeb3ba352198ac8ba9827a42c59865fd0003825f5b03dba20fb82f872ce5e902.
  • Zwei frühere lokale Audit-Fixtures sind nicht gespeichert und liefern in dieser Preview korrekt report_not_found; sie sind kein Persistenzbeleg.
  • Die synthetische historische PDF-Neutralitätsprobe ist vom echten Erfolgsreport getrennt: 26.199 Byte, SHA-256 fc969d1827573d1c638c9e0983b8dbf91f7ac3e5a7ac8a003111c3a829a3ed3c. Die Browserprüfung ist keine zusätzliche Karten- oder PDF/UA-Abnahme.

Die abschließenden, commitgebundenen CI-/Preview-, PM-, Merge-/Main-CI- und Produktionsnachweise werden in PR #565 und im Auslieferungsverlauf von #561 geführt. Der dortige Abschluss enthält den produktiven Commit samt Deployment und lesendem Live-Readback; dieser Runtime-Nachweis allein behauptet keine Produktionsabnahme.

Getrennte Folgearbeit

PV-Annahmen #562, Startseitenversprechen #563 und Nahversorgungstext #564 sind dokumentiert und gehören nicht zu diesem Fix. Fachentscheidungen bleiben #291; PDF/UA #333 und mobiler PDF-Button #557 bleiben offen. #558 wird nicht neu geöffnet. Kein Codex-Security-Scan und keine Produktionsreports umgeschrieben.