Changeset 21ef238 in Klonkt for src/config/database.js


Ignore:
Timestamp:
08/10/2026 04:53:05 PM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
e215090
Parents:
41de7cb
Message:

Ongelezen per gesprek: een COUNT, en Read als gebeurtenis

shaer-frontend-3tx. De kopjeslezing draagt nu shaer:unread per gesprek, plus
shaer:unreadWave als er een zwaai bij zit -- een zetje van een guardian is geen
gesprek en hoort niet opgeteld te worden.

GEEN BIJGEHOUDEN GETAL (Barts besluit): het aantal is een COUNT over de
berichten na de leesmarkering. Niets om op te hogen bij bezorging, niets om te
verlagen bij lezen, en bij een verwijdering klopt het vanzelf weer -- een
teller zou blijven staan en dan zegt de badge 3 terwijl er niets is. Er staat
een toets op precies dat geval.

READ IS EEN GEBEURTENIS, geen zetbare stand (Barts vraag: een stille client
stuurt toch geen Undo{Read}?). AS2 kent Read; markRead neemt het maximum, dus
een toestel dat een week uit stond kan gelezen berichten niet terugzetten op
ongelezen. Ook daar staat een toets op. Geen shaer:seen verzonnen.

De markering is de samengestelde cursor (stempel|ref), zelfde vorm als de
gesprekspaginering: twee berichten in dezelfde seconde is bij DM's een gesprek
en geen randgeval.

En conversationItems geeft nu PAREN terug in plaats van een losse lijst. Een
kop levert niet altijd een item op (dichte poort, ontbrekende rij), en op index
koppelen zou de telling stil aan het verkeerde gesprek hangen.

862/862 groen.

Co-Authored-By: Claude Opus 5 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/config/database.js

    r41de7cb r21ef238  
    899899  try {
    900900    db.exec(`
     901      -- Tot waar jij een gesprek gelezen hebt (shaer-frontend-3tx).
     902      --
     903      -- Een MARKERING, geen teller: het aantal ongelezen berichten is een
     904      -- COUNT over de berichten die na deze cursor komen. Een opgeslagen
     905      -- getal zou opgehoogd, verlaagd en gerepareerd moeten worden, en zou
     906      -- blijven staan als er iets verwijderd wordt -- badge zegt 3, er is
     907      -- niets.
     908      --
     909      -- De cursor is samengesteld ('<stempel>|<ref>'), dezelfde vorm als de
     910      -- gesprekspaginering en om dezelfde reden: twee berichten in dezelfde
     911      -- seconde is bij DM's een gesprek, geen randgeval.
     912      CREATE TABLE IF NOT EXISTS ap_read_markers (
     913        slug TEXT NOT NULL,
     914        other TEXT NOT NULL,          -- de tegenpartij (actor uri)
     915        cursor TEXT NOT NULL,
     916        at DATETIME DEFAULT CURRENT_TIMESTAMP,
     917        PRIMARY KEY (slug, other)
     918      );
    901919      CREATE TABLE IF NOT EXISTS ap_feed_state (
    902920        slug TEXT NOT NULL,
Note: See TracChangeset for help on using the changeset viewer.