Repository navigation
Das ausgelieferte Bundle rechnete noch mit werkstoff-ableitung/2 — und verschwieg den Belagleim - #52
Conversation
…verschwieg den Belagleim
cody-cad#164 hat FORMELVERSION auf "werkstoff-ableitung/3" gehoben, weil die Ableitung bei
gleichen Eingaben andere Ergebnisse liefert. Das Bundle unter public/werkstoff-bundle/ trug
noch /2 (gemessen: 4 Vorkommen, je eines in den vier Manifesten; jetzt 4x /3).
Neu erzeugt mit dem Rezept, nicht von Hand:
cd cody-cad (origin/main 5974b3d)
.venv/bin/python -m werkzeuge.demo_bundle --ausgabe <leerer ordner>
-> rc 0, projektion.json sha256 f652b163a6ccdfc5c337fd220cae47a5663aa26099cef207eff5d2cd0f4d6ba5
Der Unterordner bundle/ ersetzt public/werkstoff-bundle/. Die Dateiliste ist identisch.
Was sich ausser der Versionsnummer bewegt hat (inhaltlich, nicht kosmetisch):
- Jede der vier Karten und jedes der vier Manifeste tragen zwei zusaetzliche FEHLT-Ausschluesse
im Gewicht: leim/oben und leim/unten, Komponente ponal-flaechenleim-pvac, Grund
"Trockenmasse des Belagleims nicht hinterlegt - nicht addiert". Vorher standen dort nur
oberflaeche (FEHLT) und kante/vorne (ANDERSWO).
- Der Zahlenwert des Gewichts bewegt sich NICHT: 14.352 kg/m2 vorher wie nachher,
vollstaendig war schon vorher false (wegen der Oberflaeche). Was sich bewegt, ist die
Auskunft darueber, WAS fehlt: der Belagleim wurde bisher stillschweigend nicht addiert,
jetzt steht er als benannte Luecke da.
- Abgeleitete Fingerabdruecke ziehen mit: resolve_manifest_sha256 (4x) und karte_sha256 (4x).
- auftrag.json, katalogstand.json, entfernt.json und modell.glb sind unveraendert.
Die anderen beiden Aenderungen aus #164 greifen auf diesen Daten NICHT, und das ist kein
Versehen: das Bundle exportiert ueberhaupt keinen Preis (Karte und Manifest fuehren kein
Preisfeld, gegrept: 0 Treffer fuer "preis"), also kann "geschaetzte Mengen als Annahme statt
belegt" hier nichts bewegen. Und "Belag ohne Klebstoff als FEHLT" trifft nicht, weil die
Belaege des Demo-Aufbaus ihren Klebstoff referenzieren - genau deshalb nennt der neue
Ausschluss ponal-flaechenleim-pvac beim Namen statt des Belags.
Gegenpin nachgezogen (lib/werkstoff/bundle.test.ts): die vier karte_sha256, die acht Byte-Pins
ueber karten/ und manifeste/ und die FORMELVERSION. Die Zahlen sind vom Erzeugnis abgelesen,
wie es der Kommentar ueber BYTE_PINS vorgibt. AUFTRAG_PIN bleibt unveraendert - der Auftrag
ist derselbe, und cody-cad pinnt in tests/test_demo_bundle_rezept.py denselben Wert.
Rot war (alte Pins gegen das neue Bundle, npx vitest run lib/werkstoff/bundle.test.ts):
Tests 3 failed | 6 passed (9)
AssertionError: teil_beispielbo0oben: expected 'werkstoff-ableitung/3' to be
'werkstoff-ableitung/2'
karten/teil_beispielbo0oben.json von Hand geaendert? Bundle mit
`python -m werkzeuge.demo_bundle` neu erzeugen
expected 'e9b200cda5b9...' to be 'f9c51cea0b09...'
Der Gegenpin beisst also. Dass AUFTRAG_PIN unter den 6 Gruenen blieb, ist der Beleg dafuer,
dass sich der Auftrag wirklich nicht bewegt hat.
Zweiter Pruefstand (andere Pruefstelle, Faelle die vitest nicht erzeugen kann): die vier
karte_sha256 mit cody-cads eigenem kanonisch_hash ueber die AUSGELIEFERTEN Dateien
nachgerechnet - 4/4 OK. Der TS-Test kann das nicht (Python schreibt 120.0, JSON.stringify
schreibt 120), er kommt nur ueber die Bytes an die Frage heran.
Gruen:
pnpm test 50 passed | 3 skipped (53 Dateien), 463 passed | 24 skipped (487), rc 0
pnpm typecheck rc 0
pnpm lint rc 0 (No ESLint warnings or errors)
cody-cad tests/test_demo_bundle_rezept.py + tests/test_vollstaendigkeit_ableitungen.py
27 passed, rc 0
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Gegenprüfung durch eine zweite Cody-Session: FREIGABE MIT ANMERKUNGDer Autor dieses PRs hat ihn nicht selbst freigegeben. Eine unabhängige Session hat alle fünf Der schärfere Test, den der Prüfer ergänzt hatIch hatte gegen cody-cad
Und der Vergleich ist scharf: ein Saboteur (eine Zeile Hashes nachgerechnet, nicht mitgezogen4/4
Drei Anmerkungen, keine BlockerA) Die Fundstellenangabe im Kommentarblock stimmt nur zur Hälfte. B) Mein Hinweis 1 nannte ein CI-Risiko, das es nicht gibt. Gemessen in C) Zählnuance: „4× D) Für cody-cad, nicht für diesen PR: Kein Klebstoff im Katalog trägt eine Trockenmasse. Das Prüfungen des Gegenprüfers
Empfehlung des Prüfers: mergen. |
Nachzug zu cody-cad#164. Dort ist
FORMELVERSIONvonwerkstoff-ableitung/2auf/3gestiegen, weil die Ableitung bei gleichen Eingaben andere Ergebnisse liefert. Das Bundle unter
apps/tischler/public/werkstoff-bundle/trug noch/2— es ist das Erzeugnis, das der Tischlerauf der Baustelle offline liest.
Was sich bewegt hat — und was nicht
Die Zahl nicht, die Lücke schon. Je Karte und je Manifest kommen zwei Ausschlüsse dazu:
{ "art": "fehlt", "rolle": "leim/oben", "komponente": "ponal-flaechenleim-pvac", "revision": 1, "grund": "Trockenmasse des Belagleims nicht hinterlegt — nicht addiert" }Das Gewicht steht weiterhin auf
14.352 kg/m2undvollstaendig: false. Der Unterschied:bisher war der Leim stillschweigend nicht addiert und tauchte nirgends auf. Jetzt steht er
als benannte Lücke da — genau das, wofür
Ausschlussda ist.Mitgezogen: 4×
resolve_manifest_sha256, 4×karte_sha256.Unverändert:
auftrag.json,katalogstand.json,entfernt.json,modell.glb.Warum die anderen beiden Teile von #164 hier nichts bewegen
Kein Versehen, sondern gemessen:
preisinkarten/,manifeste/,auftrag.json.ponal-flaechenleim-pvacbeim Namen statt des Belags.Der Gegenpin hat gebissen
bundle.test.tspinnt Auftrags-Hash, 4×karte_sha256, 8× Byte-Pins und die Formelversion.Alte Pins gegen das neue Bundle, gemessen:
Karten-Pins, Byte-Pins und
FORMELVERSIONsind nachgezogen.AUFTRAG_PINist unangetastet —dass er unter den sechs Grünen blieb, ist der Beleg, dass der Auftrag sich wirklich nicht bewegt hat.
Gemessen
pnpm test(Monorepo)149 passed, tischler463 passed, 24 skipped, rc 0bundle.testallein9 passed3 failed, 6 passedpnpm typecheck·pnpm lint✔ No ESLint warnings or errorsprojektion.jsonsha256f652b163…test_demo_bundle_rezept.py+test_vollstaendigkeit_ableitungen.py= 27 passedZweiter Prüfstand, den vitest nicht leisten kann: die vier
karte_sha256mit cody-cadskanonisch_hashüber die ausgelieferten Bytes nachgerechnet — 4/4. Vitest kommt an diese Fragenur über die Bytes heran, weil Python
120.0schreibt, woJSON.stringify120schreibt.Zwei Hinweise
pnpm testbrauchtpackages/core/dist. Ohne vorherigen Build scheitern 5 Testdateien schon beim Import („Failed to resolve entry for package @craft-codex/core"). Zustand des frischen Worktrees, nicht Folge dieser Änderung — aber relevant, falls die CItestohnebuildfährt.KARTEN_PINSbehauptet, die vierkarte_sha256stünden so in cody-cadstests/test_vollstaendigkeit_ableitungen.py. Dort sindREFERENZ_KARTENaber nachboden-562x555usw. geschlüsselt, nicht nach denteil_beispiel*-IDs — cody-cad pinnt vom Demo-Bundle nur den Auftrags-Hash. Der Kommentar verspricht eine Kopplung, die es nicht gibt.🤖 Generated with Claude Code