DogFatherGit and Claude Opus 5
34a227605c
Der Ausliefer-Helfer haengt nicht mehr an Express -- und ist einzeln prüfbar
...
GEFUNDEN BEIM MESSEN, NICHT BEIM LESEN.
Nach dem Ausliefern wollte ich auf dem Server nachweisen, dass die DORT
liegende `helfer-ausliefern.mjs` wirklich Teilanfragen beantwortet. Dafuer
habe ich ihr einen winzigen Server vorgesetzt -- `node:http`, eine
Wegwerfdatei in /tmp, eigener Port. Die volle Datei kam sauber
(`accept-ranges: bytes`, `content-length: 1000`). Beim ersten Abschnitt:
TypeError: res.status is not a function
at liefereDatei (.../helfer-ausliefern.mjs:134:9)
`res.status()` gibt es nur an einer EXPRESS-Antwort. Alle zehn Aufrufer
SIND Express-Handler, im Betrieb lief also alles richtig -- 146 Pruefungen
in pruef-chat-anhaenge und 33 in pruef-wissen-neu haben es bestaetigt, und
sie hatten recht. Trotzdem ist es ein Mangel: Der Helfer hing an Express,
ohne dass irgendwo stand warum, und liess sich nur noch INNERHALB der
ganzen Anwendung pruefen.
GEAENDERT: Die drei Stellen setzen jetzt `res.statusCode = n` und rufen
`res.end()`. Das kennen beide Antwortarten, und Express aendert daran
nichts -- an der ausgelieferten Antwort ist kein Unterschied messbar.
DAZU EINE PRUEFUNG, DIE OHNE SERVER AUSKOMMT (pruef-struktur, +14):
`bereichLesen()` steht ausdruecklich als eigene, ausgefuehrte Funktion da.
Jetzt wird sie auch einzeln befragt -- ohne Browser, ohne Server, ohne
Datenbank:
kein Kopf / leerer Kopf -> volle Datei
bytes=0-9 · bytes=5- · bytes=-8 -> der richtige Abschnitt
bytes=0-5000 -> endet am Dateiende (erlaubt)
bytes=1000- · 9-5 · -0 · leere Datei -> 416
mehrere Bereiche · fremde Einheit · Unsinn -> volle Datei
Die letzte Zeile ist die wichtigste: NICHT VERSTANDEN ist etwas anderes als
UNERFUELLBAR. Auf einen Kopf, den der Server nicht liest, gehoert die ganze
Datei -- nie eine falsche Teilmenge und nie eine Absage.
DIE LEHRE, die ich mir aufschreibe: Durch zehn Express-Handler hindurch
waere das nie aufgefallen. Was sich einzeln pruefen laesst, wird einzeln
geprueft -- und ein Helfer, den man nur mit der ganzen Anwendung messen
kann, ist schwerer zu beweisen als einer, dem eine Antwort genuegt.
GEPRUEFT: pruef-struktur 85 -> 99 ok · pruef-chat-anhaenge 146 ok ·
pruef-wissen-neu 22 ok. Danach dieselbe Messung auf dem Server noch einmal,
gegen die ausgelieferte Datei.
BERICHTIGUNG ZUM COMMIT DAVOR: Dort steht „pruef-wissen-neu 33 ok". Das
war keine Messung, sondern geschaetzt -- nachgezaehlt sind es 22 (16 vorher
plus meine 6). Die Zahl stimmte nicht, der Befund schon. Eine Zahl, die man
nicht gezaehlt hat, gehoert nicht in eine Zusammenfassung.
Co-Authored-By: Claude Opus 5 <[email protected] >
2026-10-02 03:46:32 +02:00
..
2026-08-22 21:36:11 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-09-23 01:36:09 +02:00
2026-09-25 04:35:12 +02:00
2026-09-23 14:30:02 +02:00
2026-09-28 09:08:42 +02:00
2026-08-21 19:25:12 +02:00
2026-10-02 03:46:32 +02:00
2026-09-08 01:14:57 +02:00
2026-09-17 11:28:37 +02:00
2026-10-01 00:52:07 +02:00
2026-09-19 20:16:23 +02:00
2026-10-01 23:18:13 +02:00
2026-09-21 13:00:01 +02:00
2026-09-29 16:14:13 +02:00
2026-09-29 23:48:46 +02:00
2026-09-18 02:55:23 +02:00
2026-10-01 15:50:41 +02:00
2026-09-30 13:39:55 +02:00
2026-10-01 23:18:13 +02:00
2026-09-22 13:59:55 +02:00
2026-09-14 11:35:21 +02:00
2026-09-22 13:59:55 +02:00
2026-09-19 02:04:03 +02:00
2026-09-28 09:08:42 +02:00
2026-09-28 01:52:22 +02:00
2026-09-18 10:10:04 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 12:10:29 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 13:37:05 +02:00
2026-09-26 12:42:59 +02:00
2026-08-26 19:26:40 +02:00
2026-08-05 17:29:58 +02:00
2026-10-01 13:37:05 +02:00
2026-09-20 22:51:21 +02:00
2026-09-30 23:48:49 +02:00
2026-09-20 22:51:21 +02:00
2026-09-25 22:54:21 +02:00
2026-09-20 22:51:21 +02:00
2026-09-29 14:51:52 +02:00
2026-09-20 22:51:21 +02:00
2026-09-24 11:27:10 +02:00
2026-09-20 22:51:21 +02:00
2026-09-30 23:48:49 +02:00
2026-09-20 22:51:21 +02:00
2026-09-25 17:02:23 +02:00
2026-09-22 23:47:52 +02:00
2026-10-01 23:18:13 +02:00
2026-09-20 22:51:21 +02:00
2026-09-20 22:51:21 +02:00
2026-09-23 17:13:35 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 01:45:16 +02:00
2026-09-16 18:03:50 +02:00
2026-09-20 22:51:21 +02:00
2026-09-29 16:00:57 +02:00
2026-09-20 22:51:21 +02:00
2026-09-20 22:51:21 +02:00
2026-09-30 11:38:38 +02:00
2026-10-01 13:37:05 +02:00
2026-09-20 22:51:21 +02:00
2026-10-01 12:10:29 +02:00
2026-10-01 00:22:55 +02:00
2026-10-01 13:54:45 +02:00
2026-09-29 17:16:26 +02:00
2026-09-30 11:10:49 +02:00
2026-09-22 15:15:00 +02:00
2026-10-02 03:41:18 +02:00
2026-09-22 23:33:43 +02:00
2026-10-01 13:37:05 +02:00
2026-09-22 23:14:38 +02:00
2026-09-29 16:14:13 +02:00
2026-09-29 16:14:13 +02:00
2026-09-25 03:39:04 +02:00
2026-09-25 03:07:05 +02:00
2026-09-25 02:25:06 +02:00
2026-09-24 23:49:01 +02:00
2026-09-24 23:49:01 +02:00
2026-09-20 22:51:21 +02:00
2026-09-29 16:14:13 +02:00
2026-10-01 13:37:05 +02:00
2026-09-20 22:51:21 +02:00
2026-09-29 14:51:52 +02:00
2026-09-20 22:51:21 +02:00
2026-10-01 00:22:55 +02:00
2026-10-01 13:54:45 +02:00
2026-09-29 13:45:02 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 14:27:44 +02:00
2026-09-22 14:25:56 +02:00
2026-09-22 14:25:56 +02:00
2026-09-24 11:44:01 +02:00
2026-09-25 12:31:21 +02:00
2026-09-30 16:48:24 +02:00
2026-10-01 13:37:05 +02:00
2026-09-20 22:51:21 +02:00
2026-09-20 22:51:21 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 13:37:05 +02:00
2026-09-11 13:24:17 +02:00
2026-10-01 00:22:55 +02:00
2026-10-01 00:22:55 +02:00
2026-10-01 23:26:01 +02:00
2026-10-01 23:26:01 +02:00
2026-09-20 22:51:21 +02:00
2026-09-23 14:29:32 +02:00
2026-09-25 02:47:07 +02:00
2026-09-29 16:14:13 +02:00
2026-10-01 13:37:05 +02:00
2026-09-23 00:32:48 +02:00
2026-09-25 00:03:19 +02:00
2026-09-22 13:25:28 +02:00
2026-09-20 22:51:21 +02:00
2026-09-20 22:51:21 +02:00
2026-09-22 19:46:47 +02:00
2026-10-01 01:45:16 +02:00
2026-09-25 14:13:05 +02:00
2026-09-22 14:25:56 +02:00
2026-09-25 23:50:54 +02:00
2026-09-26 12:42:59 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 13:37:05 +02:00
2026-09-28 01:52:22 +02:00
2026-10-01 00:22:55 +02:00
2026-09-22 23:14:38 +02:00
2026-09-21 11:51:06 +02:00
2026-10-01 13:37:05 +02:00
2026-09-29 16:14:13 +02:00
2026-10-01 01:45:16 +02:00
2026-09-20 22:51:21 +02:00
2026-09-19 20:16:23 +02:00
2026-09-20 22:51:21 +02:00
2026-09-20 22:51:21 +02:00
2026-09-20 22:51:21 +02:00
2026-09-03 09:48:38 +02:00
2026-09-22 09:28:29 +02:00
2026-09-25 22:54:21 +02:00
2026-09-20 22:51:21 +02:00
2026-10-01 13:37:05 +02:00
2026-09-24 13:01:25 +02:00
2026-10-01 00:22:55 +02:00
2026-10-01 01:45:16 +02:00
2026-10-01 00:22:55 +02:00
2026-10-01 00:22:55 +02:00
2026-10-01 00:22:55 +02:00
2026-10-01 00:22:55 +02:00
2026-09-21 13:00:01 +02:00
2026-09-24 00:50:42 +02:00
2026-09-20 22:51:21 +02:00
2026-09-25 23:19:50 +02:00
2026-10-01 01:45:16 +02:00
2026-09-17 18:59:19 +02:00
2026-10-01 13:37:05 +02:00
2026-09-29 16:14:13 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 13:37:05 +02:00
2026-09-29 14:51:52 +02:00
2026-09-20 22:51:21 +02:00
2026-09-25 14:13:05 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 01:19:41 +02:00
2026-10-01 13:37:05 +02:00
2026-09-20 22:51:21 +02:00
2026-09-25 06:46:49 +02:00
2026-09-30 13:39:55 +02:00
2026-09-29 23:48:46 +02:00
2026-09-05 18:05:28 +02:00
2026-10-01 12:10:29 +02:00
2026-09-25 22:54:21 +02:00
2026-09-21 17:44:48 +02:00
2026-09-20 19:45:14 +02:00
2026-09-20 22:51:21 +02:00
2026-09-23 00:29:25 +02:00
2026-09-20 22:51:21 +02:00
2026-09-25 06:46:49 +02:00
2026-09-20 22:51:21 +02:00
2026-09-20 22:51:21 +02:00
2026-09-25 22:54:21 +02:00
2026-09-20 22:51:21 +02:00
2026-09-25 22:54:21 +02:00
2026-09-11 11:17:37 +02:00
2026-09-29 14:51:52 +02:00
2026-09-20 22:51:21 +02:00
2026-09-20 22:51:21 +02:00
2026-09-28 20:03:38 +02:00
2026-10-01 01:45:16 +02:00
2026-09-20 22:51:21 +02:00
2026-10-01 13:37:05 +02:00
2026-09-20 22:51:21 +02:00
2026-09-22 00:54:28 +02:00
2026-10-02 03:46:32 +02:00
2026-09-24 11:37:03 +02:00
2026-09-25 05:10:58 +02:00
2026-10-01 13:37:05 +02:00
2026-10-02 00:36:44 +02:00
2026-09-20 22:51:21 +02:00
2026-10-01 00:22:55 +02:00
2026-10-01 00:22:55 +02:00
2026-09-29 14:51:52 +02:00
2026-09-29 16:14:13 +02:00
2026-09-21 11:51:06 +02:00
2026-09-20 22:51:21 +02:00
2026-09-20 22:51:21 +02:00
2026-09-29 16:00:57 +02:00
2026-10-01 13:37:05 +02:00
2026-09-29 17:16:26 +02:00
2026-10-01 01:45:16 +02:00
2026-09-25 22:54:21 +02:00
2026-10-01 01:45:16 +02:00
2026-09-29 14:51:52 +02:00
2026-09-19 15:23:15 +02:00
2026-10-01 01:45:16 +02:00
2026-09-29 14:04:06 +02:00
2026-10-01 01:45:16 +02:00
2026-09-20 22:51:21 +02:00
2026-09-20 22:51:21 +02:00
2026-09-21 11:44:45 +02:00
2026-09-29 16:14:13 +02:00
2026-09-20 22:51:21 +02:00
2026-09-25 03:20:04 +02:00
2026-10-01 01:45:16 +02:00
2026-09-22 14:25:56 +02:00
2026-09-21 13:41:06 +02:00
2026-09-20 22:51:21 +02:00
2026-10-01 01:45:16 +02:00
2026-10-01 00:52:07 +02:00
2026-10-01 13:37:05 +02:00
2026-10-01 14:27:44 +02:00
2026-10-02 03:41:18 +02:00
2026-09-20 22:51:21 +02:00
2026-10-01 13:37:05 +02:00
2026-09-06 23:15:37 +02:00
2026-10-01 00:22:55 +02:00
2026-09-16 00:59:51 +02:00
2026-09-23 14:29:32 +02:00
2026-09-21 11:44:55 +02:00
2026-09-21 11:44:55 +02:00
2026-10-01 13:37:05 +02:00
2026-09-29 16:14:13 +02:00
2026-09-30 12:14:23 +02:00
2026-08-22 18:06:52 +02:00
2026-08-22 19:03:30 +02:00
2026-08-25 22:28:52 +02:00
2026-08-22 18:06:52 +02:00
2026-09-30 15:45:48 +02:00
2026-09-28 09:08:42 +02:00
2026-09-28 19:36:05 +02:00
2026-09-25 05:10:58 +02:00
2026-08-26 20:19:25 +02:00
2026-08-19 20:21:46 +02:00
2026-08-22 18:47:45 +02:00
2026-08-22 18:06:52 +02:00
2026-08-22 18:20:34 +02:00
2026-08-22 18:06:52 +02:00
2026-08-22 18:54:58 +02:00
2026-10-01 01:19:41 +02:00
2026-09-15 01:09:52 +02:00
2026-09-24 14:14:25 +02:00
2026-09-05 11:56:43 +02:00
2026-09-01 16:49:56 +02:00
2026-09-19 19:15:51 +02:00
2026-09-22 14:25:56 +02:00
2026-10-01 01:45:16 +02:00
2026-10-01 01:45:16 +02:00
2026-09-24 13:01:25 +02:00
2026-10-01 01:56:15 +02:00
2026-09-22 09:35:36 +02:00
2026-10-01 01:45:16 +02:00
2026-09-17 15:58:28 +02:00
2026-09-23 11:16:30 +02:00
2026-09-17 15:58:28 +02:00
2026-10-01 01:45:16 +02:00
2026-10-02 03:41:18 +02:00
2026-10-01 01:56:15 +02:00
2026-10-02 03:41:18 +02:00
2026-09-24 23:49:01 +02:00
2026-08-27 22:53:51 +02:00
2026-10-01 01:45:16 +02:00
2026-10-02 03:41:18 +02:00
2026-09-22 09:28:29 +02:00
2026-10-01 01:45:16 +02:00
2026-09-22 14:25:56 +02:00
2026-09-15 13:22:55 +02:00
2026-09-11 02:10:15 +02:00
2026-09-28 10:14:26 +02:00
2026-09-24 23:49:01 +02:00
2026-10-01 01:45:16 +02:00
2026-09-24 20:40:20 +02:00
2026-09-03 00:00:41 +02:00
2026-09-16 01:46:07 +02:00
2026-10-02 03:41:18 +02:00
2026-09-10 12:52:45 +02:00
2026-09-27 17:34:16 +02:00
2026-09-25 02:47:07 +02:00
2026-09-17 16:15:21 +02:00
2026-09-11 02:10:15 +02:00
2026-09-19 18:51:43 +02:00
2026-09-30 13:39:55 +02:00
2026-09-30 15:45:48 +02:00
2026-09-22 23:33:43 +02:00
2026-09-24 11:16:26 +02:00
2026-10-01 01:45:16 +02:00
2026-09-11 02:10:15 +02:00
2026-10-01 01:45:16 +02:00
2026-09-24 20:40:20 +02:00
2026-09-05 11:42:17 +02:00
2026-09-28 20:03:38 +02:00
2026-09-11 13:24:17 +02:00
2026-10-02 03:41:18 +02:00
2026-09-15 14:30:31 +02:00
2026-10-02 03:41:18 +02:00
2026-09-22 14:25:56 +02:00
2026-09-09 15:42:14 +02:00
2026-09-23 11:03:12 +02:00
2026-09-20 19:20:18 +02:00
2026-09-24 00:50:42 +02:00
2026-09-18 19:00:43 +02:00
2026-10-01 01:56:15 +02:00
2026-09-24 20:40:20 +02:00
2026-09-19 15:23:15 +02:00
2026-09-15 12:25:36 +02:00
2026-09-06 16:50:30 +02:00
2026-10-01 01:45:16 +02:00
2026-10-01 01:45:16 +02:00
2026-10-01 01:56:15 +02:00
2026-09-21 17:44:48 +02:00
2026-10-01 01:56:15 +02:00
2026-10-02 03:41:18 +02:00
2026-09-15 13:29:39 +02:00
2026-09-14 11:35:21 +02:00
2026-09-19 15:07:31 +02:00
2026-10-01 01:45:16 +02:00
2026-10-01 19:28:38 +02:00