diff --git a/README.md b/README.md index 0aa4be9..a6b6526 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,38 @@ npm run dev Migrationen und Seeds laufen beim Serverstart automatisch. Erststart-Passwörter über `SEED_TILL_PASSWORD` / `SEED_LEA_PASSWORD`. +## Funktionen (Kurzüberblick) +- **Modi:** Bereinigen (Screenshot säubern/freistellen/formatieren), Umwandeln (ein Bild + Text, + z. B. Foto → Ölgemälde), Kombinieren (mehrere Bilder + Text), Neu erzeugen (nur Text). +- **Formate:** feste cm-/DIN-/Screen-Formate **und frei definierbare** — Schlüssel `WxH` (z. B. + `25x35`) oder `sticker` (`sticker5` = 5×5 cm). Parsing in `src/lib/format.ts`, keine Migration nötig. +- **Dateiformat:** PNG (verlustfrei, Transparenz) oder JPG (klein, Picdrop-freundlich). Global über + `settings.output_ext`, pro Rezept via `recipes.output_ext`, pro Umwandlung im Studio. JPG nur ohne Alpha. +- **Auslieferung:** Picdrop (SFTP/FTPS) + beliebige Zusatzziele; NAS/Backup-Ziele; optionaler + `.md`-Metadaten-Beileger **pro Ziel** schaltbar. Nicht-transparente Ergebnisse gehen als JPG an Picdrop. +- **Bibliothek:** Ordner, Farbmarkierungen, Prompt-Anzeige, Vorher/Nachher, Vollbild + „In Fotos sichern". +- **Rechte/Datenschutz:** Sichtbarkeit (eigene/alle), anonyme Generierungen, private Sessions, NSFW-Gate. +- **Telegram-Bot** (grammY-Webhook) als vollwertiger Website-Ersatz. **API-Token** (`Bearer`) für `/api/*`. +- **Admin:** Key/Picdrop/Modelle/Nutzer/Kostendeckel/Presets/Speicherverwaltung, Picdrop-Diagnose. + +## Datenmodell / Migrationen +Nummerierte SQL in `migrations/`, beim Start automatisch (kein ORM-Push). Wichtige Spalten: +`items.has_alpha`, `jobs.status` (inkl. `failed`), `jobs.finished_at`, +`settings.output_ext` / `recipes.output_ext`, `settings.*_metadata_sidecar`, `delivery_targets.*`. + +## Stolpersteine & Lösungen (Learnings) +- **Picdrop zeigt große PNGs nicht:** Ergebnisse waren 12–32 MB PNG; Picdrop ist ein Foto-Proofing-Tool + und erwartet handliche JPGs. Lösung: nicht-transparente Ergebnisse als JPG ausliefern (`src/lib/delivery.ts`, + `deliverableBuffer`) + wählbares Ausgabeformat. Die Dateien lagen dabei **korrekt** per SFTP in `/POSTER LEA`. +- **„Unbekanntes Format: sticker5":** Seed legte ein Rezept mit Formatschlüssel `sticker5` an, den der + Resolver nicht kannte → jeder Lauf schlug fehl. Lösung: generisches Parsen von `sticker`/`WxH`. +- **Auftrag trotz Fehler grün:** `jobs.status` kannte kein `failed`; alle Positionen fehlgeschlagen wurde + trotzdem `done`. Lösung: Status `failed`, wenn `done=0 && failed>0` (`src/worker.ts` `maybeComplete`). +- **Doppelte Datums-/UUID-Namen:** `\b`-Wortgrenzen greifen nicht an Unterstrichen. Lösung: `\b` entfernt, + Datum/UUID/Hex global ersetzt (`src/lib/pipeline.ts` `cleanMotif`). +- **Content-Type bei gemischten PNG/JPG-Ergebnissen:** `file.ts` snifft jetzt die Magic Bytes. +- **`.tmp-`-Reste auf Picdrop:** früher Temp-Rename-Bug; `cleanupTmp` + Admin-Knopf „Reste aufräumen". + ## Status -Im Aufbau. Reihenfolge und Nachweise siehe `CLAUDE.md`. Anforderungen im Handover-Paket +Reihenfolge und Nachweise siehe `CLAUDE.md`. Anforderungen im Handover-Paket (`Imagetool-Lea/00..07`). Führend: `01-anforderungen.md`. diff --git a/src/pages/changelog.astro b/src/pages/changelog.astro index 2016253..c8c7ae9 100644 --- a/src/pages/changelog.astro +++ b/src/pages/changelog.astro @@ -9,6 +9,21 @@ import Base from '../layouts/Base.astro';

Was in Klarbild neu ist. Neueste Änderungen oben.

+
+
24.07.2026

Picdrop-Auslieferung, JPG, eigene Formate & fehlgeschlagene Aufträge

+
    +
  • Picdrop bekommt jetzt JPG statt riesiger PNGs: Ergebnisse ohne Transparenz werden als handliches JPG (q92) ausgeliefert — ein 30×40-Poster schrumpft von ~25 MB auf ~2 MB. Freigestellte Motive (mit Transparenz) bleiben PNG.
  • +
  • Dateiformat wählbar: global in den Admin-Einstellungen (Standard-Dateiformat PNG/JPG) und pro Umwandlung im Studio (Standard / PNG / JPG). JPG nur ohne Transparenz.
  • +
  • Eigene Formate: im Studio „Eigenes Maß (cm)" — einfach z. B. 25x35 eintippen; für Sticker reicht eine Zahl (5 = 5×5 cm). Presets speichern das mit.
  • +
  • Fehlgeschlagene Aufträge sind jetzt rot in der Übersicht (vorher grün) und tragen den Grund. Behoben: das Preset „Sticker 5 cm" lief ins Leere („Unbekanntes Format: sticker5").
  • +
  • Endzeit im Auftrag: Warteschlange und Auftrag zeigen, wann er fertig wurde.
  • +
  • Saubere Dateinamen: keine doppelten Datums-/UUID-Ketten mehr im Namen.
  • +
  • Metadaten-Beileger pro Ziel: für Picdrop, NAS und jedes Zusatzziel getrennt schaltbar, ob die .md-Datei mitgeschickt wird.
  • +
  • Schnelleres Laden: Vollbild/Vorschau kommt als kleines JPG (~5× kleiner), Kacheln laden zuerst ein Thumbnail; fehlende Thumbnails per Knopf nachgenerierbar.
  • +
  • Picdrop-Werkzeuge im Admin: „Ordner anzeigen" (was liegt per SFTP wo) und „Reste aufräumen" (liegengebliebene .tmp-Dateien entfernen).
  • +
+
+
23.07.2026

Kombinieren, Erzeugen & zweite Sicherung