Conversation
In executeExtensionNode the multi-input branch resolved every slot's file path but only assigned mesh and image slots; an audio slot was computed and dropped, so a node declaring e.g. inputs ["audio", "text"] failed at run time with "<name> needs an incoming audio connection" although preflight passed. Extract the slot-to-path assignment into slotInputs.ts (pure, tested) and give audio the same primary-path rule as the first image slot. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A process node that declares several inputs including an
audioslot (for example"inputs": ["audio", "text"]) passes preflight but fails as soon as it runs:even though an audio edge is wired to it.
Cause
In
executeExtensionNode(src/areas/workflows/workflowRunStore.ts) the multi-input branch resolves every slot's file path by target handle, but the loop that turns those paths intonodeInputPath/nodeInputMeshPathonly knowsmeshandimage. Anaudioslot's path is computed and then discarded, so the guard that follows sees nonodeInputPathand throws. Single-input audio nodes are unaffected, which is why the bug only shows up on multi-input nodes.Fix
src/areas/workflows/slotInputs.ts(assignSlotFilePaths, pure, no runtime imports).audioslot the same primary-path rule as the firstimageslot, so the runner hands it to the extension asfilePath, exactly like a single-input audio node.workflowRunStore.tscalls the helper instead of the inline loop; mesh and image behaviour is unchanged.Out of scope, unchanged: a node mixing an image and an audio slot still has only one primary path, and a second audio slot is not forwarded (there is no
extra_audio_pathscounterpart toextra_image_paths).Tests
src/areas/workflows/slotInputs.test.mjs(same esbuild-bundle pattern asnodeBehaviors.test.mjs): mesh slot, first image plus extras, audio slot, text slot never claims a file. The audio case was written first and failed against the extracted original behaviour before the fix.npm run test:node: all passing.npm run lint: clean.tsc --noEmit -p tsconfig.web.json: the error set is identical to a clean checkout ofdev(none introduced).🤖 Generated with Claude Code