fix(cron): silent jobs return empty response for delivery skip (#2442)
Fixes #2234 The placeholder '(No response generated)' was overwriting the actual final_response, causing it to be delivered to Discord even when the agent completed work silently via tools. Changes: - Separate logged_response for output template display - Keep final_response clean (empty when agent has no text) - Delivery logic now correctly skips when final_response is empty Test added to verify empty response stays empty for delivery. Co-authored-by: Bartok9 <bartokmagic@proton.me>
This commit is contained in:
@@ -412,9 +412,10 @@ def run_job(job: dict) -> tuple[bool, str, str, Optional[str]]:
|
||||
|
||||
result = agent.run_conversation(prompt)
|
||||
|
||||
final_response = result.get("final_response", "")
|
||||
if not final_response:
|
||||
final_response = "(No response generated)"
|
||||
final_response = result.get("final_response", "") or ""
|
||||
# Use a separate variable for log display; keep final_response clean
|
||||
# for delivery logic (empty response = no delivery).
|
||||
logged_response = final_response if final_response else "(No response generated)"
|
||||
|
||||
output = f"""# Cron Job: {job_name}
|
||||
|
||||
@@ -428,7 +429,7 @@ def run_job(job: dict) -> tuple[bool, str, str, Optional[str]]:
|
||||
|
||||
## Response
|
||||
|
||||
{final_response}
|
||||
{logged_response}
|
||||
"""
|
||||
|
||||
logger.info("Job '%s' completed successfully", job_name)
|
||||
|
||||
Reference in New Issue
Block a user