frontend: Mitgeliefertes Dokument heißt „Werkbaum" (Tippfehler korrigiert)

„Werkbank" war ein Vertipper, gemeint war der Projektname.

- WERKBAUM_NAME auf „Werkbaum" gesetzt.
- `loadDocs()` zieht den Namen bei bereits angelegten Dokumenten nach — aber
  nur, solange er unverändert der ausgelieferte „Werkbank" ist. Eine eigene
  Umbenennung des Nutzers bleibt stehen; ein fremdes Dokument, das zufällig
  „Werkbank" heißt, wird nicht angefasst (die Regel greift über die
  reservierte id, nicht über den Namen).

Verifiziert im Browser: Bestandszustand mit drei Dokumenten (Example,
id=werkbaum/„Werkbank", eigenes d9/„Werkbank") -> nach dem Laden ist nur
id=werkbaum umbenannt, d9 bleibt unberührt; frischer Zustand zeigt „Example"
und „Werkbaum" im Wähler, Wechsel rendert 75 Knoten ohne Warnung.
Vitest 37/37.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-07-27 14:10:06 +02:00
co-authored by Claude Opus 4.8
parent 6fb45ff37a
commit e160015fc7
3 changed files with 14 additions and 5 deletions
+8 -1
View File
@@ -1318,7 +1318,9 @@ let hadStoredUI = false; /* gab es beim Laden schon gespeicherte GUI-Einstellun
const EXAMPLE_ID = 'example', EXAMPLE_NAME = 'Example';
/* Zweites mitgeliefertes Dokument: Werkbaum selbst (D27). Fester Name wie beim
Beispiel — Dokumentnamen sind Nutzerdaten und werden nicht übersetzt (D22). */
const WERKBAUM_ID = 'werkbaum', WERKBAUM_NAME = 'Werkbank';
const WERKBAUM_ID = 'werkbaum', WERKBAUM_NAME = 'Werkbaum';
/* Die erste Fassung hieß versehentlich „Werkbank" (Tippfehler). */
const WERKBAUM_NAME_ALT = 'Werkbank';
let docs = []; /* [{id, name, text}] */
let activeId = null;
function uid(){ return 'd' + Date.now().toString(36) + Math.random().toString(36).slice(2, 7); }
@@ -1376,6 +1378,11 @@ function loadDocs(){
docs[0].name = EXAMPLE_NAME;
}
seedShippedDocs();
/* Namensfix für die kurzlebige Fassung mit dem Tippfehler — nur, solange der
ausgelieferte Name unverändert ist; eine eigene Umbenennung bleibt stehen
(Dokumentnamen sind Nutzerdaten, D22). */
const wb = docs.find(d => d.id === WERKBAUM_ID);
if(wb && wb.name === WERKBAUM_NAME_ALT) wb.name = WERKBAUM_NAME;
activeId = docs.some(d => d.id === a) ? a : docs[0].id;
}
function saveSrc(){