Repository Analysis

MemoriLabs/Memori

Memori is agent-native memory infrastructure. A LLM-agnostic layer that turns agent execution and conversation into structured, persistent state for production systems.

32.5 Strong AI signal View on GitHub
32.5
Adjusted Score
32.5
Raw Score
100%
Time Factor
2026-05-29
Last Push
15,130
Stars
Python
Language
91,969
Lines of Code
533
Files
1719
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 84HIGH 136MEDIUM 38LOW 1461

Pattern Findings

1719 matches across 11 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers1189 hits · 1112 pts
SeverityFileLineSnippet
LOWmemori-ts/tests/storage/manager.test.ts107function makeConversationMessageBatch(): WriteBatch {
LOWmemori-ts/src/utils/utils.ts24function collectSummariesFromFacts(facts: ParsedFact[]): ParsedSummary[] {
LOWmemori-ts/src/utils/utils.ts51function attachRawSummariesToFacts(facts: RecallItem[], summaries: RecallSummary[]): RecallItem[] {
LOWmemori-ts/src/utils/utils.ts171export function extractLastUserMessageString(messages: Message[]): string | undefined {
LOWmemori-ts/src/utils/utils.ts176export function extractLastUserMessageObject(messages: Message[]): Message | undefined {
LOWtests/test_utils.py51def test_format_date_created_iso_z():
LOWtests/test_utils.py55def test_format_date_created_none():
LOWtests/test_typing_dx.py8def test_package_includes_py_typed_marker() -> None:
LOWtests/test_typing_dx.py13def test_public_api_has_annotations_for_primary_methods() -> None:
LOWtests/test_typing_dx.py41def test_public_api_has_hover_docstrings_for_primary_methods() -> None:
LOWtests/test_agent.py8def test_memori_accepts_programmatic_api_key(monkeypatch):
LOWtests/test_agent.py19def test_memori_accepts_programmatic_base_url(monkeypatch):
LOWtests/test_agent.py36def test_sync_api_uses_configured_timeout(monkeypatch, mocker):
LOWtests/test_agent.py60def test_agent_recall_builds_query_string(monkeypatch, mocker):
LOWtests/test_agent.py92def test_agent_recall_rejects_session_without_project(monkeypatch):
LOWtests/test_agent.py101def test_agent_recall_summary_builds_query_string(monkeypatch, mocker):
LOWtests/test_agent.py120def test_agent_compaction_builds_query_string(monkeypatch, mocker):
LOWtests/test_agent.py143def test_agent_compaction_requires_project(monkeypatch):
LOWtests/test_agent.py152def test_capture_agent_turn_writes_turn_then_collector(monkeypatch, mocker):
LOWtests/test_agent.py203def test_capture_agent_turn_swallow_collector_failure(monkeypatch, mocker):
LOWtests/test_agent.py224def test_agent_feedback_posts_content(monkeypatch, mocker):
LOWtests/test_search.py40def test_parse_embedding_from_bytes_postgresql():
LOWtests/test_search.py47def test_parse_embedding_from_memoryview_postgresql():
LOWtests/test_search.py54def test_parse_embedding_from_json_string_mysql():
LOWtests/test_search.py61def test_parse_embedding_from_list_mongodb():
LOWtests/test_search.py67def test_parse_embedding_from_numpy_array():
LOWtests/test_search.py110def test_find_similar_embeddings_empty_list():
LOWtests/test_search.py115def test_find_similar_embeddings_limit_larger_than_embeddings():
LOWtests/test_search.py123def test_find_similar_embeddings_limit_smaller_than_embeddings():
LOWtests/test_search.py80def test_find_similar_embeddings_basic():
LOWtests/test_search.py94def test_find_similar_embeddings_cosine_similarity():
LOWtests/test_search.py136def test_find_similar_embeddings_skips_malformed():
LOWtests/test_search.py150def test_find_similar_embeddings_all_malformed():
LOWtests/test_search.py161def test_find_similar_embeddings_dimension_mismatch():
LOWtests/test_search.py172def test_find_similar_embeddings_mixed_dimensions():
LOWtests/test_search.py185def test_find_similar_embeddings_mixed_formats():
LOWtests/test_search.py198def test_find_similar_embeddings_returns_similarity_scores():
LOWtests/test_search.py208def test_find_similar_embeddings_high_dimensional():
LOWtests/test_search.py221def test_search_entity_facts_success():
LOWtests/test_search.py253def test_search_entity_facts_no_embeddings():
LOWtests/test_search.py271def test_search_entity_facts_no_similar_results():
LOWtests/test_search.py290def test_search_entity_facts_respects_limit():
LOWtests/test_search.py312def test_search_entity_facts_returns_required_keys():
LOWtests/test_search.py337def test_search_entity_facts_handles_missing_content():
LOWtests/test_search.py360def test_search_entity_facts_maintains_similarity_order():
LOWtests/test_search.py388def test_search_entity_facts_can_rerank_with_query_text(mocker):
LOWtests/test_search.py418def test_search_entity_facts_with_different_db_formats():
LOWtests/test_search.py444def test_search_entity_facts_accepts_mapping_rows_for_content(mocker):
LOWtests/test_search.py476def test_search_facts_candidates_success():
LOWtests/test_search.py510def test_search_facts_candidates_can_rerank_with_query_text():
LOWtests/test_litellm_client.py21def test_client_is_litellm_matches_module() -> None:
LOWtests/test_litellm_client.py25def test_client_is_litellm_rejects_other_modules() -> None:
LOWtests/test_litellm_client.py30def test_client_is_litellm_rejects_arbitrary_objects() -> None:
LOWtests/test_litellm_client.py36def test_client_is_litellm_accepts_submodule() -> None:
LOWtests/test_litellm_client.py42def test_litellm_register_requires_completion_attr() -> None:
LOWtests/test_litellm_client.py56def test_litellm_register_wraps_completion_and_acompletion() -> None:
LOWtests/test_litellm_client.py81def test_litellm_register_is_idempotent() -> None:
LOWtests/test_litellm_client.py99def test_litellm_register_sets_provider_metadata() -> None:
LOWtests/test_litellm_client.py116def test_client_is_litellm_matches_router_object() -> None:
LOWtests/test_litellm_client.py134def test_litellm_register_wraps_router_instance_methods() -> None:
1129 more matches not shown…
Hallucination Indicators84 hits · 855 pts
SeverityFileLineSnippet
CRITICALcore/tests/retrieval_aa_contract.rs256 assert_eq!(payload.meta.attribution.entity.id.len(), 64);
CRITICALcore/tests/retrieval_aa_contract.rs257 assert_eq!(payload.meta.attribution.process.id.len(), 64);
CRITICALcore/tests/retrieval_aa_contract.rs258 assert_eq!(payload.meta.llm.model.sdk.version.as_deref(), Some("1.2.3"));
CRITICALtests/memory/test_memory_writer.py128 config.storage.driver.conversation.message.create.reset_mock()
CRITICALtests/memory/test_recall.py45 config.storage.driver.entity.create.assert_not_called()
CRITICALtests/memory/test_recall.py46 config.storage.driver.knowledge_graph.delete_by_entity.assert_not_called()
CRITICALtests/memory/test_recall.py47 config.storage.driver.entity_fact.delete_by_entity.assert_not_called()
CRITICALtests/memory/test_recall.py59 config.storage.driver.entity.create.assert_called_once_with("entity-id")
CRITICALtests/memory/test_recall.py60 config.storage.driver.knowledge_graph.delete_by_entity.assert_not_called()
CRITICALtests/memory/test_recall.py61 config.storage.driver.entity_fact.delete_by_entity.assert_not_called()
CRITICALtests/memory/test_recall.py73 config.storage.driver.entity.create.assert_called_once_with("entity-id")
CRITICALtests/memory/test_recall.py74 config.storage.driver.knowledge_graph.delete_by_entity.assert_called_once_with(123)
CRITICALtests/memory/test_recall.py75 config.storage.driver.entity_fact.delete_by_entity.assert_called_once_with(123)
CRITICALtests/memory/test_recall.py76 config.storage.driver.conversation.update.assert_not_called()
CRITICALtests/memory/test_recall.py77 config.storage.driver.conversation.message.create.assert_not_called()
CRITICALtests/memory/test_recall.py124 config.storage.driver.entity.create.assert_called_once_with("test-entity")
CRITICALtests/integration/databases/test_database_storage.py46 conversation = sqlite_memori.config.storage.driver.conversation.read(
CRITICALtests/integration/databases/test_database_storage.py104 messages = sqlite_memori.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/databases/test_database_storage.py142 conversation = postgres_memori.config.storage.driver.conversation.read(
CRITICALtests/integration/databases/test_database_storage.py199 messages = postgres_memori.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/databases/test_database_storage.py239 conversation = mysql_memori.config.storage.driver.conversation.read(
CRITICALtests/integration/databases/test_database_storage.py296 messages = mysql_memori.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/databases/test_database_storage.py333 conversation = mongodb_memori.config.storage.driver.conversation.read(
CRITICALtests/integration/databases/test_database_storage.py390 messages = mongodb_memori.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_anthropic.py488 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_anthropic.py510 messages = memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_anthropic.py539 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_anthropic.py557 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_anthropic.py570 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_openai.py556 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_openai.py577 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_openai.py598 messages = memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_openai.py625 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_openai.py638 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_openai.py1224 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_openai.py1245 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_openai.py1266 messages = memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_openai.py1293 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_openai.py1306 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_bedrock.py396 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_bedrock.py414 messages = memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_bedrock.py434 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_bedrock.py448 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_bedrock.py457 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_google.py500 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_google.py517 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_google.py455 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_google.py476 messages = memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_google.py529 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_xai.py493 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_xai.py513 messages = memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_xai.py542 conversation = memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/providers/test_xai.py560 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/providers/test_xai.py573 memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/cloud/test_cloud_openai.py54 conversation = cloud_memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/cloud/test_cloud_openai.py77 cloud_memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/cloud/test_cloud_openai.py136 conversation = cloud_memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/cloud/test_cloud_anthropic.py54 conversation = cloud_memori_instance.config.storage.driver.conversation.read(
CRITICALtests/integration/cloud/test_cloud_anthropic.py77 cloud_memori_instance.config.storage.driver.conversation.messages.read(
CRITICALtests/integration/cloud/test_cloud_anthropic.py137 conversation = cloud_memori_instance.config.storage.driver.conversation.read(
24 more matches not shown…
Cross-File Repetition136 hits · 680 pts
SeverityFileLineSnippet
HIGHtests/test_search.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHtests/llm/test_llm_embeddings.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHtests/embeddings/test_tei_chunking.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHtests/memory/test_recall_eval_harness.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHtests/memory/test_recall.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/_logging.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/_cli.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/__init__.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/_network.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/_config.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/__main__.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/_utils.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/_setup.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/_constants.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/_base.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/__init__.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/_registry.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/_xai_wrappers.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/_providers.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/_utils.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/adapters/google/_adapter.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/adapters/xai/_adapter.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/adapters/bedrock/_adapter.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/adapters/anthropic/_adapter.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/llm/adapters/openai/_adapter.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/embeddings/_chunking.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/embeddings/_api.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/embeddings/_tei.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/embeddings/_format.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/embeddings/_tei_embed.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/embeddings/_utils.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/_struct.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/_conversation_messages.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/_collector.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/recall.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/_writer.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/_manager.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/_base.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/_handler.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/__init__.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/_runtime.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/_db_writer.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/_message.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/_registry.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/input.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/_models.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/_manager.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGH…ori/memory/augmentation/augmentations/memori/models.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGH…i/memory/augmentation/augmentations/memori/__init__.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGH…ory/augmentation/augmentations/memori/_augmentation.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/memories/_entity.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/memories/_process.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/memory/augmentation/memories/_conversation.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/storage/_base.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/storage/__init__.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/storage/_registry.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/storage/_builder.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/storage/_connection.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/storage/_manager.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
HIGHmemori/storage/drivers/postgresql/_driver.py0__ __ _ | \/ | ___ _ __ ___ ___ _ __(_) | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | | | | __/ | | | | | (_) | | | | |_| |_|\_
76 more matches not shown…
Unused Imports142 hits · 126 pts
SeverityFileLineSnippet
LOWtests/test_agent.py1
LOWtests/test_litellm_client.py7
LOWtests/memory/test_recall_eval_harness.py11
LOWintegrations/hermes/tests/test_provider.py1
LOWintegrations/hermes/tests/test_client.py1
LOWintegrations/hermes/tests/test_install.py1
LOWintegrations/hermes/src/memori_hermes/client.py3
LOWintegrations/hermes/src/memori_hermes/tools.py3
LOWintegrations/hermes/src/memori_hermes/__init__.py3
LOWintegrations/hermes/src/memori_hermes/install.py3
LOWmemori/_embedding_input.py1
LOWmemori/_rust_core.py9
LOWmemori/_rust_core.py10
LOWmemori/_rust_core.py11
LOWmemori/_rust_core.py12
LOWmemori/_rust_core.py14
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py16
LOWmemori/_rust_core.py38
LOWmemori/_rust_core.py38
LOWmemori/_rust_core.py38
LOWmemori/_rust_core.py38
LOWmemori/_rust_core.py38
LOWmemori/_rust_core.py45
LOWmemori/_rust_core.py46
LOWmemori/_rust_core.py46
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
LOWmemori/_rust_core.py47
82 more matches not shown…
Decorative Section Separators33 hits · 84 pts
SeverityFileLineSnippet
MEDIUMmemori-ts/tests/storage/drivers.test.ts57 // ── ConversationMessage ──────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts71 // ── ConversationMessages ─────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts95 // ── Conversation ─────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts157 // ── Entity ───────────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts173 // ── EntityFact ───────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts314 // ── KnowledgeGraph ───────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts370 // ── Process ──────────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts386 // ── ProcessAttribute ─────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts407 // ── Session ──────────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts423 // ── Schema.version ───────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts465 // ── ConversationMessage ──────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts479 // ── ConversationMessages ─────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts491 // ── Conversation ─────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts537 // ── Entity ───────────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts553 // ── EntityFact ───────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts648 // ── KnowledgeGraph ───────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts680 // ── Process ──────────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts696 // ── ProcessAttribute ─────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts714 // ── Session ──────────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts730 // ── Schema.version ───────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts783 // ── ConversationMessage ──────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts794 // ── ConversationMessages ─────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts804 // ── Conversation ─────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts850 // ── Entity ───────────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts866 // ── EntityFact ───────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts970 // ── KnowledgeGraph ───────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts1004 // ── Process ──────────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts1020 // ── ProcessAttribute ─────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts1038 // ── Session ──────────────────────────────────────────────────────────────
MEDIUMmemori-ts/tests/storage/drivers.test.ts1054 // ── Schema.version ───────────────────────────────────────────────────────
MEDIUMintegrations/openclaw/src/cli/commands.ts22 // ── init ────────────────────────────────────────────────────────────────
MEDIUMintegrations/openclaw/src/cli/commands.ts58 // ── status ──────────────────────────────────────────────────────────────
MEDIUMintegrations/openclaw/src/cli/commands.ts100 // ── config ──────────────────────────────────────────────────────────────
Excessive Try-Catch Wrapping65 hits · 60 pts
SeverityFileLineSnippet
LOWtests/database/core.py48except Exception:
LOWtests/database/init_db.py13 except Exception as e:
MEDIUMtests/database/init_db.py5def init_db():
LOWintegrations/hermes/src/memori_hermes/client.py68 except Exception as exc: # noqa: BLE001
LOWintegrations/hermes/src/memori_hermes/client.py84 except Exception as exc: # noqa: BLE001
LOWintegrations/hermes/src/memori_hermes/client.py97 except Exception as exc: # noqa: BLE001
LOWintegrations/hermes/src/memori_hermes/client.py132 except Exception as exc: # noqa: BLE001
LOWintegrations/hermes/src/memori_hermes/client.py138 except Exception as exc: # noqa: BLE001
LOWintegrations/hermes/src/memori_hermes/client.py144 except Exception as exc: # noqa: BLE001
LOWintegrations/hermes/src/memori_hermes/client.py151 except Exception as exc: # noqa: BLE001
MEDIUMintegrations/hermes/src/memori_hermes/client.py135def quota(self) -> dict[str, Any]:
LOWintegrations/hermes/src/memori_hermes/__init__.py18except Exception: # noqa: BLE001
LOWintegrations/hermes/src/memori_hermes/__init__.py381 except Exception as exc: # noqa: BLE001
LOWintegrations/hermes/src/memori_hermes/install.py140 except Exception as exc: # noqa: BLE001
LOWmemori/__init__.py346 except Exception: # nosec B110
LOWmemori/_network.py84 except Exception:
LOWmemori/_network.py298 except Exception as e:
LOWmemori/agent.py150 except Exception as exc: # noqa: BLE001
LOWmemori/_utils.py92 except Exception:
LOWmemori/llm/clients/direct.py83 except Exception:
LOWmemori/llm/clients/direct.py383 except Exception:
MEDIUMmemori/llm/clients/direct.py378def _resolve_litellm_version() -> str | None:
LOWmemori/llm/helpers/query_extraction.py91 except Exception:
LOWmemori/llm/helpers/serialization.py40 except Exception:
LOWmemori/llm/helpers/serialization.py52 except Exception:
LOWmemori/llm/helpers/serialization.py102 except Exception:
LOWmemori/llm/helpers/serialization.py108 except Exception:
LOWmemori/llm/helpers/serialization.py114 except Exception:
LOWmemori/embeddings/_tei.py44 except Exception as e:
LOWmemori/embeddings/_format.py33 except Exception:
LOWmemori/memory/_collector.py108 except Exception:
LOWmemori/memory/_collector.py120 except Exception:
LOWmemori/memory/_manager.py63 except Exception as e: # noqa: BLE001
LOWmemori/memory/augmentation/_handler.py88 except Exception as e: # noqa: BLE001
LOWmemori/memory/augmentation/_handler.py105 except Exception as e: # noqa: BLE001
LOWmemori/memory/augmentation/_handler.py152 except Exception as e: # noqa: BLE001
LOWmemori/memory/augmentation/_db_writer.py96 except Exception:
LOWmemori/memory/augmentation/_db_writer.py132 except Exception:
LOWmemori/memory/augmentation/_db_writer.py140 except Exception: # nosec B110
LOWmemori/memory/augmentation/_manager.py106 except Exception as e:
LOWmemori/memory/augmentation/_manager.py134 except Exception as e:
LOWmemori/memory/augmentation/_manager.py147 except Exception as e:
LOWmemori/memory/augmentation/_manager.py182 except Exception:
LOW…ory/augmentation/augmentations/memori/_augmentation.py49 except Exception:
LOW…ory/augmentation/augmentations/memori/_augmentation.py160 except Exception as e:
LOW…ory/augmentation/augmentations/memori/_augmentation.py209 except Exception as exc:
LOWmemori/native/_adapter.py27 except Exception: # noqa: BLE001
LOWmemori/native/_adapter.py36 except Exception: # noqa: BLE001
LOWmemori/native/_adapter.py75 except Exception as exc: # noqa: BLE001
LOWmemori/native/_adapter.py104 except Exception as exc: # noqa: BLE001
LOWmemori/native/_adapter.py374 except Exception: # noqa: BLE001
LOWmemori/native/_adapter.py395 except Exception: # noqa: BLE001
LOWmemori/native/_onnxruntime.py263 except Exception: # noqa: BLE001
LOWmemori/native/_onnxruntime.py301 except Exception: # noqa: BLE001
LOWmemori/native/_onnxruntime.py371 except Exception: # noqa: BLE001
LOWmemori/storage/_builder.py39 except Exception:
LOWmemori/storage/_connection.py36 except Exception:
LOWmemori/storage/_connection.py39 except Exception: # nosec B110
LOWmemori/storage/_connection.py45 except Exception: # nosec B110
LOWmemori/storage/adapters/sqlalchemy/_adapter.py56 except Exception:
5 more matches not shown…
Deep Nesting39 hits · 38 pts
SeverityFileLineSnippet
LOWtests/llm/clients/oss/gemini/async_streaming.py17
LOWtests/llm/clients/oss/xai/async_stream.py26
LOWtests/llm/clients/oss/xai/async.py26
LOWtests/llm/clients/oss/openai/async.py24
LOWtests/memory/test_recall.py283
LOWtests/memory/augmentation/test_aa_payload_unit.py399
LOWtests/integration/conftest.py293
LOWtests/integration_v2/cloud_v2/cloud_helpers.py20
LOWintegrations/hermes/src/memori_hermes/__init__.py149
LOWmemori/_network.py61
LOWmemori/_utils.py17
LOWmemori/_utils.py56
LOWmemori/llm/_base.py170
LOWmemori/llm/pipelines/conversation_injection.py91
LOWmemori/llm/pipelines/conversation_injection.py156
LOWmemori/llm/pipelines/recall_injection.py107
LOWmemori/llm/adapters/google/_adapter.py19
LOWmemori/llm/adapters/google/_adapter.py89
LOWmemori/llm/adapters/xai/_adapter.py19
LOWmemori/llm/adapters/xai/_adapter.py58
LOWmemori/llm/adapters/bedrock/_adapter.py34
LOWmemori/llm/adapters/openai/_adapter.py22
LOWmemori/llm/adapters/openai/_adapter.py79
LOWmemori/llm/helpers/query_extraction.py9
LOWmemori/llm/helpers/query_extraction.py21
LOWmemori/llm/helpers/query_extraction.py44
LOWmemori/llm/helpers/google_system_instruction.py75
LOWmemori/llm/helpers/serialization.py120
LOWmemori/memory/_conversation_messages.py28
LOWmemori/memory/_collector.py100
LOWmemori/memory/recall.py134
LOWmemori/memory/_writer.py33
LOWmemori/memory/augmentation/_db_writer.py102
LOWmemori/memory/augmentation/_manager.py112
LOWmemori/native/_onnxruntime.py185
LOWmemori/native/_onnxruntime.py251
LOWmemori/native/_onnxruntime.py305
LOWmemori/storage/_builder.py23
LOWmemori/storage/drivers/mongodb/_driver.py172
Fake / Example Data18 hits · 20 pts
SeverityFileLineSnippet
LOWdocs/memori-cloud/claude-code/agent-skills.md93bun .claude/skills/memori/index.ts signup --email "user@example.com"
LOWintegrations/claude-code/SKILL.md90bun .claude/skills/memori/index.ts signup --email "user@example.com"
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts99 const result = await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts119 await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts126 await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts143 const result = await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts152 const result = await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts158 await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts159 expect(deps.logger.info).toHaveBeenCalledWith(expect.stringContaining('user@example.com'));
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts164 await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts177 const result = await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts191 const result = await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts202 const result = await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts213 const result = await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts224 const result = await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts235 const result = await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts246 const result = await tool.execute('call-1', { email: 'user@example.com' });
LOWintegrations/openclaw/tests/tools/memori-signup.test.ts257 const result = await tool.execute('call-1', { email: 'user@example.com' });
Over-Commented Block8 hits · 8 pts
SeverityFileLineSnippet
LOW.pre-commit-config.yaml21 # entry: uvx ty check
LOW.pre-commit-config.yaml41 #- id: ts-lint
LOWcore/src/lib.rs1//! Engine orchestrator crate: the Rust core shared by the Memori Python and Node SDKs.
LOWcore/src/runtime/mod.rs1//! In-process background job runtime: bounded queue, capped concurrent async handlers, flush/shutdown.
LOWmemori/llm/adapters/google/_adapter.py101
LOWmemori/llm/adapters/google/_adapter.py141 # {
LOWmemori/llm/adapters/bedrock/_adapter.py41 response = []
LOWmemori/llm/adapters/openai/_adapter.py121 if payload["conversation"]["query"].get("stream", None) is None:
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMtests/llm/helpers/test_serialization.py53 # Create a circular reference: A -> B -> A
Redundant / Tautological Comments4 hits · 2 pts
SeverityFileLineSnippet
LOWmemori/storage/drivers/mongodb/_driver.py150 # Check if entity already exists
LOWmemori/storage/drivers/mongodb/_driver.py194 # Check if fact already exists
LOWmemori/storage/drivers/mongodb/_driver.py534 # Check if process already exists
LOWmemori/storage/drivers/mongodb/_driver.py602 # Check if session already exists