Zuletzt geöffnet als Sprungliste, ohne Verlauf
Die letzte offene Zeile aus TASKS.md. Sie blieb offen, weil eine Spur über
jeden Aktenaufruf schnell etwas anderes wird als eine Bequemlichkeit.
Vier Festlegungen halten sie auf der richtigen Seite:
- Kein Verlauf. Der Primärschlüssel (userId, targetType, targetId) lässt je
Nutzer und Datensatz genau eine Zeile zu, die überschrieben wird. Die
Tabelle kann nicht sagen, wie oft oder in welcher Reihenfolge gearbeitet
wurde. Zwanzig Einträge, älteres fällt hinten heraus.
- Nur die eigene. Keine Ansicht, kein Adminbereich, keine Funktion mit
fremder Kennung. Jede Abfrage nimmt p.userId.
- Jederzeit löschbar, ohne Rückfrage und ohne Grabstein.
- Vorabrufe zählen nicht. Ohne die Prüfung auf next-router-prefetch stünde
dort, worüber jemand mit der Maus gefahren ist.
Gelesen wird über dieselben Sichtbarkeitsfragmente wie überall: eine
vorgemerkte Kennung ist keine Berechtigung. Steigt eine Akte über die
Freigabestufe, verschwindet sie ohne Lücke und ohne Platzhalter; Personalakten
brauchen zusätzlich personnel.read. Das Zugriffsprotokoll bleibt unberührt und
bleibt die einzige Auskunft darüber, wer wann was gelesen hat.
Sie steht auf der Übersicht und im leeren Feld der Kommandopalette. Der zweite
Ort ist der eigentliche.
Nebenbei: NEXT_DIST_DIR, damit ein Build neben einem laufenden
Entwicklungsserver nicht dasselbe .next-Verzeichnis abräumt.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
3466215e2c
commit
bbae8546a0
@@ -705,10 +705,44 @@ Die **mitgelieferten** Ansichten stehen im Programm und nicht in der Datenbank,
|
||||
der Gegenwart abhängen: „Wiedervorlage diese Woche" und „unbearbeitet seit 14 Tagen" wären als
|
||||
gespeicherte Zeitpunkte schon am nächsten Tag falsch.
|
||||
|
||||
„Zuletzt geöffnet" aus docs/08 fehlt: dafür müsste jeder Aufruf jeder Akte mitgeschrieben
|
||||
werden, und das Zugriffsprotokoll führt nur Stufe 3 aufwärts. Eine eigene Spur dafür anzulegen
|
||||
wäre eine Überwachungsfunktion, die niemand bestellt hat — wenn sie gebraucht wird, sollte das
|
||||
eine bewusste Entscheidung sein und keine Nebenwirkung.
|
||||
### „Zuletzt geöffnet" ist eine Sprungliste, kein Verlauf
|
||||
|
||||
Die Ansicht aus docs/08 blieb zunächst offen, weil dafür jeder Aufruf jeder Akte mitgeschrieben
|
||||
werden muss, während das Zugriffsprotokoll erst ab Stufe 3 mitschreibt. Eine zweite Spur daneben
|
||||
ist die Sorte Funktion, die harmlos aussieht und es nicht ist: sie heisst „Zuletzt geöffnet" und
|
||||
beantwortet, wenn man sie falsch baut, die Frage *wer hat wann worin gelesen* — nur eben ohne die
|
||||
Regeln, Gründe und Protokollierung, unter denen diese Frage sonst steht.
|
||||
|
||||
Sie ist jetzt gebaut, und vier Festlegungen halten sie auf der Seite der Bequemlichkeit:
|
||||
|
||||
**Kein Verlauf.** Der Primärschlüssel von `RecentView` ist `(userId, targetType, targetId)`. Je
|
||||
Nutzer und Datensatz gibt es genau eine Zeile, die beim nächsten Öffnen überschrieben wird. Die
|
||||
Tabelle hat damit keine Form, in der sie sagen könnte, wie oft, wie lange oder in welcher
|
||||
Reihenfolge jemand gearbeitet hat. Zwanzig Einträge, älteres fällt hinten heraus.
|
||||
|
||||
**Nur die eigene.** Es gibt in der Anwendung keinen Weg, die Liste eines anderen zu lesen: keine
|
||||
Ansicht, keinen Adminbereich, keine Funktion, die eine fremde Kennung entgegennimmt. Jede Abfrage
|
||||
in `lib/recent/` nimmt `p.userId`.
|
||||
|
||||
**Jederzeit löschbar**, ohne Rückfrage und ohne Grabstein. Regel 2 aus CLAUDE.md gilt für den
|
||||
Verlauf einer Akte, nicht für eine Merkliste — was hier verschwindet, ist keine Aussage über die
|
||||
Akte, sondern eine Bequemlichkeit für einen Menschen.
|
||||
|
||||
**Vorabrufe zählen nicht.** Next holt die Seiten hinter sichtbaren Links im Voraus. Ohne die
|
||||
Prüfung auf `next-router-prefetch` stünde in der Liste, worüber jemand mit der Maus gefahren ist —
|
||||
die Übersicht allein würde sie mit zehn Akten füllen, die niemand geöffnet hat. Das wäre die
|
||||
unangenehmere Sorte falsch: eine Aufzeichnung von Aufmerksamkeit statt von Handlung.
|
||||
|
||||
Gelesen wird die Liste über dieselben Sichtbarkeitsfragmente wie alles andere. Eine vorgemerkte
|
||||
Kennung ist keine Berechtigung: steigt eine Akte nachträglich über die Freigabestufe, verschwindet
|
||||
sie aus der Liste, ohne Lücke und ohne Platzhalter. Für Personalakten reicht die Stufe nicht, es
|
||||
braucht zusätzlich `personnel.read` — wie überall sonst.
|
||||
|
||||
Das Zugriffsprotokoll bleibt unberührt und bleibt die einzige Auskunft darüber, wer wann was
|
||||
gelesen hat.
|
||||
|
||||
Sie steht auf der Übersicht und im leeren Feld der Kommandopalette. Der zweite Ort ist der
|
||||
eigentliche: wer Strg+K drückt, will meistens dorthin zurück, wo er eben war.
|
||||
|
||||
### Die Kommandopalette wiegt nichts
|
||||
|
||||
|
||||
Reference in New Issue
Block a user