1bdff42cbc
A staging run answered "which year?" with nothing but the model explaining that its own tool calls had failed. Two causes, one upstream of the other. The domains parameter accepted any string, so it stated no vocabulary at all while the skill's methodology names strict-workflow checklists the tool has never accepted. The model followed the skill, the schema took it, and the call died in the registry two steps later. Enumerating the accepted values puts the vocabulary where the model reads it. Aliases stay in the enum: they are a promise the instructions make and a test pins. Mastra reports an input-schema rejection by resolving with a validation envelope rather than throwing, so enumerating alone would have turned those rejections into tool.completed for calls that never ran. The stream now reads that envelope for what it is. Text written before the runtime contract is ready was held rather than dropped, so a later successful call released the model's narration of its own failures as the entire visible answer. Dropping it means a run that cannot answer says so. Co-authored-by: Cursor <cursoragent@cursor.com>