forked from Rockachopa/Timmy-time-dashboard
fix: Discord memory bug — add session continuity + 6 memory system fixes (#147)
Discord created a new agent per message with no conversation history, causing Timmy to lose context between messages (the "yes" bug). Now uses a singleton agent with per-channel/thread session_id, matching the dashboard's session.py pattern. Also applies _clean_response() to strip hallucinated tool-call JSON from Discord output. Additional fixes: - get_system_context() no longer clears the handoff file (was destroying session context on every agent creation) - Orchestrator uses HotMemory.read() to auto-create MEMORY.md if missing - vector_store DB_PATH anchored to __file__ instead of relative CWD - brain/schema.py: removed invalid .load dot-commands from INIT_SQL - tools_intro: fixed wrong table name 'vectors' → 'chunks' in tier3 check Co-authored-by: Trip T <trip@local> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
committed by
GitHub
parent
4bc53a43f9
commit
b8e0f4539f
@@ -431,8 +431,28 @@ class MemorySystem:
|
||||
return "\n".join(summary_parts) if summary_parts else ""
|
||||
|
||||
def get_system_context(self) -> str:
|
||||
"""Get full context for system prompt injection."""
|
||||
return self.start_session()
|
||||
"""Get full context for system prompt injection.
|
||||
|
||||
Unlike start_session(), this does NOT clear the handoff.
|
||||
Safe to call multiple times without data loss.
|
||||
"""
|
||||
context_parts = []
|
||||
|
||||
# 1. Hot memory
|
||||
hot_content = self.hot.read()
|
||||
context_parts.append("## Hot Memory\n" + hot_content)
|
||||
|
||||
# 2. Last session handoff (read-only, do NOT clear)
|
||||
handoff_content = self.handoff.read_handoff()
|
||||
if handoff_content:
|
||||
context_parts.append("## Previous Session\n" + handoff_content)
|
||||
|
||||
# 3. User profile (key fields only)
|
||||
profile = self._load_user_profile_summary()
|
||||
if profile:
|
||||
context_parts.append("## User Context\n" + profile)
|
||||
|
||||
return "\n\n---\n\n".join(context_parts)
|
||||
|
||||
|
||||
# Module-level singleton
|
||||
|
||||
Reference in New Issue
Block a user