fix(tui/auto_observer): require mandatory observer fields

This commit is contained in:
James Peter
2025-09-30 09:59:09 +10:00
parent db03c8f767
commit 962e482816
+12 -5
View File
@@ -190,22 +190,29 @@ fn run_observer_prompt(
other => return Err(anyhow!("unexpected status '{other}'")),
};
let replace_message = response
let trimmed_replace_message = response
.replace_message
.map(|s| s.trim().to_string())
.filter(|s| !s.is_empty());
let additional_instructions = response
let trimmed_additional_instructions = response
.additional_instructions
.map(|s| s.trim().to_string())
.filter(|s| !s.is_empty());
if matches!(status, AutoObserverStatus::Failing)
&& replace_message.is_none()
&& additional_instructions.is_none()
&& trimmed_replace_message.is_none()
&& trimmed_additional_instructions.is_none()
{
warn!("observer returned failing status without guidance");
}
let (replace_message, additional_instructions) =
if matches!(status, AutoObserverStatus::Failing) {
(trimmed_replace_message, trimmed_additional_instructions)
} else {
(None, None)
};
debug!(
"[Auto observer] status={status:?} replace={} instructions={}",
replace_message.is_some(),
@@ -330,7 +337,7 @@ fn build_observer_schema() -> Value {
"minLength": 1,
}
},
"required": ["status"],
"required": ["status", "replace_message", "additional_instructions"],
"additionalProperties": false
})
}