fix: self-heal chatbot recipe requests answered as prose, not a tool call (v0.57.1)
The system prompt already told the model to MUST call createRecipe instead of writing the recipe out — that's a soft rule some models (especially free-tier ones) still ignore. There was no fallback: if the model answered in prose, that's just what got returned, no draft card. Added a detector (looksLikeUnstructuredRecipe: 3+ numbered/bulleted lines with no tool call) and a forced-tool retry when it fires — same system+prompt, but toolChoice forced to createRecipe so the model can't opt out on the second pass. Falls back to a short localized line if the provider returns no text alongside a forced tool call (some do this by design). Retry failure just keeps the original prose answer rather than erroring the whole request. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// Mirrors CHANGELOG.md at the repo root — update both together.
|
||||
export const APP_VERSION = "0.57.0";
|
||||
export const APP_VERSION = "0.57.1";
|
||||
|
||||
export type ChangelogEntry = {
|
||||
version: string;
|
||||
@@ -11,6 +11,13 @@ export type ChangelogEntry = {
|
||||
};
|
||||
|
||||
export const CHANGELOG: ChangelogEntry[] = [
|
||||
{
|
||||
version: "0.57.1",
|
||||
date: "2026-07-20 20:00",
|
||||
fixed: [
|
||||
"Chatbot sometimes answered \"create a recipe\" requests with the recipe spelled out as prose instead of the actual draft card (weaker/free-tier models occasionally ignore the tool-calling instruction). Now detects that shape (a numbered/bulleted list with no tool call) and forces one retry with the tool call required, so the draft card still appears.",
|
||||
],
|
||||
},
|
||||
{
|
||||
version: "0.57.0",
|
||||
date: "2026-07-20 09:20",
|
||||
|
||||
Reference in New Issue
Block a user