You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Migrate built-in commands from hand-crafted per-backend strings to FormattedMessage
executor.py — New _extract_attachments() helper converts FormattedImage/FormattedAttachment from a FormattedMessage into base Attachment objects; _coerce_response() now populates Message.attachments when returning a FormattedMessage
echo.py — Replaced manual mention_users() calls with FormattedMessage + UserMention nodes
help.py — Replaced per-backend if/elif rendering (Symphony <expandable-card>, Slack mrkdwn, Discord markdown table) with FormattedMessage + Heading + Table.from_dict_list() that auto-renders for each backend
status.py — Same migration: builds a Table.from_dict_list() of metrics instead of manual **bold** markdown lines
schedule.py — Same migration for the schedule listing
test_command_framework.py — 3 new tests for _coerce_response() covering images in content, file attachments, and mixed content+attachments
0 commit comments