Skip to content

feat: witness exit_pre via post-exit sidecar - #129

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

feat: witness exit_pre via post-exit sidecar#129
TMHSDigital merged 1 commit into
mainfrom
feat/exit-pre-witness

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

Summary

  • examples/exit-pre-sidecar/: bpy.app.handlers.exit_pre writes `` as Blender dies. main does not write the file.
  • Catalog runner now forwards expect_sidecar / sidecar_contains (was canary-only). Without that, CI would have been a vacuous PASS.
  • 4.5 SKIP via min_version 5.1. No gallery still.

Type

  • feat — new skill / rule / snippet / template / example (minor bump)

Squash-merge subject: feat: witness exit_pre via post-exit sidecar

Evidence

Harness contents vs existence — live-run-proven

sidecar_ok in tests/smoke/protocol.py checks existence, non-empty, and optional substring. Catalog row: sidecar_contains: exit_pre-ok.

Flag Harness File
(none) [PASS] exit_pre-ok
--silent-handler [FAIL] missing post-exit sidecar absent
--no-handler [FAIL] missing post-exit sidecar absent
--wrong-text [FAIL] sidecar missing expected text 'exit_pre-ok' nope
--write-in-main [FAIL] sidecar missing expected text 'exit_pre-ok' from-main
--atexit-instead harness exit 1 atexit-ok (existence-only would have been a false pass)

--no-handler proves main does not write the sidecar. --write-in-main / --atexit-instead prove the content check, so a clean-exit write that is not exit_pre is red.

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

Skip / force-run — live-run-proven

Run Result
5.2 / 5.1 harness --min-version 5.1 --expect-sidecar [PASS]
4.5 harness --series 4.5 --min-version 5.1 [SKIP] exit_pre requires Blender 5.1+ (no sidecar required)
4.5 harness, no min_version [FAIL] skipped with no --min-version (unexpected)
4.5 --force-run (direct blender) exit 2, AttributeError: 'bpy.app.handlers' object has no attribute 'exit_pre'

Gallery

None. No geometry.

Backlog (ROADMAP, not this PR's code beyond the bullet)

Falsification flags for Phases 6–9 were local-Windows only. Alongside inverted-canary marker-text.

Release-owned fields — do not hand-edit

Left at 0.51.0.

Test plan

  • 5.2 smoke: exit-pre-sidecar PASS (sidecar asserted)
  • 4.5 smoke: exit-pre-sidecar SKIP with reason, counted separately
  • validate-counts / manifest: 50 examples
  • Socket not pending/failing
  • After squash-merge: quote release.yml on the merge SHA; expect RELEASE (bump=minor) → v0.52.0

Made with Cursor

The handler writes the sidecar as Blender dies; the catalog runner now forwards expect_sidecar so CI actually asserts it. 4.5 skips at min_version 5.1.

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 bb5a2df into main Sep 10, 2026
10 checks passed
@TMHSDigital
TMHSDigital deleted the feat/exit-pre-witness branch September 10, 2026 02:02
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