## Version 0.17.3

This release includes several enhancements to visualization, error handling, and tool integration in the PocketFlow framework, improving usability and functionality.

### New Features

- Enhanced code execution in PocketFlow with detailed error reporting, variable tracking, and self-healing guidance, improving debugging and user interaction. (0a4a9e) (Eric Ma)
- Added module detection and improved tool selection guidance in tools, helping users to make informed decisions about tool usage based on available libraries. (40a541) (Eric Ma)
- Introduced a new tool `return_object_to_user` in AgentBot and ToolBot, allowing for the return of Python objects from the calling context's global dictionary, enhancing modularity and reusability. (e9e801) (Eric Ma)
- Enhanced PocketFlow visualization with automatic graph direction detection and terminal node coloring, improving clarity and visual appeal. (2745b03) (Eric Ma)

### Bug Fixes

- Fixed test cases in agentbot and toolbot to handle None categorized variables and incorrect import paths, ensuring more reliable testing. (47bd727) (Eric Ma)
- Corrected an unreachable `elif` block in `prompt_manager.py` and adjusted test cases to properly check for missing template variables, enhancing code reliability. (b5b9f50) (Eric Ma)
- Updated `test_prompt_with_missing_kwargs` to accurately check for missing template variables, ensuring that the test reflects expected functionality. (fc7bb5b) (Eric Ma)
- Added an explanatory comment to the exception handler in `categorize_globals`, clarifying the rationale behind ignoring certain exceptions, improving code maintainability. (af88ec0) (Eric Ma)

### Refactorings

- Refactored Docker container run command to create cache directory in a single shell command, simplifying setup in sandbox environments. (636df72) (Eric Ma)

### Deprecations

- No deprecations in this release.
