/memories — Gedächtnis
Hinweis: Rahmen: 00-rahmen.md. Code:
packages/plugins/src/memories/· Nachweisnpm run verify:memories.
Wofür
Das Gewölbe: was ein Modell über Christian festhält. In Notion war das eine Seite mit Überschriften; hier sind es Zeilen mit Abschnitt, und der Unterschied ist nicht kosmetisch — ein Modell kann einen Satz anhängen, ohne den Rest neu zu schreiben, und ein einzelner Satz lässt sich streichen, ohne ein Dokument zu bearbeiten.
Bewusst keine Tabelle. Ein Gedächtnis liest man wie Notizen, nicht wie einen Datensatz; Spalten für „Quelle" und „angelegt am" wären Buchhaltung über Sätzen, die man verstehen will. Woher ein Satz stammt, steht klein daneben.
Weg und Rahmen
| Route | /memories, Abschnitt über ?a=kontext|profil|themen|muster|fragen|log |
| Merkmal | MEMORIES — eine „besondere Funktion" (Grundsatz 26) |
| Zimmer | Gewölbe · Lautstärke 2 · #b08968 |
Was man sieht
Sechs Abschnitte, jeder mit eigenem Leersatz und, seit dem 23.09.2026, einem eigenen Zeichen vor dem Reiterwort (Zeichensprache N134):
| Abschnitt | Wenn leer |
|---|---|
| Kontext (seit dem 28.09.2026, zuoberst und beim Öffnen gewählt) | „Halte fest, was der Begleiter bei jeder Frage wissen soll." |
| Kurzprofil | „Sprich mit dem Begleiter, dann füllt es sich von selbst." |
| Themen | „Sprich mit dem Begleiter; was über ein Gespräch hinaus zählt, trägt er hier ein." |
| Muster | „Sag dem Begleiter, wie du arbeitest; nur das hält er hier fest." |
| Offene Fragen | „Stellt der Begleiter eine Frage, beantwortest du sie hier." |
| Verlauf | „Noch nichts geändert." |
Seit dem 10.10.2026 sagt jeder Leersatz, was zu tun ist, und jeder leere Abschnitt hat genau einen Satz (ES-261009-oberflaechentexte-ohne): Bis dahin erklärten die Sätze nur („Der Begleiter liest es bei jeder Frage mit und hält es im Gespräch aktuell.", „Leer ist hier der gute Fall."), und bei den Offenen Fragen stand der Vorspann „Deine Antwort steht danach bei der Frage und wird beim nächsten Gespräch mitgelesen." als zweiter Satz darüber. Der Vorspann steht jetzt nur über Einträgen. Gedaechtnisleere.test.ts prüft die Eigenschaft, nicht den Wortlaut.
Seit dem 15.10.2026 steht „Ersten Eintrag festhalten“ nur im leeren Kontext (KN-261015-gedaechtnis-fragen, Weg K7): Kurzprofil, Themen, Muster und Offene Fragen füllt der Begleiter, den Verlauf das Protokoll, und dort widersprach der Knopf dem Satz darüber. Anlegen geht weiter über „Neu“ im Kopf.
Offene Fragen stehen vorn, solange welche offen sind, und der Reiter trägt ihre Zahl hinter dem Wort („Offene Fragen 3“; der Vorleser hört dasselbe). Ohne offene Frage steht er an fünfter Stelle und ohne Zahl. Eine Reiterfolge, die jemand selbst gespeichert hat, geht vor. Gedaechtnisreiter.test.ts und Reiterzahl.test.tsx prüfen beides.
Hat das Gedächtnis noch keinen einzigen Eintrag, steht kein Suchfeld im Kopf (N318, seit RL02 am 28.09.2026 auch hier) — es gäbe nichts zu finden.
Bei Offene Fragen steht die Liste seit dem 22.09.2026 in zwei Gruppen, sobald es beides gibt: „3 offene Fragen" und darunter „5 beantwortete Fragen", jede mit eigener Überschrift. Gibt es nur eine Sorte, steht eine Liste ohne Überschrift da.
Was man tun kann
Reiter ordnen (OE10, N500): Wer Vorgaben für alle setzen darf, ordnet und blendet die Reiter über „Bearbeiten“ im Kopf; die Folge steht in oberflaeche.reiter unter memories, Ansichten je Abschnitt memories/<abschnitt> (Rahmen §3).
| Element | Was passiert |
|---|---|
| Antworten (nur bei „Offene Fragen") | notiert eine Antwort unter der Frage, eingerückt, mit einem Strich links — wie ein Zitat, auf das jemand geantwortet hat. Die Frage bleibt stehen: ohne sie ist „zwei Wochen, meistens sonntags" kein Satz, sondern ein Rätsel |
| Streichen | zwei Klicks — „Streichen“, dann „ja, weg“. Der Satz geht in den Papierkorb (Einstellungen → Deine Daten) und ist dreißig Tage lang zurückzuholen; bis zum 19.09.2026 war ein Klick endgültig. Seit dem 23.09.2026 der gemeinsame Baustein Wegtun statt einer eigenen Abschrift der Frage (Q09, N165); Tooltip und Bildschirmleser sagen „Eintrag streichen“ |
| Eintrag anlegen | schreibt von Hand, was sonst ein Modell schreibt |
| + Kontext (an jeder Zeile, nur mit Studium) | gibt den Satz der nächsten Frage an den Begleiter mit (KI05); er erscheint dort als Chip. Eine sensible Zeile steht in der Warnfarbe, und ihr Titel sagt, dass sie nur wegen dieses Klicks mitgeht (N224). Ein zweiter Klick („Im Kontext ד) nimmt ihn wieder heraus. Hinaus geht er seit KI53 nur, wenn das Konto in Tagebuch und Gedächtnis im Begleiter eingewilligt hat, sensibel oder nicht |
| Gilt bis (im Formular, leer = unbefristet) | setzt eine Frist auf den Tag. Leer ist die Vorgabe und der Normalfall — das Datumsfeld belegt hier nicht mit heute vor, sonst liefe jeder frisch geschriebene Satz noch am selben Abend ab |
| Frist verlängern (nur an einer abgelaufenen Zeile) | klappt drei Stufen auf — um einen Monat, um drei, um zwölf —, jede mit dem Tag daneben, auf den sie führt. Dazu „unbefristet", wenn die Frist selbst der Fehler war. Gezählt wird ab heute, nicht ab der alten Frist: eine Zeile, die im März abgelaufen ist, wäre sonst nach dem Verlängern wieder abgelaufen |
| Filter | schaltet die Liste nach Herkunft, Gültigkeit, Begleiter (seit KI30: „neu seit deinem letzten Blick“, „vom Begleiter“, „nicht vom Begleiter“) und — bei den offenen Fragen — nach Stand ein. Ein Feld erscheint erst, wenn es mehr als einen Wert gibt: ein Knopf, der dieselbe Liste zeigt, ist keiner. Der Filter steht nicht in der Adresse und geht beim Abschnittswechsel mit |
Drei Punkte, die am 21.09.2026 gebaut wurden
Herkunft als Filter (vormals Punkt 1). Die Herkunft stand schon an jeder Zeile; jetzt lässt sich danach fragen — „was hat das Modell geschrieben, was ich?". Es ist ein Handfilter über der gemeinsamen Filterleiste, keine eigene Mechanik, und er bringt die Zahl hinter jedem Wert mit: ein Filter ohne Zahl führt ins Leere.
Fristigkeit (vormals Punkt 2). Eine Zeile darf ein Ablaufdatum tragen — life.memories.valid_until (Migration 84, additiv). Drei Stände, und null ist der Normalfall:
| Stand | Was die Zeile zeigt |
|---|---|
unbefristet (null) | nichts weiter — gilt bis auf Weiteres, und bekommt seit dem 23.09.2026 absichtlich auch im Filter kein Zeichen (Guide §7.4: der Normalfall zeichnet nichts) |
| befristet | „gilt bis 31.12.2026", klein neben Herkunft und Datum |
| abgelaufen | „seit 31.12.2026 abgelaufen" (das Wort selbst neutral, siehe unten), seit dem 23.09.2026 das Zeichen ueberfaellig in Gefahrfarbe; der rote Rand links ist am 10.10.2026 gegangen (ES-261009-farbige-seitenstreifen, E11) |
Zwei Dinge daran sind Absicht. Ein Tag landet auf seinem Ende, nicht auf seinem Anfang — „gilt bis 31.12." heißt, dass es am 31.12. noch gilt —, und zwar in der Zeitzone des Kontos, nicht in UTC und nicht in Europe/Berlin aus dem Quelltext. Und abgelaufen heißt nicht fort: Die Zeile bleibt stehen und sagt dazu, dass sie abgelaufen ist. Was früher galt, ist bei einem Gedächtnis die halbe Auskunft; wer sie los sein will, streicht sie.
Wo eine Frist steht, schweigt der Altershinweis („seit 14 Monaten unverändert"). Der ist eine Schätzung darüber, ob ein Satz noch gilt — wer eine Frist eingetragen hat, hat die Frage beantwortet, und ein zweites, schlechteres Urteil daneben wäre Lärm.
Widerspruchs-Hinweis (vormals Punkt 3). Zwei Sätze, die einander widersprechen, stehen nicht mehr stumm nebeneinander: Unter dem einen steht der andere, gestrichelt eingerückt, mit dem Grund. Drei Regeln über Wörtern, kein Modell und keine Bedeutungslehre — shared/widerspruch.ts vergleicht Verneinung, Gegenwortpaare und Zahlen über denselben Wörtern. Deshalb sagt der Schirm „widerspricht vielleicht", nennt den Grund dazu und ändert keine Zeile: Der Mensch entscheidet, die Regel zeigt nur hin.
Verglichen werden nur profil und muster — eine Frage behauptet nichts, ein Verlaufseintrag ist Geschichte, Themen sind Stichworte —, und zwar über beide Abschnitte hinweg. Abgelaufene Zeilen bleiben draußen: „wohnt bis September in Passau" und „wohnt in Regensburg" ist im Oktober kein Widerspruch, sondern ein Umzug.
Drei Punkte, die am 22.09.2026 gebaut wurden
Frist verlängern (vormals Punkt 2). Eine abgelaufene Zeile stand rot da, und dabei blieb es: „Streichen" gab es, die andere Antwort nicht. Wer verlängern wollte, klappte den Satz auf, suchte im Formular das Datumsfeld und tippte einen Tag ein, den er sich vorher ausrechnete. Jetzt stehen unter der abgelaufenen Zeile — und nur unter ihr — drei Stufen, jede mit dem Tag daneben, auf den sie führt, dazu „unbefristet" für den Fall, dass die Frist selbst der Fehler war.
Zwei Dinge entscheidet shared/verlaengerung.ts, und beide fallen erst am Ergebnis auf. Gezählt wird ab heute, nicht ab der alten Frist: „um einen Monat" an einer Zeile, die im März abgelaufen ist, wäre sonst wieder Vergangenheit — ein Griff, der sichtbar nichts tut. Und ein Tag wird auf seinen Monat gekürzt, statt darüber hinauszuspringen: der 31. Januar plus einen Monat ist der 28. Februar und nicht der 3. März. Der Fehler wäre klein und fiele immer in dieselbe Richtung — „gilt länger, als jemand gesagt hat". Gerechnet wird in der Zeitzone des Kontos (Grundsatz 54); der Tag geht danach denselben Weg wie ein von Hand eingetippter, endeDesTages legt ihn auf das Ende dieses Tages.
Die Kappung sagt es (vormals Punkt 9). Der Widerspruchs-Hinweis vergleicht paarweise und hört deshalb bei 500 Aussagezeilen auf (HOECHSTE_ZEILEN). Das ist geblieben — gekappt wird aber nicht mehr still: Über der Liste steht, wie viele Zeilen verglichen wurden und wie viele ungeprüft bleiben. Der Satz erscheint nur, wo er gilt, also in profil und muster, und nur, wenn tatsächlich etwas übergangen wurde. Eine stille Kappung ist die schlechtere Hälfte von beidem: Sie prüft nicht alles und behauptet, alles geprüft zu haben.
Die beantworteten Fragen stehen für sich (vormals Punkt 11). „Offene Fragen" hieß bisher: alles in einer Liste, und was beantwortet war, kam über den Filter. Jetzt trennen zwei Überschriften — „3 offene Fragen", darunter „5 beantwortete Fragen" (Style-Guide §15.1: eine Gruppe, die über eine Schirmhöhe geht, braucht eine Überschrift). Die Reihenfolge innerhalb der Gruppen bleibt, wie sie war.
Der Stand wird abgeleitet, nicht gespeichert (shared/fragen.ts): Beantwortet ist eine Frage, die eine Antwort trägt — eine leere zählt nicht. Ein zweites Feld „beantwortet" wäre ein Wert, der neben der Antwort steht und ihr widersprechen kann. Die Gruppen erscheinen nur, wenn es beides gibt; eine Überschrift über einer leeren Liste ist ein Versprechen, das der Schirm nicht hält.
Zeichen statt nur Farbe, am 23.09.2026
Zeichensprache N134 — Christian: „Das mit den Icons funktioniert übrigens super und ich will, dass das überall in Denotato so umgesetzt wird." Vier Stellen sprachen bis hierher nur über Farbe, ohne Wort und ohne Zeichen daneben; das verletzt die Grundregel „Farbe steht nie allein" und ist jetzt behoben.
Die sechs Reiter tragen je ein Zeichen aus der geschlossenen Registry (components/zeichen/registry.ts): Kontext stern, Kurzprofil person, Themen raute, Muster muster, Offene Fragen frage, Verlauf verlauf. Eine Reiterleiste gibt entweder allen ihren Reitern ein Zeichen oder keinem (Guide §7.3) — hier allen. Muster und Verlauf tragen ihr eigenes Zeichen seit E12 (30.09.2026): Muster lieh sich bis dahin baum, der Verlauf zeit, das Bereichszeichen des Stundenplans.
Die Filter-Knöpfe (Herkunft, Gültigkeit, bei „Offene Fragen" auch Stand) tragen seit dem 23.09.2026 je ein kleines Zeichen vor dem Wort: Herkunft „im Gespräch gelernt" → sprechblase, „von Hand" → bearbeiten, „beim Import übernommen" → einfuhr (seit E12; bis dahin geliehen oeffnen); Stand „offen" → frage, „beantwortet" → haken. Bei der Gültigkeit bekommt nur „befristet" (zeit) und „abgelaufen" (ueberfaellig) ein Zeichen — „unbefristet" bleibt ohne, siehe oben. Ein Wert, den die Zuordnung nicht kennt, bekommt seit der Nachbesserung vom 23.09.2026 kein Zeichen mehr (Festlegung G) — bis dahin stand hier ein Rückfall (?? 'oeffnen', ?? 'frage'), der einem unbekannten Wert ein falsches Zeichen gab.
Vier Ränder, die nur Farbe sprachen, tragen jetzt zusätzlich ein Zeichen, in derselben Farbe wie der Rand, das Wort daneben aber bleibt neutral (Guide §7.3). Seit dem 10.10.2026 sprechen nur noch die Zeichen (ES-261009-farbige-seitenstreifen, E11): Die farbigen Ränder links sind gegangen; die Antwort unter einer beantworteten Frage und der Widerspruchs-Hinweis sind eingerückt mit einer neutralen Linie (neutral.rand, beim Widerspruch gestrichelt):
| Zustand | Zeichen | Farbe |
|---|---|---|
| sensibel | gesperrt | Warnfarbe |
| beantwortet | haken | Erfolgsfarbe |
| abgelaufen | ueberfaellig | Gefahrfarbe |
| Widerspruchs-Hinweis | hinweis | Hinweisfarbe |
Bei allen vier Zuständen gilt dieselbe Regel: Das Wort davor ist neutral, nur das Zeichen ist farbig. Bei „abgelaufen" stand das anfangs anders — das Wort trug die Gefahrfarbe, mit der Begründung, Guide §7.6 verlange für eine überfällige Frist ausdrücklich rote Schrift. Das war eine Verwechslung: §7.6 erlaubt rote Schrift für ein Datum (heute/überfällig) — „abgelaufen" ist aber das Wort, kein Datum, und die Ausnahme griff hier nie. Seit der Nachbesserung vom 23.09.2026 ist auch dieses Wort neutral, und allein das Zeichen trägt die Farbe.
Die zwei Wunschnamen sind seit E12 (30.09.2026) gezeichnet. „Muster" trägt den Regelkreis muster statt des geliehenen baum, „beim Import übernommen" den Pfeil in ein Gefäß einfuhr statt des geliehenen oeffnen, das hinaus zeigt (Punkt 14 unten, behoben).
Scheitert das Laden, hängt der Schirm nicht in der Ladeanzeige fest (F28b, 23.09.2026): Der Ladezustand kommt aus useMenuScreen und nicht aus der Komponente selbst; ein try/finally setzt ihn zurück, auch wenn die Anfrage wirft, statt bis zum Neuladen in „lädt" stehen zu bleiben.
Kontext — die Hauptkontextdatei (KI22, N382, 28.09.2026)
Christian am 28.09.2026: Der Begleiter soll „immer mit Kontext aus dem Gedächtnis“ arbeiten und „eine Haupt-Kontextdatei mit wichtigen Infos“ haben, „die kontinuierlich geupdated wird“. Das ist der Abschnitt Kontext — kein eigenes Dokument, sondern Zeilen wie in jedem anderen Abschnitt, damit sie sich einzeln ändern, streichen und zurückholen lassen.
- Jede freie Frage, jedes „Erklär mir das“ und jedes Angebot der Eule liest die Zeilen aus Kontext und Profil mit — höchstens 60 und 40, ohne abgelaufene und gestrichene. Sensible Zeilen gehen nur mit
memories.sensitivemit, wie im MCP; die Runde trägt dann „Sensibles dabei“. Themen, Muster, offene Fragen und Verlauf gehen nicht pauschal mit. Der Block zählt gegen die Kontextgrenze der Stufe und wird, wenn er nicht ganz passt, von hinten gekürzt; Kontext steht vorn. Seit dem 04.10.2026 liest ihn auch der Absatz im Briefing, aber ohnekontext_schreiben(KI52, N503); welcher Anlass ihn bekommt, steht im Feldgedaechtnisseiner Beschreibung (begleiter/shared/anlaesse.ts). - Nur mit Einwilligung (KI53, N503, 04.10.2026). Block,
kontext_schreibenund die Werkzeugegedaechtnis_*bekommt ein Ruf nur, wenn das Konto ausdrücklich eingewilligt hat, dass Tagebuch und Gedächtnis an das Modell gehen (Art. 9 Abs. 2 lit. a DSGVO). Bestehende Konten haben nicht eingewilligt. Gefragt wird im Begleiter, widerrufen in den Einstellungen unter „Lernen“; der Widerruf gilt ab der nächsten Anfrage. Einzelheiten: begleiter.md, „Einwilligung für Tagebuch und Gedächtnis“. - Der Begleiter schreibt selbst — mit dem Werkzeug
kontext_schreibenlegt er eine Zeile an, ändert oder streicht sie, nur im Abschnitt Kontext, nur im eigenen Konto und nie an einer sensiblen Zeile. Neue Zeilen tragen die Herkunft „Gespräch“. Gestrichenes liegt im Papierkorb. Mehr als 60 Kontextzeilen legt er nicht an. - Sofort nur in der freien Frage (KI50, N503, 04.10.2026). Dort schreibt das Werkzeug ohne Rückfrage, und die Zeile „Nachgelesen“ unter der Antwort nennt, was sich geändert hat („Kontext ergänzt: „…““). Beim Erklären, in den Angeboten der Eule und beim Anstoß liest das Modell Inhalt, den der Nutzer nicht selbst getippt hat; dort legt das Werkzeug nur einen Vorschlag auf die Tafel im Begleiterschirm („Vorgeschlagen: Kontext ergänzen „…““ unter der Antwort, daneben „Im Begleiter bestätigen“). Geprüft wird die Eingabe schon beim Vorschlagen — Marke, Länge, sensible Zeile, volle Datei —, geschrieben erst bei „Übernehmen“, mit den Rechten von dann. Hat sich die Zeile seither geändert oder ist das Gedächtnis aus, schreibt die Bestätigung nichts und sagt den Grund. Auto-Modus und „Immer erlauben“ gelten dafür nicht.
Gelesen wird über den Anschluss ANSCHLUESSE.gedaechtnis (memories/server/begleitung.ts), nicht über die Tabellen (Grundsatz 43). Nachweis: verify:begleiter, Abschnitt „Gedächtnis“.
Die Spur des Begleiters (KI30, N121, N412, 29.09.2026)
Der Begleiter schreibt still in Kontext (KI22). N121 hat dafür versprochen, dass jede Zeile sagt, wobei sie entstand, und dass die Seite zeigt, was seit dem letzten Besuch dazukam — sonst bemerkt man das Mitgeschriebene nicht. Christian hat am 29.09.2026 den Zuschnitt gewählt (N412):
- Die Herkunft an der Zeile. Schreibt ein Ruf des Begleiters eine Zeile — anlegen oder ändern —, trägt sie den Anlass, den Bereich, in dem gefragt wurde, und den Zeitpunkt (
occasion,occasion_area,occasion_at, Wanderung 194). Bei einem übernommenen Vorschlag (KI50) sind Anlass und Bereich die des Rufs, der ihn anlegte, der Zeitpunkt der des Übernehmens; die Zeile gilt damit als neu vom Begleiter, auch wenn der Mensch sie selbst bestätigt hat. Statt „im Gespräch gelernt · 29.09.2026“ steht dann „vom Begleiter, bei „Freie Frage“ in Studium am 29.09.2026“. Ist der Bereich unbekannt, fällt „in …“ weg; ist der Anlass unbekannt, bleibt „vom Begleiter am …“. Wurde die Zeile später an einem anderen Tag von Hand angefasst, folgt „· geändert 30.09.2026“ — das Datum des Anlegens steht nicht noch einmal da, die Herkunft nennt den Tag schon. - Neu ist nur, was der Begleiter schrieb, und nur, wenn er es nach dem vorigen Blick schrieb. Eine eigene Änderung macht nichts neu, auch nicht an einer Zeile des Begleiters: Eine Änderung von Hand lässt die drei Spalten stehen.
- Die Marke „neu ·“ mit dem Zeichen
neuin der Farbe für Auskunft steht vor der Herkunft, gebaut wie „sensibel ·“. - Der Hinweis oben, unter der Kopfleiste und vor dem Vorspann: „Neu seit deinem letzten Blick: 3 Einträge vom Begleiter“, darunter je Abschnitt mit Neuem „Kontext: 2“, „Kurzprofil: 1“. Der offene Abschnitt steht als Text da, die anderen sind Wege dorthin. Steht alles Neue im offenen Abschnitt, fehlt die Zeile; ohne Neues fehlt der Hinweis ganz. Ein ruhiger Kasten aus Papier mit Haarlinie, keine Warnung.
- Gesehen heißt geöffnet. Beim Öffnen der Seite vermerkt sie den Blick (
POST /api/memories/gesehen) und bekommt den vorigen zurück; die Marken gelten für diesen Besuch und sind beim nächsten weg. Die Zeit setzt der Server, nie der Klient. Lässt sich der Blick nicht vermerken, zeigt die Seite keine Marke und keinen Hinweis — lieber nichts als eine Marke, die beim nächsten Besuch wieder dasteht; „vom Begleiter, bei …“ steht trotzdem. - Der Begleiter hat kein Werkzeug dafür (
gedaechtnis_gesehenist im Katalog ausgenommen): Er soll nicht als gesehen abhaken, was der Mensch noch nicht gesehen hat.
Eine Grenze: Nimmt man im Begleiterschirm eine Änderung des Begleiters zurück, schreibt die Rücknahme den alten Text über MEMORY_SAVE außerhalb eines Rufs zurück — die Zeile trägt dann weiter den Anlass der zurückgenommenen Änderung. Eine zurückgenommene Anlage streicht die Zeile, da bleibt nichts stehen.
Die Regeln stehen in memories/client/Begleitspur.tsx und sind dort ohne den ganzen Schirm geprüft (Begleitspur.test.tsx); der Server setzt die Spalten in saveMemory, wenn laufenderBegleiterruf() einen Ruf kennt. Nachweis: verify:memories, Abschnitt „Die Spur des Begleiters“.
Woher die Daten kommen
MEMORIES · MEMORY_SAVE · MEMORY_DELETE · MEMORIES_SEEN. Von außen über die MCP-Werkzeuge gedaechtnis_lesen, gedaechtnis_schreiben, gedaechtnis_loeschen, gedaechtnis_gesehen.
MEMORY_SAVE nimmt seit dem 21.09.2026 validUntil entgegen — einen Tag (2026-12-31), wie ihn das Datumsfeld liefert, oder einen vollständigen Zeitpunkt, wie ihn ein Modell schickt. Beide bedeuten dasselbe, und die Umrechnung steht einmal im Server. validUntil weglassen lässt eine bestehende Frist stehen, ein leerer Text nimmt sie zurück — dieselben drei Fälle wie bei answer. gedaechtnis_lesen liefert valid_until mit und sagt dem Modell dazu, dass eine abgelaufene Zeile nicht als gegenwärtige Auskunft taugt.
Eine Korrektur ist keine Rechteänderung (F38, 23.09.2026). Beim Ändern lassen sensitive, source und sortIndex stehen, was dasteht, wenn sie fehlen; nur beim Anlegen gelten false, gespraech und 0. Bis dahin machte ein gedaechtnis_schreiben({id, section, content}) — jede gewöhnliche Textkorrektur — eine sensible Zeile still öffentlich, und jedes Ändern setzte die Reihenfolge auf null, auch über diesen Schirm, der sortIndex nie mitschickt. Wer eine Zeile öffnen will, schickt sensitive: false; das Kästchen im Änderungsformular tut genau das. verify:memories prüft die Wirkung, nicht nur die Spalte: nach der Korrektur sieht ein Konto ohne memories.sensitive die Zeile weiterhin nicht.
MEMORY_DELETE heißt weiter so, legt aber seit dem 19.09.2026 in den Papierkorb. Was heikel ist, bleibt auch dort heikel: Ein Eintrag mit sensitive erscheint im Papierkorb nur, wer memories.sensitive hat — sonst stünde ausgerechnet der Klartext in der einen Liste, die sonst nicht nachfragt.
Die leeren Abschnitte erklären sich (21.09.2026)
Fünf Abschnitte, fünf leere Zustände — und jeder sagt jetzt, wofür er da ist und was ihn füllt, statt nur zu melden, was fehlt. Vorher stand dort fünfmal „Noch kein …", und das ist die Auskunft, die man ohnehin sieht.
Der zweite Satz ist jeweils der wichtigere: Das Gedächtnis ist die einzige Stelle in Denotato, die man nicht selbst füllt — hier schreibt ein Modell, das mit einem arbeitet. Wer das nicht weiß, sucht den Knopf zum Anlegen, und es gibt keinen.
Ein Nachweis hält die Eigenschaft fest, nicht den Wortlaut: kein Satz beginnt mit „Noch kein", jeder ist länger als sechzig Zeichen, und mindestens drei sagen, wer den Abschnitt füllt.
Aufgehoben wird unter memories.eintraege (G03, 21.09.2026, Rahmen 7). Wer das Gedächtnis aufmacht, während der Server unten ist, sieht das zuletzt Gelesene — mit einer Zeile darüber, seit wann es steht.
Die Eule schlägt eine Zeile vor (KI18, N372, 27.09.2026). In der schwebenden Eule steht „Eine Zeile vorschlagen“ als Knopf. Er schickt nur die Kennung des Angebots an BEGLEITER_ANGEBOT, und der Leser des Angebots gibt aus dem Gedächtnis nichts mit (memories/server/angebote.ts): kein Eintrag, auch kein nicht sensibler. Weil das Angebot als freie Frage zählt, gehen seit KI22 (N382) trotzdem Kontext und Profil als Gedächtnisblock mit, und das Werkzeug kontext_schreiben steht ihm offen. Seit KI50 (N503) legt es hier nur einen Vorschlag an, den der Mensch im Begleiterschirm übernimmt; die übernommene Zeile zeigt hier ihre Herkunft (KI30). Das Umfeld unter „Was hinausgeht“ nennt den Block seit dem 03.10.2026. Der Leser sagt dem Modell, dass das Angebot keine weiteren Einträge mitgibt und es nur den Block kennt; der Auftrag bittet, nicht nach dem zu fragen, was dort schon steht. Den Knopf gibt es nur, wenn das Konto das Gedächtnis hat. Ein Klick zählt als freie Frage; was dahinter steht, sagt docs/seiten/begleiter.md, Abschnitt „Die Angebote der Eule“.
Was fehlt
Hinweis: Korrigiert am 17.09.2026. Drei Punkte standen hier, die es gibt — erschlossen statt geprüft, weil dieser Schirm keine Tabelle zeigt und meine Auswertung deshalb fast nichts gefunden hat. Sie stehen durchgestrichen da und werden nicht stillschweigend entfernt.
Was ich falsch hatte:
Keine Suche— es gibt eine. „In den Einträgen suchen…" im Kopf, sie filtert den offenen Abschnitt.Kein Datum in der Anzeige— steht an jeder Zeile, und zwar zwei: angelegt und, wenn es sich unterscheidet, geändert. „Steht seit März da" und „hat sich gestern geändert" sind zwei verschiedene Dinge, besonders bei Sätzen, die ein Modell geschrieben hat.Keine Herkunft als Filter— die Herkunft steht an jeder Zeile (Gespräch, manuell …). Seit dem 21.09.2026 lässt sich auch danach filtern.Kein Bearbeiten— der Satz selbst ist der Knopf. Ein „Bearbeiten" daneben wäre ein drittes Wort in einer Zeile, die aus einem Satz besteht. Absicht, keine Lücke.Kein Export— seit dem 17.09.2026 nimmt der JSON-Exportlife.memoriesmit.
Hinweis: Drei Punkte sind am 21.09.2026 weggefallen — Herkunftsfilter, Fristigkeit und Widerspruchs-Hinweis (oben beschrieben). Was sie hinterlassen haben, steht als 1, 2, 3 und 9 wieder da: Wer etwas baut, sieht erst danach, wo es aufhört.
Hinweis: Und drei am 22.09.2026 — der Griff an der abgelaufenen Zeile (vormals 2), die genannte Kappung (vormals 9) und die getrennten Gruppen bei den Fragen (vormals 11). Auch sie hinterlassen etwas, und es steht unten als 10 bis 13.
Was wirklich fehlt:
- Nichts erinnert an eine ablaufende Frist. Eine Zeile läuft ab, und niemand erfährt es, bis jemand
/memoriesaufmacht. Eine Frist, die man nachsehen muss, ist eine Notiz und keine Frist — hier gehört die Schnellaktion hin, die es unter Punkt 3 ohnehin braucht. Dass es seit dem 22.09.2026 einen Griff zum Verlängern gibt, ändert daran nichts: Er hilft dem, der schon hinsieht. - Eine Frist ist nur ein Tag, kein Begriff. „Bis Semesterende" muss beim Eintragen in ein Datum übersetzt werden, und wenn sich das Semesterende verschiebt, weiß die Zeile nichts davon. Der Bezug auf
study.semesterswäre die ehrliche Fassung. - Die offenen Fragen fragen nicht. Sie warten, bis jemand die Seite öffnet — die Schnellaktion
gedaechtnis.frage(Guide S11) gibt es nicht. Dass die offenen jetzt unter einer eigenen Überschrift mit ihrer Zahl stehen, sagt es deutlicher, aber immer noch nur dem, der die Seite aufmacht. - Kein Zusammenhang zu Personen. Ein Satz über Zoë kennt Zoë nicht (Richtung G1).
- Kein Verlauf einer Zeile. Dass ein Satz geändert wurde, steht da; was vorher dastand, nicht. Bei einer Frist wiegt das schwerer als vorher: Wer eine Frist verlängert hat, hat eine Behauptung erneuert, und das ist die Art Entscheidung, die man später nachlesen will — seit dem 22.09.2026 mit zwei Klicks und damit öfter.
- Keine Verschlagwortung. Themen sind ein Abschnitt, kein Merkmal.
- Kein Zimmer für den Assistenten (Richtung G6) — das Gedächtnis ist eine Liste, kein Ort.
- Der Widerspruchs-Hinweis kennt Wörter, keine Bedeutung. „Steht um 6 auf" und „ist eine Nachteule" widersprechen einander und teilen kein Wort. Drei Regeln über Wörtern finden, was sich wörtlich widerspricht, und mehr behaupten sie auch nicht.
- Der Rückfall endet am Schirmrand. Das Gedächtnis steht noch da, wenn der Server schweigt — aber ein Eintrag, den man in dieser Zeit schreibt, ist verloren. Ein Rückfall, der nur liest, ist der halbe (G03, Rahmen 7).
- Der Griff kommt erst, wenn es zu spät ist. Verlängern steht nur an der abgelaufenen Zeile. Eine Zeile, die in drei Tagen abläuft, hat ihn nicht — man muss warten, bis sie rot ist, und in genau der Zwischenzeit hat das Modell sie schon nicht mehr als Auskunft benutzt. Die ehrliche Fassung wäre ein Griff, sobald die Frist in Sichtweite ist.
- Verlängert wird in Monaten, nicht auf einen Tag. Drei Stufen — um einen Monat, drei, zwölf — und „unbefristet". Wer bis zum 15. verlängern will, geht weiter ins Formular. Und die Stufen sind fest: Eine Zeile, deren Frist ursprünglich eine Woche lief, bekommt dieselben Stufen wie eine, die zwei Jahre galt.
- Die Kappung wird genannt, nicht aufgehoben. 500 bleibt 500. Und welche 500 es sind, entscheidet die Reihenfolge, in der die Einträge aus der Datenbank kommen — nicht die jüngsten, nicht die mit Frist, nicht die, an denen sich zuletzt etwas geändert hat. Wer 600 Zeilen hat, weiß jetzt, dass 100 ungeprüft bleiben, aber nicht, welche.
- Die beantworteten Fragen lassen sich nicht ordnen. Die Gruppe steht in der Reihenfolge, in der die Fragen angelegt wurden, nicht in der, in der sie beantwortet wurden — „was habe ich zuletzt beantwortet" ist damit weiter keine Frage, die der Schirm beantwortet. Zuklappen lässt sie sich auch nicht; bei fünfzig beantworteten Fragen schiebt die Gruppe die offenen aus dem Bild.
Zwei Zeichen fehlen der Registry, nicht diesem Schirm.— behoben am 30.09.2026 (E12): Die Registry hatmuster(ein Regelkreis) undeinfuhr(ein Pfeil in ein Gefäß), und der Schirm trägt sie. Der alte Befund: „Muster" lieh sichbaum, „beim Import übernommen"oeffnen.