Changeset c34ef26 in Klonkt


Ignore:
Timestamp:
08/10/2026 01:26:03 PM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
f549cf5
Parents:
59d963f
Message:

De ouderdom van een oppak haalde de apps niet (shaer-lgo)

Barts besluit was dat "opgepikt" niet vervalt maar zichtbaar VEROUDERT -- het
verschil tussen "er is iemand mee bezig" en "er was ooit iemand mee bezig". Het
guardian-paneel toont dat ook, met een regel zodra het oudste oppakken langer
dan een uur geleden is.

Maar helpCollection gooide het veld weg. helpStatus() rekent oldestPickupAt
netjes uit; de C2S-wachtrij serialiseerde alleen open, handledBy, handledAt,
pickedUpBy en formerWard. In Shaer zag een oppak van vijf minuten er dus uit als
een van vijf dagen -- en de faalstand is hier nou juist "iedereen denkt dat het
geregeld is".

Als TIJDSTIP en niet als leeftijd, om dezelfde reden die in guardian.js staat:
een leeftijd maakt elk antwoord anders en dan kan de ETag nooit gelijk zijn. De
client rekent zelf terug.

En weg zodra hij is afgehandeld: hoe lang er iemand naar keek is dan geen
informatie meer, en zou als "er wacht nog iets" lezen.

Gecontroleerd dat de test bijt: veld eruit -> 7 groen 1 rood, terug -> 8 groen.

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

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/services/guardianship/queues.js

    r59d963f rc34ef26  
    294294    'shaer:handledAt': h.state.handled ? h.state.handled.at : undefined,
    295295    'shaer:pickedUpBy': h.state.pickedUpBy.map((p) => p.handle || p.uri),
     296    // HOE OUD het oudste oppakken is (shaer-lgo). Barts besluit was dat
     297    // "opgepikt" niet vervalt maar zichtbaar VEROUDERT -- het verschil tussen
     298    // "er is iemand mee bezig" en "er was ooit iemand mee bezig". Het paneel
     299    // toonde dat al; de apps konden het niet, want dit veld bleef hier liggen.
     300    // Een oppak van vijf minuten zag er daar uit als een van vijf dagen, en de
     301    // faalstand is hier nou juist "iedereen denkt dat het geregeld is".
     302    //
     303    // Als TIJDSTIP en niet als leeftijd: een leeftijd maakt elk antwoord anders
     304    // en dan kan de ETag nooit gelijk zijn. De client rekent zelf terug, precies
     305    // zoals guardian.js het doet.
     306    'shaer:oldestPickupAt': h.state.oldestPickupAt || undefined,
    296307    'shaer:formerWard': h.state.formerWard || undefined,
    297308  }));
  • test/help-c2s.test.js

    r59d963f rc34ef26  
    6060});
    6161
     62test('en de apps krijgen te horen HOE OUD dat oppakken is', () => {
     63  // Barts besluit: opgepikt vervalt niet maar veroudert zichtbaar -- het
     64  // verschil tussen "er is iemand mee bezig" en "er was ooit iemand mee bezig".
     65  // Het paneel toonde dat al uit dezelfde staat; de apps kregen het veld niet,
     66  // dus daar zag een oppak van vijf minuten eruit als een van vijf dagen.
     67  const coll = queues.helpCollection('https://x/queues/help', 'oma');
     68  const item = coll.orderedItems.find((i) => i.id === BOEI);
     69  assert.ok(item['shaer:oldestPickupAt'], 'het veld staat er');
     70  assert.ok(!Number.isNaN(Date.parse(item['shaer:oldestPickupAt'])), 'en is een leesbaar tijdstip');
     71  // Een TIJDSTIP en geen leeftijd: een leeftijd maakt elk antwoord anders en
     72  // dan kan de ETag nooit gelijk zijn. De client rekent zelf terug.
     73  assert.equal(typeof item['shaer:oldestPickupAt'], 'string');
     74});
     75
    6276test('afsluiten vanuit de app sluit hem ook echt', async () => {
    6377  await AP.ingestOutboxActivity(site(), user, marker('handled'));
     
    7589  assert.ok(item['shaer:handledBy']);
    7690  assert.equal(item['shaer:helpRequest'], true);
     91  // En de ouderdom is WEG zodra hij is afgehandeld: hoe lang er iemand naar
     92  // keek is dan geen informatie meer, en zou als "er wacht nog iets" lezen.
     93  assert.equal(item['shaer:oldestPickupAt'], undefined);
    7794});
    7895
Note: See TracChangeset for help on using the changeset viewer.