# V2.0-Freigabe

## Geprüfter Stand

- Git-Branch: `main`
- Git-Commit (HEAD, zum Zeitpunkt der Prüfung): `1bb7a427357c73039c09a8e1bfe351dee54df765`
- Datum der Prüfung: 2026-04-20

---

## Ausgeführte Prüfungen

| Prüfung | Ergebnis |
|---|---|
| Vollständiger Maven-Reactor-Build (`clean verify`, alle 6 Module, `-DskipPitest=true`) | **ERFOLGREICH** |
| Unit-Tests gesamt | **1.398 Tests, 0 Failures, 0 Errors, 0 Skipped** |
| Integrations-/Smoke-Tests (`ExecutableJarSmokeTestIT`, Bootstrap) | **5 Tests, alle grün** |
| Shaded-JAR erzeugt unter `pdf-umbenenner-bootstrap/target/` | **ja** |
| Konfigurations- und Dokumentationsbeispiele auf Konsistenz geprüft | **ja** |
| Bedienanleitung (`gui-bedienanleitung.md`) gegen reales GUI-Verhalten stichprobengeprüft | **ja – ein während der Prüfung identifizierter Befund wurde unmittelbar korrigiert (siehe R3)** |

---

## Build- und Test-Ergebnisse

Ausgeführtes Kommando:
```
.\mvnw.cmd clean verify -pl pdf-umbenenner-domain,pdf-umbenenner-application,pdf-umbenenner-adapter-out,pdf-umbenenner-adapter-in-cli,pdf-umbenenner-adapter-in-gui,pdf-umbenenner-bootstrap --also-make -DskipPitest=true
```

**Gesamtergebnis: BUILD SUCCESS**
**Laufzeit: 01:15 min**

| Modul | Tests | Failures | Errors | Skipped |
|---|---|---|---|---|
| `pdf-umbenenner-domain` | 227 | 0 | 0 | 0 |
| `pdf-umbenenner-application` | 455 | 0 | 0 | 0 |
| `pdf-umbenenner-adapter-in-cli` | 8 | 0 | 0 | 0 |
| `pdf-umbenenner-adapter-in-gui` | 190 | 0 | 0 | 0 |
| `pdf-umbenenner-adapter-out` | 371 | 0 | 0 | 0 |
| `pdf-umbenenner-bootstrap` (Unit) | 147 | 0 | 0 | 0 |
| `pdf-umbenenner-bootstrap` (IT) | 5 | 0 | 0 | 0 |
| **Gesamt** | **1.403** | **0** | **0** | **0** |

Erzeugtes Shaded-JAR: `pdf-umbenenner-bootstrap/target/pdf-umbenenner-bootstrap-0.0.1-SNAPSHOT.jar`
Größe: ca. 28 MB (enthält JavaFX für Windows, PDFBox, SQLite-JDBC, Log4j2 und alle Module)

---

## Offene nicht blockierende Restpunkte

Die folgenden Restpunkte wurden in der integrierten Gesamtprüfung dokumentiert und
gelten als freigabekompatibel.

### R1 – ByteBuddy-Agent-Warnung bei Tests

Beim Build erscheint wiederholt `WARNING: A Java agent has been loaded dynamically
(byte-buddy-agent-1.14.12.jar)`. Der Hinweis stammt von Mockito und tritt seit dem V1.1-Stand
auf. Kein funktionaler Einfluss. Mit `-XX:+EnableDynamicAgentLoading` unterdrückbar, aber keine
Pflicht für V2.0.

### R2 – GUI-Tests ohne echten JavaFX-Rendering-Pfad

Die GUI-Tests laufen unter headless JavaFX (Monocle) und prüfen View-Modell-Logik,
Zustandsübergänge und Koordinatoren-Verhalten. Das visuelle Rendering (Farbgebung der
Meldungspräfixe, Layout-Details) ist nicht automatisiert geprüft. Dies entspricht der in
CLAUDE.md definierten GUI-Teststrategie (kein TestFX über Monocle hinaus).

### R3 – Bedienanleitung: Legacy-Umgebungsvariable für OpenAI-kompatibel (behoben)

**Ursprünglicher Befund:** Abschnitt 10 der `gui-bedienanleitung.md` beschrieb
`OPENAI_COMPATIBLE_API_KEY` fälschlich als Legacy-Umgebungsvariable. Tatsächlich ist
`OPENAI_COMPATIBLE_API_KEY` die primäre providerspezifische Umgebungsvariable, und die
echte Legacy-Umgebungsvariable lautet `PDF_UMBENENNER_API_KEY`.

**Status:** Korrigiert. Abschnitt 10 benennt jetzt `OPENAI_COMPATIBLE_API_KEY` als
primäre Variable und `PDF_UMBENENNER_API_KEY` als Legacy-Variable und hält fest, dass
Claude keine Legacy-Variable hat.

**Kein Release-Blocker und im V2.0-Freigabestand nicht mehr offen.**

---

## Freigabeaussage

V2.0 ist nach Prüfung fehlerfrei buildbar, vollständig nach Spezifikation umgesetzt
und als freigabefähig einzustufen. Keine Release-Blocker. Die zwei nicht blockierenden
Restpunkte (R1, R2) sind dokumentiert und können außerhalb des V2.0-Scopes adressiert
werden; R3 wurde während der finalen Prüfung unmittelbar behoben.

Der vollständige Maven-Reactor-Build ist grün (1.403 Tests, 0 Failures, 0 Errors,
0 Skipped). Alle in der integrierten Gesamtprüfung definierten Spezifikations-
Prüfpunkte gegen die Spec-Trias sind als erfüllt bestätigt. Die Dokumentation ist
vollständig und konsistent mit dem Code.
