mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-20 11:45:24 -04:00
Fix issue 135 chat context bleed (#281)
* Fix issue 135 chat context bleed * Guard task delivery metadata access
This commit is contained in:
+12
-4
@@ -979,10 +979,10 @@ class TaskScheduler:
|
||||
task = db.query(ScheduledTask).filter(ScheduledTask.id == task_id).first()
|
||||
if not task:
|
||||
return True
|
||||
task_type = task.task_type or "llm"
|
||||
task_type = getattr(task, "task_type", "") or "llm"
|
||||
if task_type != "action":
|
||||
return True
|
||||
return (task.action or "") in self._MODEL_BACKED_ACTIONS
|
||||
return (getattr(task, "action", "") or "") in self._MODEL_BACKED_ACTIONS
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
@@ -992,7 +992,7 @@ class TaskScheduler:
|
||||
if "check-in" in (task.name or "").lower():
|
||||
return
|
||||
# Built-in housekeeping noise stays out of the chat.
|
||||
if (task.action or "") in self._SILENT_ACTIONS:
|
||||
if (getattr(task, "action", "") or "") in self._SILENT_ACTIONS:
|
||||
return
|
||||
from src.assistant_log import log_to_assistant
|
||||
log_to_assistant(
|
||||
@@ -1408,6 +1408,12 @@ class TaskScheduler:
|
||||
from core.database import Session as DbSession, ChatMessage, CrewMember
|
||||
|
||||
output = task.output_target or "session"
|
||||
if (
|
||||
output == "session"
|
||||
and (getattr(task, "task_type", "") or "") == "action"
|
||||
and (getattr(task, "action", "") or "") in self._SILENT_ACTIONS
|
||||
):
|
||||
return
|
||||
if output.startswith("mcp__"):
|
||||
await self._deliver_via_mcp(output, task, result)
|
||||
return
|
||||
@@ -2069,6 +2075,8 @@ class TaskScheduler:
|
||||
# Built-in housekeeping/action jobs should not create browser
|
||||
# task notifications; user AI/research tasks still can.
|
||||
task.notifications_enabled = False
|
||||
if (task.output_target or "session") == "session":
|
||||
task.output_target = defs.get("output_target", "none")
|
||||
seeded = []
|
||||
for action, defs in HOUSEKEEPING_DEFAULTS.items():
|
||||
if action in existing_actions:
|
||||
@@ -2099,7 +2107,7 @@ class TaskScheduler:
|
||||
# AI/email/calendar tasks opt into a paused starting state
|
||||
# via ship_paused so users can enable them deliberately.
|
||||
status="paused" if ships_paused else "active",
|
||||
output_target="session",
|
||||
output_target=defs.get("output_target", "none"),
|
||||
notifications_enabled=False,
|
||||
)
|
||||
db.add(task)
|
||||
|
||||
Reference in New Issue
Block a user