fcbc97b608
Root-Cause für 'Ebene erscheint kurz und verschwindet wieder, kein APPLY im PY-Log': 1. User klickt + → addNew. setEbenen(18 Eintraege). state local = 18. 2. visibilityKey aendert sich (ebenen-Aenderung) → applyVisibility debounced 30ms. 3. structureKey aendert sich → applyAll debounced 200ms. 4. T=30ms: SET_VISIBILITY landet beim Backend ZUERST. 5. `_apply_visibility` liest e_full (17 alte Eintraege) aus doc.Strings, merged Visibility-Flags vom Slim-Payload, schreibt die 17 ALTEN zurueck nach doc.Strings (der neue 18. Eintrag ist im merged-Loop nicht dabei weil iteriert ueber e_full). 6. broadcast STATE_SYNC mit 17 Eintraegen. 7. React-App empfaengt → setEbenen(17) → neue Ebene weg aus state. 8. structureKey wieder == appliedStructureKey → useEffect's clearTimeout cancelt den 200ms-applyAll-Timer. 9. APPLY feuert nie. Backend bleibt auf 17. Fix in _apply_visibility: detect pending structural change (Payload hat IDs/Codes die noch nicht in doc.Strings sind) und in dem Fall das SetString-Save UND den _broadcast_state ueberspringen. apply_visibility (Rhino-Layer-Visibility-Update) laeuft trotzdem mit dem merged-state — die noch nicht gespeicherte Ebene hat eh keinen Rhino-Layer und damit keine Visibility zu setzen. Sobald der 200ms-applyAll feuert: build_layers + Save bringt alles in Sync. Daraufhin broadcastet APPLY normal an beide Panels. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>