mirror of
https://github.com/Terranom674/Piwigo_Bratonien_Tools.git
synced 2026-09-19 22:14:33 +00:00
112 lines
6.1 KiB
Markdown
112 lines
6.1 KiB
Markdown
# HANDOFF – Piwigo / WebDAV Cache-Worker – 2026-09-03
|
||
|
||
## Warum hier gestoppt wurde
|
||
|
||
Die aktuelle Cache-Worker-Entwicklung ist in einen Architektur-/Debugging-Kreis geraten. Der beobachtete produktive Zustand ist eindeutig falsch: Nach dem Leeren des Bildcaches meldet der manuelle Cache-Aufbau praktisch sofort "fertig", obwohl der eigentliche Piwigo-Bildcache nicht aufgebaut wurde. Weitere Patchversuche an Anzeige, Statusaggregation oder Legacy-Worker-Zählung würden den Fehler nur weiter überdecken.
|
||
|
||
Ab hier **nicht weiterpatchen**, bevor der reale Ausführungspfad von Button bis Piwigo-Derivaterzeugung vollständig nachvollzogen ist.
|
||
|
||
## Gesicherte Architekturvorgaben
|
||
|
||
- Nextcloud ist die autoritative Quelle der Originalbilder.
|
||
- Piwigo arbeitet produktiv mit einem Shadow-Tree und 1x1-Placeholdern.
|
||
- Der Worker darf Piwigo nicht nachbauen und selbst keine Derivate rendern.
|
||
- Richtiger Ablauf: Worker erkennt Arbeit -> Original temporär materialisieren -> Piwigo nativen Derivatpfad aufrufen -> Ergebnis prüfen -> Original wieder entfernen / Placeholder restaurieren.
|
||
- Piwigo allein bestimmt Dimensionen, Crop, Sharpening, Wasserzeichen, Qualität, Format und Cachepfad.
|
||
- On-Demand bleibt Fallback.
|
||
- Materialisierung erfolgt batchweise, Standard 10 Originale pro Batch.
|
||
- Stage 1 vor Stage 2; neue Sync-Arbeit darf Stage 2 zwischen Batches priorisieren.
|
||
- Connector/Shadow-Tree bleibt Wahrheit darüber, welche Quellen existieren.
|
||
|
||
## Neuer Quellenindex – Konzept weiterhin sinnvoll
|
||
|
||
Die Trennung des Worker-Entscheidungszustands vom Piwigo-Cache ist weiterhin sinnvoll:
|
||
|
||
- eigener kleiner Quellenindex je WebDAV-Verbindung
|
||
- Identität primär über `fileid`, Fallback Root/Pfad
|
||
- Vergleich über `etag`, Dateigröße, MIME/Format, Pfad, Breite/Höhe
|
||
- Quelle neu/geändert -> Worker darf Piwigo beauftragen
|
||
- Quelle unverändert -> normaler periodischer Lauf tut nichts
|
||
- gelöschte Quelle -> beim Abgleich aus Worker-Index entfernen; eigentliche Quellenentfernung bleibt Connector/Shadow-Tree-Aufgabe
|
||
- manueller Full-Rebuild darf den Quellenindex bewusst ignorieren und alle aktuellen Quellen erneut an Piwigo reichen
|
||
|
||
Datei dafür aktuell:
|
||
`include/webdav_source_index.inc.php`
|
||
|
||
## Aktueller problematischer Stand
|
||
|
||
### Version
|
||
|
||
Aktuell zuletzt auf `0.9.7.1.16` erhöht.
|
||
|
||
### Relevante Dateien
|
||
|
||
- `runtime/lib/webdav-cache-warmup.php`
|
||
- `runtime/webdav-warmup-dispatch.php`
|
||
- `include/webdav_source_index.inc.php`
|
||
- `include/webdav_warmup_settings.inc.php`
|
||
- `main-cache-build.php`
|
||
- `main-cache-status.php`
|
||
- `tools/image_cache.inc.php`
|
||
- `template/admin.tpl`
|
||
- `include/tool_registry.inc.php`
|
||
|
||
### Letzte Architekturänderungen
|
||
|
||
1. Legacy `main-cache-build.php` zählt WebDAV-Bilder nicht mehr als normale lokale Cachearbeit.
|
||
2. Eigener WebDAV-Quellenindex wurde eingeführt.
|
||
3. Warmup-Auswahl wurde auf diesen Quellenindex umgestellt.
|
||
4. Kombinierter Admin-Button startet lokalen Piwigo-Teil plus WebDAV-Rebuild.
|
||
5. Statusanzeige wurde zusammengeführt.
|
||
6. Bei reiner WebDAV-Installation sollte der lokale Legacy-Worker gar nicht mehr gestartet werden.
|
||
|
||
Trotzdem beobachtet der Nutzer nach Cache-Leeren weiterhin einen praktisch sofort fertigen Aufbau. Das beweist: **Der tatsächliche WebDAV-Rebuild-Pfad erzeugt die erwarteten Piwigo-Derivate nicht bzw. läuft nicht so, wie die Architektur es annimmt.**
|
||
|
||
## Wichtige letzte Commits
|
||
|
||
- `ac6353b050cdf30db79ab20716e66e6a6c841abb` – eigener WebDAV-Quellenindex
|
||
- `6783974c7dfab9d11a0f1e43419de84e92141fd5` – Warmup auf Quellenindex umgestellt
|
||
- `9f80c4aa974da01d606292c479487bce13b403fa` – Quelle erst nach beiden Stufen vollständig
|
||
- `030d0c1be7ef8cafdab3f3d46e01ec90d5fd3bdc` – kombinierte Statusanzeige
|
||
- `e831301650ee2a80c969e6c9b783d37a3c4f593d` – Syntaxkorrektur Status
|
||
- `479cdbc4734605db3861908286426c76468d12a3` – Quellenindex-Baseline blockiert Aktivierung nicht mehr
|
||
- `116b710d5d35311eeae261e5ae3cf405c5f51ce3` – Legacy-Worker bei reiner WebDAV-Installation nicht mehr starten
|
||
- `81e0a9e185a14c08230b4f8fa0f36809c5b2b9a7` – Version 0.9.7.1.16
|
||
|
||
## NICHT weiter tun
|
||
|
||
- Keine weiteren UI-/Statuspatches, bevor der echte Workerpfad bewiesen ist.
|
||
- Nicht wieder Cache-Dateiexistenz als Quelle für "neu/geändert" verwenden.
|
||
- Nicht den Placeholder selbst rendern.
|
||
- Nicht den Legacy-Full-Cache-Builder für WebDAV reaktivieren.
|
||
- Nicht weiter an Symptomen wie 45-Sekunden-Stall, "übersprungen" oder Prozentanzeige herumoptimieren.
|
||
|
||
## Nächster Einstieg – zwingend
|
||
|
||
Der nächste Chat/Entwickler soll **zuerst den tatsächlichen Rebuild-Ausführungspfad beweisen**:
|
||
|
||
1. Admin-Handler `image_cache_build` verfolgen.
|
||
2. `bratonien_tools_start_combined_image_cache_build()` verfolgen.
|
||
3. Start des `runtime/webdav-warmup-dispatch.php --mode=rebuild` beweisen.
|
||
4. Verifizieren, dass Dispatcher die aktive WebDAV-Verbindung findet.
|
||
5. Verifizieren, dass `runtime/lib/webdav-cache-warmup.php --mode=rebuild` wirklich gestartet wird.
|
||
6. Verifizieren, wie viele Quellen `bratonien_tools_cache_warmup_scan()` tatsächlich liefert.
|
||
7. Verifizieren, wie viele Varianten Stage 1 und Stage 2 pro Bild tatsächlich liefern.
|
||
8. Erst an **einem einzigen Bild** nachweisen:
|
||
- Original wird aus Nextcloud heruntergeladen.
|
||
- Placeholder wird korrekt gesichert.
|
||
- Original wird am produktiven Quellpfad eingesetzt.
|
||
- `piwigo-derivative-call.php` ruft wirklich Piwigos nativen `i.php`-Pfad auf.
|
||
- Piwigo erzeugt tatsächlich eine konkrete Datei unter `_data/i`.
|
||
- strikter Validator erkennt sie als gültig.
|
||
- Placeholder wird exakt restauriert.
|
||
9. Erst wenn dieser Ein-Bild-Test nachweislich funktioniert, Batchbetrieb und UI wieder anfassen.
|
||
|
||
## Entscheidender Verdacht
|
||
|
||
Der derzeit wichtigste Verdacht ist **nicht mehr die Anzeige**, sondern dass der Rebuild intern sehr früh keine Arbeit findet oder Piwigo über den aufgerufenen `i.php`-Pfad keine Derivate erzeugt, obwohl der Worker dies erwartet. Genau diese Stelle muss mit realem Lauf/Log belegt werden.
|
||
|
||
## Produktionsvalidierung
|
||
|
||
Von ChatGPT wurde kein echter Serverlauf durchgeführt. Ohne reale Serverausgaben darf nicht behauptet werden, dass Pfadaudit, Materialisierung, Piwigo-Aufruf oder Cache-Erzeugung funktionieren.
|