Skip to content

fix(snippets): bind the action slot on the 4.5 LTS channelbag path - #406

Merged
TMHSDigital merged 1 commit into
mainfrom
fix/slotted-actions-4.5-slot
Oct 4, 2026
Merged

TMHSDigital merged 1 commit into
mainfrom
fix/slotted-actions-4.5-slot

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

Closes #385.

Problem

On 4.5 LTS, snippets/action-ensure-channelbag-for-slot.py wrote keys through the legacy action.fcurves.new() on a slotless Action. That creates a Legacy Slot but never assigns it, so animation_data.action_slot stays None, and the object never animates. No error is raised. The skill recommended the same legacy path.

Change

  • Snippet:
    • binds the slot on both versions;
    • on 4.4/4.5 builds the layer/strip/channelbag path with strip.channelbag(slot, ensure=True), mirroring the skill's get_channelbag_for_slot;
    • the header now says why.
  • Skill:

Evidence

Proven by live run (--background --factory-startup; binaries report 5.2.1 LTS and 4.5.11 LTS from .scratch/):

Check 4.5.11 LTS 5.2.1 LTS
Snippet add_z_keyframe (f1=0, f24=2) → frame_set(24) z 2.0 (was 0.0 before the fix) 2.0
action_slot bound after the snippet True (was None) True
Skill legacy block (fcurves.new + explicit action_slot) → x at f24 5.0 n/a (action.fcurves removed in 5.0)

Falsification: the pre-fix snippet on 4.5.11 gave z = 0.0 and action_slot = None, which is the issue's measurement.

By inspection only: no CI example covers this snippet directly. The snippet is not in tests/smoke/catalog.json.

🤖 Generated with Claude Code

On 4.5 LTS the snippet wrote keys through legacy action.fcurves.new() on a
slotless Action. That creates a "Legacy Slot" but never assigns it, so
animation_data.action_slot stays None and the object never animates; no
error is raised. Measured on 4.5.11: z stayed 0.0 at frame 24 instead of 2.0.

The snippet now binds the slot on both versions and builds the 4.5
layer/strip/channelbag path with strip.channelbag(slot, ensure=True),
mirroring the skill's get_channelbag_for_slot helper. The skill's legacy
section now binds the slot explicitly and says why, and its table and
cross-version intro stop recommending bare action.fcurves.

Closes #385

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@TMHSDigital

Copy link
Copy Markdown
Owner Author

CI evidence on PR head: Blender Smoke ran 5.2.2 LTS (143 passed, 1 skipped, 0 failed) and 4.5.14 LTS (141 passed, 3 skipped, 0 failed); falsifier table 142/136 passed, 0 failed. Merging.

@TMHSDigital
TMHSDigital merged commit 350b75d into main Oct 4, 2026
13 checks passed
@TMHSDigital
TMHSDigital deleted the fix/slotted-actions-4.5-slot branch October 4, 2026 23:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

snippets: Slotted Actions bridge makes keys that never play back on 4.5 LTS (no slot assigned on the legacy path)

1 participant