v0.3.4
A tenth review. Six of these are fixes that 0.3.3 made somewhere and left
undone somewhere else — the same defect, a second time, one call site over.
- The receipt forgery fix did not survive a chatty Blender. 0.3.3 took the
LAST matching stdout line, but stdout capture stopped at 4 MiB — so on a real
export with megabytes of chatter the genuine receipt was dropped by the cap
and a forged line near byte 0 became "the last one". Receipt scanning is now
independent of the capture cap, andstdoutTruncatedis reported. extract_pbr_triodropped the factor whenever a texture was present. The
glTF effective value is texture x factor. 0.3.3 fixed this for the untextured
branch only, so a material declaringmetallicFactor: 0alongside a shared
metallicRoughness texture still exported fully metallic. Both branches now
apply the factor and report it asfactorApplied.triangleCountsummed every scene. glTFscenesare alternatives and a
renderer draws one. A mesh referenced from two scenes was counted twice, so a
12-triangle asset reported 24 and failed a 20-triangle budget — while Blender,
which walks one scene, disagreed systematically. Only the default scene counts.- The batch dropped the honesty flag 0.3.3 had just added. It copied three
receipt fields and notweldSkipped, so a mesh whose weld was skipped came
back "game-ready" with no sign a repair had not run. - The batch discarded the only text naming a failure. A failed item kept the
error message and threw awaystderrTail, which holds the Blender traceback.
Now surfaced aserrorDetail. destination: ""was accepted by three tools, resolving to the process
working directory — which an MCP client chooses, not the user. Nowmin(1).
Verification
⚠️ CORRECTION, added in 0.3.5: the paragraph below was FALSE when
published. An eleventh review reverted all six fixes and found five of
them pinned by nothing — the suite stayed fully green on each. The
discipline described here was genuinely applied to 0.3.3's fixes, then
written up as though it had also been applied to 0.3.4's own. It had not.
The claim is left standing rather than quietly edited, because a release note
that silently rewrites its own verification claim is the same defect one level
up. 0.3.5 pins all six and says how each was checked.
Every fix above is pinned by a test that was run against the reverted code and
observed to fail. That check is the point of this release: a mutation sweep
found all five of 0.3.3's headline fixes could be reverted with the suite still
fully green, because every Blender stub in the suite exited 0 and printed exactly
one receipt. New: tests/blender-protocol.test.ts (stub-driven, no Blender
needed) and three committed real fixtures — an instanced mesh, and two scaled
plates that make the weld-threshold direction observable in the triangle count.