fix: CrewOutput.json raises IndexError instead of ValueError on empty tasks_output#6551
Open
chuenchen309 wants to merge 1 commit into
Open
Conversation
… tasks_output `CrewOutput.json` does `self.tasks_output[-1].output_format != ...` before checking whether the list is empty, so an empty tasks_output (a genuine, reachable state -- constructed directly elsewhere in this test suite, e.g. test_crew.py's kickoff_for_each_async mocks) raises a raw IndexError instead of the intended, documented ValueError one line below. Fix: guard with `not self.tasks_output or ...` before indexing. Rebased onto fresh upstream/main (new-day quota reset after crewAIInc#6534/crewAIInc#6535 filled yesterday's slots). AI-Generated PR: Yes, drafted with Claude Code and personally reviewed/tested before submission. Per CONTRIBUTING.md's llm-generated label requirement: as an external contributor I cannot self-apply GitHub labels (confirmed via `gh pr edit --add-label`, GraphQL permission error) -- disclosing here instead; happy to have a maintainer apply the label if needed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughChangesCrewOutput JSON handling
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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
CrewOutput.jsondoesself.tasks_output[-1].output_format != ...before checking whether the list is empty, so an emptytasks_output(a genuine, reachable state — constructed directly elsewhere in this test suite, e.g.test_crew.py'skickoff_for_each_asyncmocks) raises a rawIndexErrorinstead of the intended, documentedValueErrorone line below.Fix
Guard with
not self.tasks_output or ...before indexing.Testing
lib/crewai/tests/test_crew_output.py: asserts the empty-tasks_outputcase raisesValueError(notIndexError), plus a sanity check that a non-empty, JSON-output final task still returns the dumped JSON.crew_output.pyreproducesIndexError: list index out of range; reapplying passes.test_crew_output.py+test_crew.py: 133 passed, 1 skipped (unrelated).ruff checkandmypy— clean.crew_output.py.AI-Generated disclosure
Drafted with Claude Code and personally reviewed/tested before submission. Per CONTRIBUTING.md's llm-generated label requirement: as an external contributor I don't have permission to self-apply GitHub labels (confirmed via
gh pr edit --add-label, GraphQL permission error) — disclosing here instead; happy to have a maintainer apply the label if needed.