Files
dogfather-universe/workspace/automation.html
T
DogFatherGitandClaude Opus 5 e7b277b7fc Die Startseite log nicht -- sie war nur alt. Und Protokolle lassen sich loeschen
Drei Meldungen aus einer Nachricht.

1. "WIRD IMMER NOCH ANGEZEIGT"
   Ein Protokoll war geschrieben, die Startseite meldete trotzdem weiter
   "1 Gespraech hat noch kein Protokoll".

   NACHGESTELLT statt vermutet: Der Server lag die ganze Zeit richtig.
   Der Hinweis erscheint, sobald ein vergangenes Gespraech kein Protokoll
   hat, und verschwindet in dem Moment, in dem eines geschrieben ist --
   nachgemessen, beides.

   Falsch war der BILDSCHIRM. Browser legen eine verlassene Seite
   vollstaendig beiseite (bfcache) und holen sie beim Zurueckgehen
   unveraendert hervor, mitsamt allen Zahlen vom ersten Laden. Kein
   Skript laeuft dabei erneut. Wer ein Protokoll schreibt und dann auf
   "Zurueck" tippt, sieht zwangslaeufig den Stand von vorher.

   Das ist kein Schoenheitsfehler: Eine Zahl, die etwas Falsches
   behauptet, ist schlimmer als gar keine -- man glaubt ihr ja. Und sie
   kostet danach Vertrauen in ALLE Zahlen.

   kopf.js laedt eine zurueckgeholte Seite jetzt neu. Nur dann
   (`event.persisted`), nicht bei jedem Anzeigen -- sonst waere es eine
   Endlosschleife. Gilt fuer jede Workspace-Seite, nicht nur die
   Startseite.

2. PROTOKOLLE LOESCHEN -- NUR DOGFATHER
   Bewusst istDogFather und nicht istLeitung: Ein Manager hat sonst
   ueberall dieselben Rechte, hier ausdruecklich nicht. Wer ein Protokoll
   entfernen darf, kann nachtraeglich bestimmen, was besprochen wurde.

   Geloescht wird NUR das Protokoll. Das Gespraech bleibt im Kalender und
   rutscht wieder zu "Protokoll fehlt" -- die Handlung ist damit
   umkehrbar: neu schreiben, fertig. Die daraus entstandenen AUFGABEN
   bleiben ebenfalls stehen; sie sind echte Arbeit, die jemand uebernommen
   hat, und mit einem Klick auf ein Protokoll zu verschwinden waere ein
   stiller Datenverlust an ganz anderer Stelle.

   Der Knopf steht nur bei DogFather. Ein Knopf, der bei anderen
   erscheint und dann abgewiesen wird, ist eine Einladung zum Aergernis.

3. IMMER NUR EINS OFFEN
   Vorher liessen sich beliebig viele Protokolle gleichzeitig aufklappen
   -- die Seite wurde so lang, dass die Liste darunter aus dem Blick
   geriet. Ein neu geoeffnetes Gespraech schliesst jetzt das vorherige.
   Beim Laden ist alles zu.

GEPRUEFT: server/pruef-protokoll-loeschen.mjs, 20 Pruefungen. Die
Zurueck-Pruefung misst an EINZAHL gegen MEHRZAHL ("1 Gespraech HAT" gegen
"2 Gespraeche HABEN") -- die Zahl selbst steht in einem eigenen Feld und
taucht im Fliesstext nicht auf. Drei Gegenproben: dass der Hinweis nach
dem Reparieren ueberhaupt noch anschlaegt (sonst waere "verschwunden"
auch bei kaputtem Hinweis gruen), dass eine Managerin 403 bekommt und das
Protokoll danach unveraendert dasteht, und dass der Loeschknopf bei ihr
gar nicht erst gezeichnet wird. Bestehende Laeufe gruen: Startansicht 133,
Rollen 97, Kalender 84, Serien 67, Protokoll-Klappe 52, Handy 50, Ampel
47, Freie Namen 32, Code 17.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-02 23:45:45 +02:00

141 lines
5.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<title>Automationen · Creator Workspace</title>
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609022345" />
<link rel="stylesheet" href="assets/css/start.css?v=202609022345" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609022345" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609022345" />
</head>
<body class="start">
<!-- Der Schleier ueber der Buehne (Casper und HasiDog in den unteren
Ecken, siehe start.css). Ein eigenes Element statt eines dritten
Pseudo-Elements -- body hat nur ::before und ::after. -->
<div class="schleier" aria-hidden="true"></div>
<header class="kopfleiste">
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
<svg class="zurueck-knopf__pfeil" viewBox="0 0 24 24" aria-hidden="true">
<path d="M14.5 5.5 8 12l6.5 6.5" />
</svg>
<span class="zurueck-knopf__text">Zurück</span>
</button>
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Creator&nbsp;Workspace</a> · Automationen</span></p>
<div class="kopfleiste__rechts">
<span class="wer" id="wer">…</span>
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
</div>
</header>
<main class="inhalt inhalt--breit">
<section class="kopf-zeile">
<div>
<p class="marke">Was von allein passiert</p>
<h1 class="titel">Automationen</h1>
<p class="unterzeile">
Alles hier läuft ohne Zutun. Diese Seite zeigt, was gerade greift –
und wo du es abschalten kannst.
</p>
</div>
</section>
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
<!-- Die KI ist die einzige Automation mit Schalter: Sie kostet
Rechenzeit, die der Website gehört. -->
<section class="ki-kasten" id="ki-kasten">
<div class="ki-kasten__kopf">
<div>
<p class="marke">Lokale KI</p>
<h2 class="ki-kasten__titel">Vorschläge in Calls, Start-Check und Report</h2>
<p class="ki-kasten__text" id="ki-text">Zustand wird geprüft …</p>
</div>
<label class="schalter" id="ki-schalter-block" hidden>
<input type="checkbox" id="ki-schalter" />
<span class="schalter__gleis"><span class="schalter__punkt"></span></span>
<span class="schalter__text"><strong id="ki-schalter-text">Angeschaltet</strong></span>
</label>
</div>
<ul class="ki-kasten__daten" id="ki-daten"></ul>
</section>
<!-- Was gerade tatsächlich anliegt: dieselbe Quelle wie auf dem
Dashboard, hier aber vollständig statt gekürzt. -->
<section class="block">
<div class="block__kopf">
<h2 class="block__titel">Was gerade anliegt</h2>
<span class="block__zahl" id="hinweis-zahl">–</span>
</div>
<p class="block__frage">
Dieselben Hinweise wie auf der Übersicht, hier vollständig. Sie führen keine
eigene Liste – jeder verschwindet, sobald die Sache erledigt ist.
</p>
<div id="hinweise"><p class="leise">Wird geprüft …</p></div>
</section>
<!-- Sicherung und Zustand. Steht bewusst weit oben: Es ist die einzige
Automation, deren Ausfall alles auf einmal kosten würde. -->
<section class="zustand" id="zustand-kasten">
<div class="zustand__kopf">
<div>
<p class="marke">Sicherung &amp; Zustand</p>
<h2 class="zustand__titel" id="zustand-titel">Wird geprüft …</h2>
<p class="zustand__text" id="zustand-text"></p>
</div>
<button type="button" class="knopf knopf--klein" id="jetzt-sichern">Jetzt sichern</button>
</div>
<ul class="zustand__daten" id="zustand-daten"></ul>
<div class="klapp-kopf zustand__listenkopf">
<p class="feldschild">Vorhandene Sicherungen</p>
<button type="button" class="knopf-still" id="sicherungen-schalter"
aria-expanded="false" aria-controls="sicherungen" hidden>
<span id="sicherungen-schalter-text">Alle zeigen</span>
<svg class="klapp-pfeil" viewBox="0 0 24 24" aria-hidden="true">
<path d="m6 9.5 6 6 6-6" />
</svg>
</button>
</div>
<div id="sicherungen" data-klapp="zu"></div>
</section>
<section class="block">
<div class="block__kopf">
<h2 class="block__titel">Läuft dauerhaft im Hintergrund</h2>
</div>
<div class="regeln" id="regeln"></div>
</section>
<section class="block">
<!-- Wie im Personen-Bereich: zugeklappt stehen nur die vier
neuesten Zeilen da, alles Weitere auf Knopfdruck. -->
<div class="block__kopf klapp-kopf">
<h2 class="block__titel">Zuletzt automatisch passiert</h2>
<button type="button" class="knopf-still" id="verlauf-schalter"
aria-expanded="false" aria-controls="verlauf" hidden>
<span id="verlauf-schalter-text">Alle zeigen</span>
<svg class="klapp-pfeil" viewBox="0 0 24 24" aria-hidden="true">
<path d="m6 9.5 6 6 6-6" />
</svg>
</button>
</div>
<p class="block__frage">Aus dem Protokoll – damit nachvollziehbar bleibt, was ohne Zutun geschah.</p>
<div id="verlauf"><p class="leise">Wird geladen …</p></div>
</section>
</main>
<script src="assets/js/wahl.js?v=202609022345" defer></script>
<script src="assets/js/bereiche.js?v=202609022345" defer></script>
<script src="assets/js/kopf.js?v=202609022345" defer></script>
<script src="assets/js/automation.js?v=202609022345" defer></script>
</body>
</html>