github Python analyzed 3901cee

iikarus/Dragon-Brain

github

Dragon Brain — persistent long-term memory for AI agents via MCP (Model Context Protocol). Knowledge graph (FalkorDB) + vector search (Qdrant) + CUDA GPU embeddings. Works with Claude, Gemini CLI, Cursor, Windsurf, VS Code Copilot. 30 tools, 1121 tests.

maintainer
iikarus
licence
MIT
first seen
2026-06-24
last seen
2026-08-22
releases · 30d
0
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution in iikarus/Dragon-Brain
  2. HIGH code analysis flagged dynamic code execution in iikarus/Dragon-Brain
  3. HIGH code analysis flagged dynamic code execution in iikarus/Dragon-Brain
  4. HIGH code analysis flagged dynamic code execution in iikarus/Dragon-Brain
  5. HIGH code analysis flagged dynamic code execution ×2 in iikarus/Dragon-Brain
  6. HIGH code analysis flagged dynamic code execution in iikarus/Dragon-Brain
capabilities 20 tools
transport stdio · http counts 20 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • add_observation
  • analyze_graph
  • archive_entity
  • create_entity
  • create_relationship
  • delete_entity
  • delete_relationship
  • end_session
  • find_cross_domain_patterns
  • get_evolution
  • get_hologram
  • get_neighbors
  • point_in_time_query
  • prune_stale
  • record_breakthrough
  • search_memory
  • search_stats
  • start_session
  • traverse_path
  • update_entity
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 3901cee · analyzer v33 · 3w ago

skills & prompt files 1

danger signals3

code evidence vv1.1.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 246

filesystem 35

  • fs (weak) iikarus-Dragon-Brain-3901cee/benchmarks/longmemeval/ablation.py :21 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/benchmarks/longmemeval/metric_verification.py :14 data = json.load(open("benchmarks/longmemeval/data/longmemeval_oracle.json"))
  • fs (weak) iikarus-Dragon-Brain-3901cee/benchmarks/longmemeval/runner.py :18 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/benchmarks/longmemeval/structural_analysis.py :20 content = open(path, encoding="utf-8").read()
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/backup_restore.py :4 import shutil
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/clean_tox.py :14 import shutil
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/e2e_test.py :21 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/embedding_eval.py :27 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/hooks/branch_write_guard.py :51 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/hooks/inject_handoff_hash.py :22 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/hooks/verify_handoff_completeness.py :22 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/internal/clean_tox.py :14 import shutil
show 23 more
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/internal/embedding_eval.py :27 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/internal/rename_tests.py :15 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/mcp_smoke_test.py :5 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/operations.py :6 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/patch_docs.py :3 with open(file_path, encoding="utf-8") as f:
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/scheduled_backup.py :15 import shutil
  • fs (weak) iikarus-Dragon-Brain-3901cee/scripts/trace_contracts_dragon.py :29 from pathlib import Path
  • fs iikarus-Dragon-Brain-3901cee/src/claude_memory/fts_store.py :24 from pathlib import Path
  • fs iikarus-Dragon-Brain-3901cee/src/claude_memory/lock_manager.py :134 with open(lock_path, "x") as f:
  • fs iikarus-Dragon-Brain-3901cee/src/claude_memory/ontology.py :6 from pathlib import Path
  • fs iikarus-Dragon-Brain-3901cee/src/claude_memory/update_check.py :11 from pathlib import Path
  • fs iikarus-Dragon-Brain-3901cee/src/dashboard/app.py :100 with open("graph.html", encoding="utf-8") as f:
  • fs (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_backup_load.py :12 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_backup_save.py :13 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_batch4_contracts.py :8 import pathlib
  • fs (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_contract_scanner.py :11 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_dynamic_validation.py :63 os.remove("test_dynamic_ontology.json")
  • fs (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_edge_cases.py :211 with open(lock_path, "w") as f:
  • fs (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_inject_handoff_hash.py :13 from pathlib import Path
  • fs (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_lock_fallback.py :2 import shutil
  • fs (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_ontology.py :14 os.remove(filename)
  • fs (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_remaining_coverage.py :211 with open(lock_path, "w") as f:
  • fs (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_verify_handoff_completeness.py :10 from pathlib import Path

shell / exec 11

  • shell (weak) iikarus-Dragon-Brain-3901cee/scripts/backup_restore.py :5 import subprocess
  • shell (weak) iikarus-Dragon-Brain-3901cee/scripts/hooks/architect_branch_guard.py :27 import subprocess
  • shell (weak) iikarus-Dragon-Brain-3901cee/scripts/hooks/branch_write_guard.py :48 import subprocess
  • shell (weak) iikarus-Dragon-Brain-3901cee/scripts/hooks/inject_handoff_hash.py :20 import subprocess
  • shell (weak) iikarus-Dragon-Brain-3901cee/scripts/internal/verify_mcp_server.py :5 import subprocess
  • shell (weak) iikarus-Dragon-Brain-3901cee/scripts/operations.py :2 import subprocess
  • shell (weak) iikarus-Dragon-Brain-3901cee/scripts/scheduled_backup.py :16 import subprocess
  • shell (weak) iikarus-Dragon-Brain-3901cee/scripts/verify_mcp_server.py :5 import subprocess
  • shell iikarus-Dragon-Brain-3901cee/src/dashboard/app.py :5 import subprocess
  • shell (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_inject_handoff_hash.py :11 import subprocess
  • shell (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_verify_handoff_completeness.py :8 import subprocess

network 14

  • net (weak) iikarus-Dragon-Brain-3901cee/benchmarks/longmemeval/runner.py :47 import urllib.request
  • net (weak) iikarus-Dragon-Brain-3901cee/scripts/backup_restore.py :10 import httpx
  • net (weak) iikarus-Dragon-Brain-3901cee/scripts/internal/simulate_lazy_import.py :87 import httpx
  • net (weak) iikarus-Dragon-Brain-3901cee/scripts/simulate_lazy_import.py :87 import httpx
  • net iikarus-Dragon-Brain-3901cee/src/claude_memory/embedding.py :7 import httpx
  • net iikarus-Dragon-Brain-3901cee/src/claude_memory/reranker.py :14 import httpx
  • net iikarus-Dragon-Brain-3901cee/src/claude_memory/update_check.py :13 import httpx
  • net (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_backup_load.py :87 import httpx
  • net (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_backup_save.py :37 """Helper to mock httpx.Client context manager and streaming response."""
  • net (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_embedding_client.py :22 @patch("claude_memory.embedding.httpx.Client")
  • net (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_embedding_coverage.py :169 with patch("claude_memory.embedding.httpx.Client") as mock_client_cls:
  • net (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_embedding_server.py :4 Uses httpx.AsyncClient against the FastAPI test client.
show 2 more
  • net (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_reranker.py :10 import httpx
  • net (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_update_check.py :8 import httpx

secrets 6

  • secrets (weak) iikarus-Dragon-Brain-3901cee/scripts/backfill_temporal.py :29 password = os.getenv("FALKORDB_PASSWORD")
  • secrets (weak) iikarus-Dragon-Brain-3901cee/scripts/embedding_eval.py :138 password = os.getenv("FALKORDB_PASSWORD")
  • secrets (weak) iikarus-Dragon-Brain-3901cee/scripts/internal/backfill_temporal.py :29 password = os.getenv("FALKORDB_PASSWORD")
  • secrets (weak) iikarus-Dragon-Brain-3901cee/scripts/internal/embedding_eval.py :138 password = os.getenv("FALKORDB_PASSWORD")
  • secrets iikarus-Dragon-Brain-3901cee/src/claude_memory/lock_manager.py :74 self.password: str | None = os.getenv("REDIS_PASSWORD") or os.getenv("FALKORDB_PASSWORD")
  • secrets iikarus-Dragon-Brain-3901cee/src/claude_memory/repository.py :52 self.password = password or os.getenv("FALKORDB_PASSWORD")

database 11

  • db (weak) iikarus-Dragon-Brain-3901cee/scripts/backup_restore.py :11 import redis
  • db (weak) iikarus-Dragon-Brain-3901cee/scripts/internal/nuke_data.py :4 import redis
  • db (weak) iikarus-Dragon-Brain-3901cee/scripts/internal/validate_brain.py :27 from redis import Redis
  • db (weak) iikarus-Dragon-Brain-3901cee/scripts/nuke_data.py :4 import redis
  • db (weak) iikarus-Dragon-Brain-3901cee/scripts/validate_brain.py :27 from redis import Redis
  • db iikarus-Dragon-Brain-3901cee/src/claude_memory/fts_store.py :22 import sqlite3
  • db iikarus-Dragon-Brain-3901cee/src/claude_memory/lock_manager.py :9 import redis
  • db iikarus-Dragon-Brain-3901cee/src/claude_memory/repository_async.py :25 from redis.exceptions import (
  • db iikarus-Dragon-Brain-3901cee/src/claude_memory/retry.py :24 from redis.exceptions import ConnectionError as RedisConnectionError
  • db (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_batch2_contracts.py :7 import sqlite3
  • db (weak) iikarus-Dragon-Brain-3901cee/tests/unit/test_repository_async.py :16 from redis.exceptions import ConnectionError as RedisConnectionError

tool registrations 20

  • create_entity iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :65
  • update_entity iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :90
  • delete_entity iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :105
  • create_relationship iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :120
  • delete_relationship iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :143
  • add_observation iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :156
  • start_session iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :175
  • end_session iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :182
  • record_breakthrough iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :193
  • get_neighbors iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :214
  • traverse_path iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :223
  • find_cross_domain_patterns iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :230
show 8 more
  • get_evolution iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :237
  • point_in_time_query iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :244
  • archive_entity iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :251
  • prune_stale iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :260
  • search_memory iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :269
  • analyze_graph iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :325
  • get_hologram iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :334
  • search_stats iikarus-Dragon-Brain-3901cee/src/claude_memory/server.py :345

declared dependencies 34

  • mcp@>=0.1.0
  • graphiti-core@>=0.5.0,<1.0.0
  • falkordb@>=1.4.0,<2.0.0
  • pydantic@>=2.0.0
  • sentence-transformers@>=2.2.0
  • scikit-learn@>=1.3.0
  • numpy@>=1.24.0
  • streamlit@>=1.30.0
  • qdrant-client@>=1.7.0,<2.0.0
  • pyvis@>=0.3.2
  • redis@>=7.1.0,<8.0.0
  • fastapi@>=0.100.0,<1.0.0
show 22 more
  • uvicorn@>=0.20.0,<1.0.0
  • httpx@>=0.26.0,<1.0.0
  • nest-asyncio@>=1.6.0
  • pre-commit@>=3.6.0
  • ruff@==0.15.0
  • pytest@>=8.0.0
  • pytest-asyncio@>=0.23.0
  • pytest-cov@>=4.1.0
  • coverage@>=7.4.0
  • hypothesis@>=6.90.0
  • pytest-randomly@>=3.15.0
  • diff-cover@>=9.0.0
  • crosshair-tool@>=0.0.74
  • semgrep@>=1.50.0
  • bandit@>=1.7.0
  • pip-audit@>=2.7.0
  • detect-secrets@>=1.4.0
  • codespell@>=2.2.0
  • docstr-coverage@>=2.3.0
  • tox@>=4.12.0
  • testcontainers@>=4.0.0,<5.0.0
  • mutatest@>=3.0.0

transport_posture 2

  • network-listening, binds all interfaces, no auth detected iikarus-Dragon-Brain-3901cee/src/claude_memory/embedding_server.py :148 uvicorn.run(app, host="0.0.0.0", port=port) # noqa: S104
  • network-listening, binds all interfaces, no auth detected iikarus-Dragon-Brain-3901cee/tests/unit/test_embedding_server.py :161 "uvicorn.run(app, host='0.0.0.0', port=port)",