docs: offene Kleinpunkte aus Etappe 4a festgehalten

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jan-Niclas Loosen
2026-10-16 18:13:14 +02:00
co-authored by Claude Opus 5.5
parent bae454c25c
commit 3e774507f2
@@ -36,3 +36,27 @@ Ansätze vorschlagen → Entwurf abschnittsweise freigeben → Spec schreiben
- Tools: lit/divi-preset-get, lit/divi-presets-set, lit/divi-presets-delete, lit/divi-design-snapshots, lit/divi-design-restore (alle indirekt). - Tools: lit/divi-preset-get, lit/divi-presets-set, lit/divi-presets-delete, lit/divi-design-snapshots, lit/divi-design-restore (alle indirekt).
- Schreiben über die Schrittfolge von `GlobalPresetController::sync` (Mirror `preset-sync`). - Schreiben über die Schrittfolge von `GlobalPresetController::sync` (Mirror `preset-sync`).
- Offen für 4b: Fundstellen von Standard-Gruppen-Presets (Gruppenliste je Modul), lit/divi-design-detach. - Offen für 4b: Fundstellen von Standard-Gruppen-Presets (Gruppenliste je Modul), lit/divi-design-detach.
## Offene Kleinpunkte aus 4a (Reviews, nicht merge-relevant)
- Task 1: minor (deferred): Nachtrag verweist nicht auf §7 Punkt 4 („strenger als Divi“ gilt für Presets nicht mehr)
- Task 2: minor (deferred): PresetBook::with() erzwingt kein id-Feld
- Task 2: minor (deferred): rein numerische IDs/Namen werden int-Keys → TypeError bei new PresetScope (scopeOf/nestedUsers/toRest); (string)-Cast
- Task 2: minor (deferred): PresetScope-Regex lehnt "_" ab
- Task 3: minor (deferred): Standardwechsel X→Y meldet nur default_set Y, nicht default_cleared X
- Task 3: minor (deferred): Testabdeckung dünn (Gruppen, Standardwechsel, name-only)
- Task 4: minor (deferred): attachLog ignoriert fehlgeschlagenes update_option; RMW ohne Lock; Testlücken (Grenze MAX_BYTES, attachLog null/unbekannt)
- Task 5: minor (deferred): savePresets bereinigt bei mayRemove beide Arten (Obermenge von Divi), ACTION_DELETE_GROUP ungenutzt, Docblock erwähnt es nicht
- Task 5: minor (deferred): keine Unit-Tests für WP_Error→RuntimeException und Cleanup-Pfad (Integration in Task 14)
- Task 6: minor (deferred): UsageQuery-Vertrag „bereits vorbereitet“ nur Konvention; kein reportFor()-Test
- Task 7: minor (deferred): leere ID → LIKE %% (teuer); Testlücken _initial/[""]/Legacy-String beim Standard
- Task 8: minor (deferred): kein RED-Lauf dokumentiert (Tests und Code in einem Schritt)
- Task 8: minor (deferred): kein Test für DiviLocked aus area->write(); Read-back-Test prüft Rollback nur lose; kein Test für fehlende design_rev
- Task 9: minor (deferred): META_KEYS (modulePreset, groupPreset, globalModule, localAttrs) im Post-Check unsichtbar – heute nicht erreichbar; explizite Ablehnung als Defense in Depth
- Task 10: minor (deferred): Scope-Fehler immer unter fields.module; fehlendes preset → not_found statt validation_failed
- Task 11: minor (deferred): Test „nichts geschrieben“ prüft nicht, dass items[0] fehlerfrei ist
- Task 12: minor (deferred): in_use-Antwort ohne affected_count/hidden_count; Testlücken (verschachtelt+mitgelöscht, mehrere Items, Rechte)
- Task 13: minor (deferred): kein Paginierungs-/next_cursor-Test; Restore-Rechte nicht im Ability-Test
- Task 14: minor (deferred): Guide nennt Exklusivität name/rename und Namensgrenzen nicht ausdrücklich; Smoke hinterlässt Snapshots im SnapshotStore; Restore-Check vergleicht nicht den ganzen Bestand
- DesignLock: zwei gleichzeitige Übernahmen einer veralteten Sperre möglich (sehr kleines Fenster); Schreibvorgang > 120 s kann Sperre verlieren
- Verwaister @param-Docblock in DiviPresetsDeleteAbility
- Smoke divi-presets-smoke.sh läuft nur mit deaktivierten Plugins postlos (Monolog 2) und asynclistry (Deprecated-Ausgabe)