perf+fix(speicher): Tastendruck schreibt nur den Spiegel; Quota-Fehler werden gemeldet (D82)

saveSrc() serialisierte bei jedem Tastendruck ALLE Dokumente in
werkbaum-docs. Jetzt schreibt der Tastendruck nur noch den Spiegel
werkbaum-src (ein Text); das volle Array schreiben die Flush-Punkte
(Wechseln/Anlegen/Löschen/Umbenennen, pagehide, verborgener Tab). Beim
Laden gewinnt der Spiegel für das aktive Dokument — zwingend VOR dem
Nachziehen mitgelieferter Fassungen, sonst dreht er sie zurück.

Und: persistDocs schluckte Speicherfehler still — bei voller Quota lief
der Editor scheinbar normal weiter, der Verlust fiel erst beim Neuladen
auf. Jetzt meldet die persistente Warnung storeFailed (9 Sprachen),
zuoberst, bis ein Schreiben wieder gelingt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-27 06:43:10 +02:00
co-authored by Claude Fable 5
parent ca4c6f98d8
commit 4f34454075
5 changed files with 142 additions and 7 deletions
+8 -1
View File
@@ -46,7 +46,12 @@
erreichbar oder keine Dokument-Adresse
- liveStale { error } — eigene Änderung nicht anwendbar
(Prüfsumme, Index, Basis verdichtet);
der Client hat einmal neu geladen (D76) */
der Client hat einmal neu geladen (D76)
- storeFailed { } — Speichern im Browser fehlgeschlagen
(localStorage-Quota, D82): Datenverlust
droht beim Neuladen; zeilenlos, steht
zuoberst und verschwindet, sobald ein
Schreiben wieder gelingt */
import { esc } from './render.js';
@@ -97,6 +102,8 @@ function build(w, t, esc){
return t('liveLoadWarn', {url: esc(w.url), error: esc(w.error)});
case 'liveStale':
return t('liveStaleWarn', {error: esc(w.error)});
case 'storeFailed':
return t('storeFailedWarn');
default:
return `${esc(String(w.type))} (${w.line ?? '?'})`;
}