Changeset 6259305 in Klonkt


Ignore:
Timestamp:
08/09/2026 08:46:28 AM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
e62eee4
Parents:
5ae4d61
git-author:
Robin <roboburr@…> (08/09/2026 08:46:10 AM)
git-committer:
Robin <roboburr@…> (08/09/2026 08:46:28 AM)
Message:

Eén weg naar de hulpvragen: het paneel had een eigen afkap (shaer-6wt, staart)

Gevonden bij de limietinventarisatie na Barts 429-jacht. De fix van
vanochtend haalt de afkap van OPEN hulpvragen weg in helpItemsFor -- maar
de guardian-PWA had een eigen kopie van die query staan, mét LIMIT 50.
Precies de gebruiker uit die bead (de jeugdzorgmedewerker met een
caseload) zag in het PANEEL dus nog steeds open vragen wegvallen zodra er
meer dan vijftig waren.

Twee wegen naar dezelfde staat, en de fix nam er maar één -- hetzelfde
patroon dat eerder bij de reply-gate misging.

De reden dat die kopie bestond was echt: het paneel toont kaarten en had
note_url, media, quote en emoji nodig, die de queue-query niet selecteerde.
Dus draagt de bron ze nu; de queue leest ze simpelweg niet, en er is geen
aanleiding meer om opnieuw te splitsen.

Drie toetsen met een caseload van 80: alle open vragen komen door, de
bron draagt de kaartvelden, en de geschiedenis mag nog steeds afgekapt
worden. De testopstelling ving onderweg zijn eigen les: zonder echte
ward-relaties telt elke vraag als van een oud-ward en dus niet-open --
withWardship doet dat met opzet, mijn eerste opzet toetste per ongeluk
dat pad. Alle 785 groen.

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

Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • src/routes/guardian.js

    r5ae4d61 r6259305  
    8282  const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, '');
    8383  const me = AP.actorId(base, site.slug);
    84   const help = db.prepare(
    85     `SELECT object_uri, note_url, actor_uri, actor_name, actor_handle, actor_icon, content, published, created_at,
    86             emoji_json, actor_emoji_json, media_json, quote_json, embed_json
    87      FROM ap_mentions WHERE slug = ? AND help_request = 1 ORDER BY created_at DESC LIMIT 50`
    88   ).all(site.slug);
    89   // De gedeelde staat in EEN query (shaer-lgo): wie er al op af is en of het is
    90   // afgesloten. Per kaart vragen zou hier een N+1 opleveren, en dit is precies
    91   // het scherm dat een guardian in een haast openslaat.
    92   const helpStaat = Guardianship.help.statusFor(help.map((h) => h.object_uri));
    93   // Wie bewaak je NU nog? Een hulpvraag van een oud-ward is niet meer van jou en
    94   // hoort niet in de lijst die om je aandacht vraagt te blijven staan.
    95   const mijnWards = new Set(Guardianship.listWards(site.slug).map((w) => w.other_uri));
    96   const helpItems = help.map((h) => ({
     84  // EEN weg naar de hulpvragen (Barts 429-jacht, 9-8): dit scherm had een
     85  // eigen kopie van de queue-query, met een afkap op 50 -- dus de fix die open
     86  // vragen nooit meer afkapt (shaer-6wt) ging aan het paneel voorbij, en juist
     87  // de guardian met een caseload zag oude open vragen wegvallen. Nu dezelfde
     88  // bron als de apps: open vragen volledig, geschiedenis afgekapt.
     89  const helpItems = Guardianship.queues.helpItemsFor(site.slug).map((h) => ({
    9790    ...h,
    98     // Bij twijfel OPEN. Een hulpvraag die er afgehandeld uitziet terwijl hij dat
    99     // niet is, is de gevaarlijke fout -- niet andersom.
    100     state: Guardianship.help.withWardship(
    101       helpStaat.get(h.object_uri) || { open: true, pickedUpBy: [], handled: null, oldestPickupAt: null },
    102       mijnWards.has(h.actor_uri),
    103     ),
    10491    // The dashboard is built in the browser, so it gets the body finished: the
    10592    // same partial de Krant and Berichten use. A 🛟 often carries a screenshot
  • src/services/guardianship/queues.js

    r5ae4d61 r6259305  
    214214  let rijen = [];
    215215  try {
     216    // Alle velden die een kaart kan tonen, niet alleen die van de queue: de
     217    // PWA had hierom een EIGEN kopie van deze query -- mét een afkap op 50,
     218    // waardoor de fix hierboven aan het paneel voorbijging (Barts 429-jacht,
     219    // 9-8). Een tweede weg naar dezelfde staat is precies wat er bij de
     220    // reply-gate al misging; nu is dit de enige weg, en dan hoort hij ook te
     221    // dragen wat een kaart nodig heeft. De extra kolommen kosten de queue
     222    // niets: die leest ze gewoon niet.
    216223    rijen = db.prepare(
    217       `SELECT object_uri, actor_uri, actor_name, actor_handle, actor_icon, content, published, created_at
     224      `SELECT object_uri, note_url, actor_uri, actor_name, actor_handle, actor_icon, content, published, created_at,
     225              emoji_json, actor_emoji_json, media_json, quote_json, embed_json
    218226       FROM ap_mentions WHERE slug = ? AND help_request = 1 ORDER BY created_at DESC`,
    219227    ).all(slug);
Note: See TracChangeset for help on using the changeset viewer.