Files
pdf-umbenenner/docs/specs/V2_6_-_Spezifikation.md
T
marcus 5d0e2c90bd Fix Issue #13: Warnschwelle für max.title.length auf 10–39 angehoben
Neue Warnschwellen: 10–39 Warnung (Absender benötigt 15–20 Zeichen),
40–99 unkritisch, 100–120 Warnung (verschlüsselte Volumes). Tests,
Validator-Implementierungen, Smoke-Tests und Docs konsistent angepasst.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 08:11:36 +02:00

4.5 KiB
Raw Blame History

V2.6 Titellänge parametrisierbar machen

Status: Entwurf
Erstellt: 2026-04-22
Autor: Marcus (mit Claude als Mentor)


Ziel

Der maximale Basistitel für KI-generierte PDF-Namen wird nicht mehr hardcodiert, sondern ist über die Konfigurationsdatei steuerbar. Alle bisherigen Magic Numbers (20 und 60 Zeichen) werden durch den konfigurierten Wert ersetzt.


Hintergrund

Bisheriger Zustand

  • Titellänge war mit 20 Zeichen im Prompt und 60 Zeichen in der Validierung hardcodiert
  • Kein zentraler Konfigurationsparameter, Werte über ~20 Dateien verstreut
  • 60-Zeichen-Limit wurde im Rahmen des Produkttests als pragmatischer Zwischenwert eingeführt

Motivation

  • Verschiedene Einsatzszenarien erfordern unterschiedliche Titellängen
  • Dateinamenlimits je nach Zielsystem unterschiedlich (siehe Recherche unten)

Recherchierte Dateinamenlimits (nur Dateiname, ohne Pfad)

System Limit
Windows 10 / Windows Server 2022 (NTFS) 255 Zeichen
Synology NAS Btrfs (unverschlüsselt) 255 Zeichen
Synology NAS Btrfs (verschlüsselt) ~143 Zeichen

Hinweis: Der generierte Dateiname hat das Format YYYY-MM-DD - <Titel>.pdf, was bereits 18 Zeichen Overhead bedeutet (Datum + Trennzeichen + Dateiendung). Das sicherste Maximum für verschlüsselte Synology-Volumes ist daher 120 Zeichen für den Basistitel (143 18 = 125, mit Puffer auf 120 gerundet).


Fachliche Anforderungen

Neuer Konfigurationsparameter

  • Name: ai.title.max.length (finale Benennung obliegt der Implementierung)
  • Typ: positive Ganzzahl
  • Defaultwert: 60 (bisheriger Wert bleibt erhalten, kein Breaking Change)
  • Speicherort: .properties-Konfigurationsdatei

Validierungsregeln

Wert Typ Verhalten
Kein Wert / leer Fehler Pflichtfeld, Start wird abgebrochen
Keine Ganzzahl (z. B. „abc", „1.5") Fehler Ungültiger Typ, Start wird abgebrochen
< 1 Fehler Wert muss positiv sein, Start wird abgebrochen
19 Fehler Minimum ist 10 Zeichen, Start wird abgebrochen
1039 Warnung „Titellänge unter 40 Zeichen KI-Ergebnisse können unvollständig sein, da Absender allein bereits 1520 Zeichen benötigt"
4099 OK Normaler Betrieb, keine Meldung
100120 Warnung „Hohe Titellänge Kompatibilität mit verschlüsselten Volumes prüfen"
> 120 Fehler Überschreitet sicheres Limit für verschlüsselte Synology-Volumes, Start wird abgebrochen

GUI Konfigurationseditor

  • Neues Texteingabefeld im Bereich „Verarbeitungslimits"
  • Beschriftung: „Max. Titellänge (Zeichen)"
  • Validierung erfolgt beim Speichern ungültige Werte werden nicht gespeichert
  • Warnungen und Fehlermeldungen erscheinen im Meldungsbereich (unten in der GUI)
  • Warnungen blockieren das Speichern nicht, Fehler hingegen schon

Verarbeitung / Backend

  • Alle hardcodierten 20- und 60-Zeichen-Limits werden durch den konfigurierten Wert ersetzt
  • Keine Magic Numbers mehr im Produktionscode
  • Der Wert wird beim Start geladen, validiert und an alle betroffenen Komponenten weitergereicht
  • Betroffen sind mindestens:
    • AiResponseValidator
    • TargetFilenameBuildingService
    • Prompt-Template (Hinweistext an die KI)
    • JavaDoc aller betroffenen Klassen

Prompt-Template

  • Der Hinweis auf die Zeichenbegrenzung im Prompt-Template (config/prompts/template.txt) wird ebenfalls dynamisch mit dem konfigurierten Wert befüllt
  • Hinweis: Das Prompt-Template liegt außerhalb des JARs und wird zur Laufzeit gelesen. Die Implementierung muss sicherstellen, dass der konfigurierte Wert zur Laufzeit in den Prompt eingesetzt wird (z. B. per Platzhalter-Ersetzung).

Nicht in V2.6 enthalten

  • Automatisches Kürzen von zu langen KI-Titeln
  • Pfadlängen-Validierung (Gesamtpfad inkl. Ordner)
  • Unterschiedliche Limits je nach Zielsystem (nur ein globaler Wert)

Abnahmekriterien

  • Neuer Parameter ist in der .properties-Datei konfigurierbar
  • Defaultwert 60 ist abwärtskompatibel (bestehende Configs ohne den Parameter funktionieren)
  • Alle Validierungsregeln greifen korrekt (Fehler blockieren Start/Speichern, Warnungen nicht)
  • GUI zeigt das neue Feld im richtigen Bereich
  • Meldungsbereich zeigt passende Warn- und Fehlertexte
  • Keine hardcodierten 20- oder 60-Zeichen-Limits mehr im Produktionscode
  • Prompt-Template enthält den konfigurierten Wert zur Laufzeit
  • Alle bestehenden Tests werden angepasst
  • mvn clean verify ist grün