Add files via upload
This commit is contained in:
1 parent
215ff44d3d
commit
b4d6ae9bc7
7 files changed
+613
-186
No files matched your search
@@ -212,4 +212,60 @@ def forget(key: str, category: str = "notes") -> str:
|
||||
return f"Not found: {category}/{key}"
|
||||
|
||||
|
||||
forget_memory = forget
|
||||
forget_memory = forget
|
||||
|
||||
|
||||
# ── Session memory ─────────────────────────────────────────────────────────────
|
||||
|
||||
_SESSION_MAX = 3 # safety cap — in practice 0-1 entries after pop
|
||||
|
||||
|
||||
def save_session_summary(summary: str, language: str = "") -> None:
|
||||
"""Append a 1-2 sentence session summary to long_term.json['sessions']."""
|
||||
summary = (summary or "").strip()
|
||||
if not summary:
|
||||
return
|
||||
memory = load_memory()
|
||||
sessions = memory.get("sessions", [])
|
||||
if not isinstance(sessions, list):
|
||||
sessions = []
|
||||
entry: dict = {
|
||||
"date": datetime.now().strftime("%Y-%m-%d"),
|
||||
"summary": summary[:280],
|
||||
}
|
||||
if language:
|
||||
entry["language"] = language
|
||||
sessions.append(entry)
|
||||
memory["sessions"] = sessions[-_SESSION_MAX:]
|
||||
with _lock:
|
||||
MEMORY_PATH.parent.mkdir(parents=True, exist_ok=True)
|
||||
MEMORY_PATH.write_text(
|
||||
json.dumps(memory, indent=2, ensure_ascii=False),
|
||||
encoding="utf-8",
|
||||
)
|
||||
print(f"[Memory] 📝 Session saved ({entry['date']}): {summary[:60]}…")
|
||||
|
||||
|
||||
def pop_last_session() -> dict | None:
|
||||
"""
|
||||
Return AND remove the most recent session entry.
|
||||
Calling this consumes the entry so it is never repeated in future briefings.
|
||||
"""
|
||||
with _lock:
|
||||
if not MEMORY_PATH.exists():
|
||||
return None
|
||||
try:
|
||||
memory = json.loads(MEMORY_PATH.read_text(encoding="utf-8"))
|
||||
sessions = memory.get("sessions", [])
|
||||
if not isinstance(sessions, list) or not sessions:
|
||||
return None
|
||||
entry = sessions.pop() # remove the last entry
|
||||
memory["sessions"] = sessions
|
||||
MEMORY_PATH.write_text(
|
||||
json.dumps(memory, indent=2, ensure_ascii=False),
|
||||
encoding="utf-8",
|
||||
)
|
||||
return entry
|
||||
except Exception as e:
|
||||
print(f"[Memory] ⚠️ pop_last_session error: {e}")
|
||||
return None
|
||||
Reference in new issue
Block a user