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