feat: Frühere Stände eines Dokuments, alle zehn Minuten (D54)

Alle 10 Minuten wird der Text des aktiven Dokuments weggelegt — aber nur,
wenn er sich seit dem letzten Stand geändert hat. Aufgehoben werden die
letzten 20 je Dokument (Nutzer-Entscheidung; rund 3,5 Stunden, max. ~800
kB beim größten Dokument). Angeboten werden sie über einen Knopf rechts
neben dem Dokumenten-Wähler, neueste zuoberst, je mit Uhrzeit und
Zeilenzahl.

„Nur bei Änderung" heißt: gegen den letzten Stand, und solange es keinen
gibt, gegen den Text beim Aktivieren des Dokuments. Ohne das legte der
erste Takt nach dem Öffnen auch ein unverändertes Dokument weg.

Die Dokumente sind wichtiger als ihre Stände: Beide teilen sich den
localStorage, also wirft persistSnaps() bei Überlauf den jeweils
ältesten Stand weg, bis es passt, notfalls alle — statt das Speichern
der Dokumente zu gefährden. Ein gelöschtes Dokument nimmt seine Stände
mit. Pad-Dokumente (D31) sammeln keine: Ihr Feld ist schreibgeschützt,
ein alter Stand ließe sich dort nicht einsetzen.

Zurückgeholt wird undo-fähig (replaceTextUndoable, D53) — ein Griff
daneben kostet ein Strg+Z, keine Rückfrage. Vorher wird der aktuelle
Stand weggelegt, sonst wäre gerade er das Einzige, was das Zurückholen
verlöre.

Beim Bauen korrigiert: Das Menü war an der Gruppe ausgerichtet
(right:0) und begann 190 px weiter links, also außerhalb des Panels
(gemessen: linke Kante bei -65 px). Bezug ist jetzt der Knopf.

Nachgemessen (Takt für die Prüfung auf 2 s verkürzt, danach
zurückgestellt): ohne Eingabe kein Eintrag, nach einer Eingabe genau
einer, ohne weitere keiner dazu; nach 29 Änderungen 20 (gedeckelt,
Zeitstempel aufsteigend). Klick auf einen älteren Eintrag lädt ihn
(36 -> 32 Zeilen), Diagramm zeichnet neu, undo holt den vorherigen Stand
zurück. Plan: 155 Knoten, 0 Warnungen. 240 Tests grün.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-24 10:23:42 +02:00
co-authored by Claude Opus 5
parent 6935b4882d
commit 8fd595abf9
5 changed files with 274 additions and 2 deletions
+7
View File
@@ -71,6 +71,7 @@
- [^] #ed.fold.click: Fold and unfold in the diagram (S)
- [^] #ed.fold.write: Folding writes the mark back into the text (S) %% one undo step
- [^] #ed.fold.preset: One switch folds everything from size M downward (S) %% see D44
- [x] #ed.snaps: Earlier states of a document, every ten minutes (S) %% only when something changed
- [ ] #ed.files: Open and save .werkbaum files (S)
+ [^] #ed.fresh: Show what is new since your last visit (S)
+ [?] #ed.percolor: A pastel colour per person (S)
@@ -502,6 +503,12 @@
smaller closed, L and above open. Size rather than depth — depth only says
how finely somebody happened to write it down.
#ed.snaps
A safety net against mishaps: the text is put aside every ten minutes, but
only when it differs from the last one kept, and the last twenty are offered
beside the document picker. Loading one is a single undo step, so a wrong
pick costs nothing.
#ed.files
Open a .werkbaum file and save one. Today the leading data format is the one
thing that cannot leave the browser as a file, while the diagram can.