feat: prepend time-gap notice to user message when >5 min elapsed #10

Merged
wylab merged 4 commits from feature/time-gap-injection into main 2026-02-19 01:13:11 +01:00
Showing only changes of commit 092248411e - Show all commits
+1 -4
View File
@@ -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)