mirror of
https://github.com/calesthio/OpenMontage.git
synced 2026-08-05 15:20:40 +08:00
The contract test in test_character_animation_pipeline.py asserts result.success after the QA run, implying success should reflect whether QA passed. But CharacterAnimationReviewer always returned success=True even when issues were found and status was 'revise'. This creates a silent failure path: callers that gate on result.success (the standard ToolResult contract) would treat a broken rig as a clean pass without ever reading report['status']. Fix: return success=not issues so result.success is False when QA finds problems, consistent with the test contract and with how execution errors are already handled (success=False on exception paths). Also adds test_character_reviewer_success_false_when_qa_finds_issues to explicitly assert this contract — a broken rig with missing joints must produce status='revise', non-empty issues[], and success=False.