Files
galaxy/app/src/ai/bedrock
Ryan Ward 0db915712f fix: handle InvokeSkill in request_translator to prevent empty message error
When a skill was invoked on a clean slate (no conversation history),
the request sent to the AI provider contained only a system prompt
with zero user messages, causing Bedrock/LiteLLM to reject it with:
'Invalid Message bedrock requires at least one non-system message'

Root cause: extract_new_input_messages() had no handler for
Type::InvokeSkill, so it fell through to the _ => {} wildcard and
produced zero ConversationMessage results.

Fix adds InvokeSkill handling to three functions:
- extract_new_input_messages(): generates a User message with the
  skill name and content wrapped in <skill-instructions> tags
- extract_input_messages(): persists the InvokeSkill as a proper
  api::Message in task history for conversation continuity
- extract_user_query_text(): returns '/<skill-name>' for the
  UserQuery proto event used in conversation title generation
2026-07-16 12:59:51 -05:00
..
2026-06-12 14:17:06 -05:00