feat: prepend time-gap notice to user message when >5 min elapsed #10
@@ -298,11 +298,13 @@ class AgentLoop:
|
||||
if m.get("role") == "user":
|
||||
last_user_ts = m.get("timestamp")
|
||||
break
|
||||
logger.debug(f"[time-gap] session_msgs={len(session.messages)} last_user_ts={last_user_ts!r}")
|
||||
if last_user_ts:
|
||||
try:
|
||||
last_dt = datetime.fromisoformat(last_user_ts)
|
||||
now_dt = datetime.now()
|
||||
elapsed_seconds = (now_dt - last_dt).total_seconds()
|
||||
logger.debug(f"[time-gap] elapsed={elapsed_seconds:.0f}s, injecting={'yes' if elapsed_seconds > 300 else 'no'}")
|
||||
if elapsed_seconds > 300: # 5 minutes
|
||||
if elapsed_seconds < 3600:
|
||||
gap_str = f"{int(elapsed_seconds // 60)} minutes"
|
||||
@@ -311,7 +313,8 @@ class AgentLoop:
|
||||
else:
|
||||
gap_str = f"{int(elapsed_seconds // 86400)} days"
|
||||
current_message = f"[SYSTEM ANNOUNCEMENT: {gap_str} have elapsed since last user message]\n\n{msg.content}"
|
||||
except (ValueError, TypeError):
|
||||
except (ValueError, TypeError) as e:
|
||||
logger.debug(f"[time-gap] timestamp parse error: {e}")
|
||||
pass # Malformed timestamp — skip silently
|
||||
|
||||
# Build initial messages (use get_history for LLM-formatted messages)
|
||||
|
||||
Reference in New Issue
Block a user