Index: src/config/database.js
===================================================================
--- src/config/database.js	(revision 8151340aee19dd0280b5185a8c3e9c56dc279653)
+++ src/config/database.js	(revision 1d1fdc97939238a96492ef7adccedc1b08f51985)
@@ -1002,4 +1002,34 @@
     db.prepare("UPDATE posts SET cover_image_url = NULL WHERE cover_image_url LIKE '/media/reply-media/%' AND instr(content, cover_image_url) > 0").run();
   } catch { /* posts table absent on fresh init */ }
+  // Bestaande rijen naar EEN spelling (shaer-a937). De schrijfwegen leveren
+  // sinds deze release ISO; dit haalt na wat er in SQL-notatie is blijven
+  // staan, zodat de sortering ook zonder de isoSql-wikkel klopt.
+  //
+  // Alleen rijen met een spatie op positie 11 en geen 'T': dat is precies de
+  // CURRENT_TIMESTAMP-vorm. Idempotent -- een tweede keer draaien vindt niets
+  // meer -- en het raakt een ISO-stempel nooit aan.
+  //
+  // strftime geeft NULL op iets dat het niet als tijd herkent; de WHERE laat
+  // zulke rijen met rust, want een onleesbare stempel vervangen door NULL is
+  // gegevens weggooien. Ze blijven staan zoals ze stonden.
+  {
+    const kolommen = [
+      ['ap_timeline', 'created_at'], ['ap_timeline', 'published'],
+      ['ap_mentions', 'created_at'], ['ap_mentions', 'published'],
+      ['ap_interactions', 'created_at'], ['ap_interactions', 'published'],
+      ['ap_outbox', 'created_at'],
+    ];
+    let veranderd = 0;
+    for (const [tabel, kolom] of kolommen) {
+      try {
+        const r = db.prepare(
+          `UPDATE ${tabel} SET ${kolom} = strftime('%Y-%m-%dT%H:%M:%SZ', ${kolom})
+            WHERE ${kolom} IS NOT NULL AND ${kolom} LIKE '____-__-__ %'
+              AND strftime('%Y-%m-%dT%H:%M:%SZ', ${kolom}) IS NOT NULL`).run();
+        veranderd += r.changes;
+      } catch { /* tabel bestaat nog niet op een verse installatie */ }
+    }
+    if (veranderd) console.log(`🕒 tijdstempels genormaliseerd: ${veranderd} rijen`);
+  }
   ensureColumn('ap_mentions', 'wave', 'INTEGER');  // inbound guardian wave
   // FEP-633c §2.2: object hint that the author is a ward. Register-only for now;
