Skip to content

feat: witness Geometry Nodes bundle round-trip - #128

Merged
TMHSDigital merged 1 commit into
mainfrom
feat/bundles-witness
Sep 10, 2026
Merged

feat: witness Geometry Nodes bundle round-trip#128
TMHSDigital merged 1 commit into
mainfrom
feat/bundles-witness

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

Summary

  • examples/gn-bundle-roundtrip/: Combine / Separate Bundle item-name round-trip on 5.x (NodeCombineBundle, not GeometryNodeCombineBundle). Asserts evaluated 8/6 plus x-extent [0.5, 2.5] plus POINT bundle_mark=0.314159. Count-only is a cube that never entered the bundle.
  • First catalog min_version skip: 4.5 prints SMOKE_SKIP: Bundles require Blender 5.0+, exit 77; harness classifies SKIP (not PASS). 5.2 runs and passes.
  • Standing requirement in docs/new-example-prompt.md: when the primary assertion is a scalar, check whether a broken construction can produce it; if so add a second axis. Worked example: gn-zone-iterate --no-offset.

Type

  • feat — new skill / rule / snippet / template / example (minor bump)
  • fix — correction to existing content or a broken contract (patch bump)
  • docs / chore / ci / refactor — no release; release.yml still runs and should exit without a tag

Squash-merge subject: feat: witness Geometry Nodes bundle round-trip

Evidence

Axes — inspection of design, proven by the falsify table

Primary scalar: vert/face count 8/6. Broken construction produces it: --bypass (cube never enters the bundle) is still 8/6. Second axis: unpacked Scale/Offset bbox x ∈ [0.5, 2.5]. Third: unpacked Float stored as POINT bundle_mark. A fully hardcoded Transform that never uses a bundle could still fake bbox+attr (same class as Instance-on-Points faking a Repeat); the falsifiers that break this construction are bypass / mismatch / wrong packed scale / legacy RNA.

No gallery still. One cube plus an invisible attribute is not thumbnail-legible as a bundle contract.

Check-only — live-run-proven

Windows .scratch/blender-5.2.1-windows-x64/blender.exe 5.2.1 LTS 9e2066aef7ef; .scratch/blender-5.1.2-windows-x64/blender.exe 5.1.2 ec6e62d40fa9; .scratch/blender-4.5.11-windows-x64/blender.exe 4.5.11 LTS 4db51e9d1e1e.

Run Binary Exit Marker
check Win 5.2.1 0 xmin=0.5000 xmax=2.5000 mark=0.314159 pairing=ok
check Win 5.1.2 0 same
skip (direct) Win 4.5.11 77 SMOKE_SKIP: Bundles require Blender 5.0+
harness --series 5.2 --min-version 5.0 Win 5.2.1 runner 0 [PASS] gn-bundle-roundtrip
harness --series 4.5 --min-version 5.0 Win 4.5.11 runner 0 [SKIP] gn-bundle-roundtrip: Bundles require Blender 5.0+
harness 4.5, no min_version Win 4.5.11 runner 1 [FAIL] skipped with no --min-version (unexpected)

Skip honesty — live-run-proven

--force-run on 4.5.11: exit 1, RuntimeError: Node type NodeCombineBundle undefined. The skip is not hiding a pass of the 5.x RNA.

Related (not the skip path, same machine): 4.5 does have GeometryNodeCombineBundle. Flag use_bundle_and_closure_nodes default off evaluates 0 verts. Flag on hits the same closed form 8/6 [0.5, 2.5] mark=0.314159. Skip is the official unflagged 5.0+ contract, not “bundles cannot exist on 4.5”.

Falsify on 5.2.1 — live-run-proven

Flag Exit Result
(none) 0 8/6, x [0.5, 2.5], mark 0.314159
--bypass 4 8/6 (count would pass), x [-0.5, 0.5], no attr
--mismatch 3 0/0 (Separate item Geom vs Combine Mesh)
--pack-scale 1 4 8/6, x [1.0, 2.0]
--legacy-rna 2 GeometryNodeCombineBundle undefined

Generated HTML / contact sheet

Not applicable — no gallery.json row, no still, no build_gallery.py.

Release-owned fields — do not hand-edit

VERSION, CHANGELOG.md, CLAUDE.md **Version:**, ROADMAP.md **Current:**, plugin.json "version". Left at 0.50.0.

Test plan

  • blender-smoke 5.2 LTS: gn-bundle-roundtrip PASS, no SKIP on that row
  • blender-smoke 4.5 LTS: gn-bundle-roundtrip SKIP with reason, counted separately from passes, job still green (other examples PASS)
  • validate-counts / validate-manifest green (49 examples)
  • Socket Security not pending/failing
  • After squash-merge: quote release.yml decision line; expect RELEASE (bump=minor) → v0.51.0

Made with Cursor

5.x RNA is NodeCombineBundle; 4.5 skips via min_version 5.0. Count-only is not enough — bbox and named attribute are the second and third axes. Standing scalar-second-axis rule added to the example prompt.

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added skills documentation Improvements or additions to documentation labels Sep 10, 2026
@TMHSDigital
TMHSDigital merged commit 87d8b9a into main Sep 10, 2026
10 checks passed
@TMHSDigital
TMHSDigital deleted the feat/bundles-witness branch September 10, 2026 01:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation skills

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant