Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion memori/core/memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -1213,7 +1213,7 @@ def _get_auto_ingest_context(self, user_input: str) -> list[dict[str, Any]]:
results[:3]
): # Log first 3 results for debugging
logger.debug(
f"Auto-ingest: Result {i+1}: {type(result)} with keys: {list(result.keys()) if isinstance(result, dict) else 'N/A'}"
f"Auto-ingest: Result {i + 1}: {type(result)} with keys: {list(result.keys()) if isinstance(result, dict) else 'N/A'}"
)
except Exception as db_search_e:
logger.error(f"Auto-ingest: Database search failed: {db_search_e}")
Expand Down
29 changes: 29 additions & 0 deletions memori/database/mongodb_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -928,6 +928,28 @@ def mark_conscious_memories_processed(
except Exception as e:
logger.error(f"Failed to mark conscious memories processed: {e}")

def _check_milestone(self, memory_count: int):
"""
Check and celebrate memory storage milestones to encourage user engagement.
Displays celebration messages at key milestones: 10, 50, 100, 500, 1000 memories.

Args:
memory_count: Current count of long-term memories
"""
milestones = [10, 50, 100, 500, 1000]

if memory_count in milestones:
celebration_msg = (
f"\n{'=' * 60}\n"
f"🎉 Milestone Achieved: {memory_count} memories stored!\n"
f"{'=' * 60}\n"
f"⭐️ Loving Memori? Give us a star on GitHub!\n"
f"👉 https://github.com/GibsonAI/memori\n"
f"Your support helps us build better open AI memory tools ❤️\n"
f"{'=' * 60}\n"
)
logger.info(celebration_msg)

def store_long_term_memory_enhanced(
self, memory: ProcessedLongTermMemory, chat_id: str, namespace: str = "default"
) -> str:
Expand Down Expand Up @@ -1000,6 +1022,13 @@ def store_long_term_memory_enhanced(
collection.insert_one(document)

logger.debug(f"Stored enhanced long-term memory {memory_id}")

# Get current memory count and check for milestones
total_memories = collection.count_documents({"namespace": namespace})

# Celebrate milestone if reached
self._check_milestone(total_memories)

return memory_id

except Exception as e:
Expand Down
33 changes: 33 additions & 0 deletions memori/database/sqlalchemy_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -572,6 +572,28 @@ def get_chat_history(
except SQLAlchemyError as e:
raise DatabaseError(f"Failed to get chat history: {e}")

def _check_milestone(self, memory_count: int):
"""
Check and celebrate memory storage milestones to encourage user engagement.
Displays celebration messages at key milestones: 10, 50, 100, 500, 1000 memories.

Args:
memory_count: Current count of long-term memories
"""
milestones = [10, 50, 100, 500, 1000]

if memory_count in milestones:
celebration_msg = (
f"\n{'=' * 60}\n"
f"🎉 Milestone Achieved: {memory_count} memories stored!\n"
f"{'=' * 60}\n"
f"⭐️ Loving Memori? Give us a star on GitHub!\n"
f"👉 https://github.com/GibsonAI/memori\n"
f"Your support helps us build better open AI memory tools ❤️\n"
f"{'=' * 60}\n"
)
logger.info(celebration_msg)

def store_long_term_memory_enhanced(
self, memory: ProcessedLongTermMemory, chat_id: str, namespace: str = "default"
) -> str:
Expand Down Expand Up @@ -618,6 +640,17 @@ def store_long_term_memory_enhanced(
session.commit()

logger.debug(f"Stored enhanced long-term memory {memory_id}")

# Get current memory count and check for milestones
total_memories = (
session.query(LongTermMemory)
.filter(LongTermMemory.namespace == namespace)
.count()
)

# Celebrate milestone if reached
self._check_milestone(total_memories)

return memory_id

except SQLAlchemyError as e:
Expand Down