Tool call events only displayed at phase=start, but progress_hook sends end/error phases after agent execution. Accept all three phases with call_id deduplication to prevent duplicate rendering. Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>