[Bug] HeavySwarm accepts img, threads it down two levels, then never passes it to the agents - #1902
Merged
Conversation
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.
HeavySwarm.run(task, img=...)accepts an image, documents it, threads it down two levels — and then neither executor passes it to the agents. Every visual-analysis task runs blind.The path
imgis a declared parameter on all three functions and documented on each ("Image input if needed for visual analysis tasks"), so it looks wired up at every level except the last one that matters.Verification
Stub agents that record what they receive, driving both executors directly:
Both paths were broken and both are fixed; I checked the dashboard variant separately rather than assuming it followed the basic one.
Fix
agent.run(question, img=img)at both sites.imgis already in the enclosing scope of each, andAgent.run'simgdefaults toNone, so the no-image case is byte-for-byte what it was.Same defect as #1822 (
SequentialWorkflow.runacceptedimgsand dropped it), which you merged — this is the HeavySwarm instance of it.No test file: two-line change, no new function.
Adjacent finding
Filed as #1903 rather than folded in:
execute_question_generation(self, task)has noimgparameter at all, so the decomposer writes the four (or fifteen) sub-questions without ever seeing the image. That is a design change — the image has to reach the question schema and prompt — so it needs your call, not a quiet expansion of this diff.