mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-04 16:38:49 +00:00
richText messages only kept rich_text_list items whose type was "text", so bold/italic/inlineCode/pre segments were silently dropped; a message made entirely of formatted segments produced empty content and fell through to the "unsupported message type: richText" warning. Now any item carrying text is kept (matching the SDK's own get_text_list, which keys off the "text" field) and its type is mapped to Markdown so the formatting survives into the agent's context. Text and downloadCode within a rich-text item are handled independently (the SDK treats them as separate via get_text_list / get_image_list), so an item carrying both a caption and an attachment no longer drops the file. The shared httpx.AsyncClient was created without a timeout, so all requests (including large file/image downloads) used httpx's 5s default and hit ConnectTimeout/ReadTimeout on uploads. Set an explicit httpx.Timeout (connect=10s, read/write=30s). Adds regression tests for formatted-segment preservation, the all-formatted no-drop case, the text+downloadCode item, and the client timeout configuration. Closes #4497