Recovers an interrupted session and finishes its verification honestly. RESTORED (the predecessor was killed mid-mutation-check): - build_sail_post_corroded still had negative control M1 APPLIED — clean galvanised steel, DROOP=0 — so both shipped GLBs were the untelled post. Restored: steel_weathered/rust/rust_deep, DROOP_DEG = 38. - asset_report.json held 1 of 37 assets and contact_sheet.png was a 196 KB truncated write. Both were interrupted artifacts, not decisions; a clean rebuild restores 37 assets and a 5.07 MB 1680x4200 sheet. DETERMINISM: 37/37 GLBs byte-identical across two consecutive full runs; report and contact sheet byte-identical too. Zero churn on the 35 pre-existing GLBs. ASSERT THAT COULD NOT FAIL, KILLED: the sag pin (honestY - corrodedY > 0.05) reads 0.060 at ZERO droop, because the eye hangs off a weld line 160 mm down the post — measured on the M-B build, anchor at (0, 3.920, 0). It measured the weld offset and called it a sag. Replaced with the droop ANGLE derived from the exported anchor and pinned to baked extras (padeye_droop_deg / arm_m / weld_y_threejs / dir_threejs), all stated in three.js coords — the axis trap closed the swing_set way, so note and mesh can only lie together. ASSERT WHOSE REASON WAS BACKWARDS, FIXED: the 20 m pin claimed the corroded shaft read darker. Measured off look.html's canvas at 20 m: honest lum 50, corroded lum 94 — it renders twice as BRIGHT. Base colour is darker but metalness drives the pixels (gal 0.90/0.35 goes near-black with no env map; weathered 0.55/0.60 is diffuse). Test now pins both halves and names the mechanism the player actually sees. Three tells split into three tests so one failure cannot mask the others — pre-split, the M-A mutation went red on rust area and never reached the lightness or droop asserts at all. Mutation-checked in the browser, all three witnessed red: M-A clean steel (1/3 + 2/3 red, 3/3 green, factory GREEN throughout — the trap it cannot see, confirmed); M-B flat eye (3/3 red, others green); M-C baked note lies while mesh is honest (3/3 red, proving the pin reads the extra, not a literal). Selftest 483/0/0 (474 baseline + 9 exactly). Tell verified by looking at 20 m at the game's own camera height, screenshots taken. editor.js untouched — palette hunk filed verbatim in THREADS for A. contracts.js ANCHOR_TYPE widening flagged for A. Lane D flagged: the tier is placeable, gate 3.2 unblocked. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4.8 MiB
1680x4200px
4.8 MiB
1680x4200px