- Timestamp:
- 08/08/2026 09:40:15 PM (4 weeks ago)
- Branches:
- main
- Children:
- f3c7a05
- Parents:
- a4b903a
- git-author:
- Robin <roboburr@…> (08/08/2026 09:40:13 PM)
- git-committer:
- roboburr <roboburr@…> (08/08/2026 09:40:15 PM)
- File:
-
- 1 edited
-
tools/ward-farm/farm.mjs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tools/ward-farm/farm.mjs
ra4b903a r7c38a09 124 124 // bij zodat deze code nooit ergens anders terechtkomt. 125 125 126 /** 127 * Alles wat er gebeurt, en meteen naar schijf. 128 * 129 * Stond eerst los: een push in het geheugen, en wegschrijven alleen in de takken 130 * die toch al iets bewaarden. Gevolg: /log en state.json spraken elkaar tegen -- 131 * de een had een Follow die de ander niet kende. Bij een testkudde die je gebruikt 132 * om een fout te vinden is dat het ergste wat je kunt hebben: dan zoek je in 133 * bewijs dat zelf niet klopt. 134 */ 135 function noteer(w, regel) { 136 w.log.push({ at: new Date().toISOString(), ...regel }); 137 if (w.log.length > 80) w.log = w.log.slice(-80); 138 bewaarStaat(staat); 139 } 140 126 141 async function verwerkInbox(w, activity) { 127 142 const type = Array.isArray(activity.type) ? activity.type[0] : activity.type; 128 143 const actor = typeof activity.actor === 'string' ? activity.actor : (activity.actor && activity.actor.id); 129 w.log.push({ at: new Date().toISOString(), type, actor }); 130 if (w.log.length > 50) w.log = w.log.slice(-50); 144 noteer(w, { type, actor }); 131 145 132 146 const o = activity.object; … … 146 160 try { 147 161 const inbox = await inboxVan(doel); 148 await bezorg(w, inbox, {162 const code = await bezorg(w, inbox, { 149 163 '@context': ['https://www.w3.org/ns/activitystreams', { shaer: 'https://shaer.klonkt.com/ns#' }], 150 164 id: `${uriVan(w.naam)}/accepts/${crypto.randomUUID()}`, 151 type: 'Accept', actor: uriVan(w.naam), to: aan, object: activity, 165 // `object` is de OFFER-ID, niet het hele Offer. Zo stuurt Klonkt hem 166 // ook (fanout in handshake.js), en een testkudde die er net anders 167 // uitziet dan een echte implementatie laat je een verschil onderzoeken 168 // dat je zelf gemaakt hebt. 169 type: 'Accept', actor: uriVan(w.naam), to: aan, object: activity.id, 152 170 }); 153 } catch (e) { w.log.push({ at: new Date().toISOString(), fout: String(e.message) }); } 171 // De statuscode erbij. "Hij stuurde een Accept" is een aanname zolang je 172 // niet weet wat de andere kant ervan vond. 173 noteer(w, { verstuurd: 'Accept', naar: doel, code }); 174 } catch (e) { noteer(w, { fout: String(e.message), naar: doel }); } 154 175 } 155 176 bewaarStaat(staat); … … 250 271 let uit = 'onleesbaar'; 251 272 try { uit = await verwerkInbox(w, JSON.parse(body)); } 252 catch (e) { w.log.push({ at: new Date().toISOString(),fout: String(e.message) }); }273 catch (e) { noteer(w, { fout: String(e.message) }); } 253 274 // 202 hoe dan ook: een inbox die 4xx geeft op iets dat hij niet kent laat de 254 275 // afzender eindeloos opnieuw proberen.
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)