github Python analyzed 65e69c6

sachinshelke/codevira

github

Stop re-explaining your project to AI agents every session. One memory layer for Claude Code, Cursor, Windsurf, Antigravity — local, MIT, no signup.

maintainer
sachinshelke
licence
MIT
first seen
2026-06-13
last seen
2026-09-11
releases · 30d
0
short id

Drift inferred · capture-to-capture

tool count over time

06-13 08:07 08-12 08:26 now
0t
5t
0t
capabilities 8 tools
transport stdio · streamable-http · http counts 8 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • add_phase
  • complete_phase
  • defer_phase
  • get_impact
  • get_node
  • get_phase
  • get_roadmap
  • update_phase_status
skills & danger signals github-tarball
code evidence vv4.1.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 324

filesystem 198

  • fs (weak) sachinshelke-codevira-65e69c6/docs/demo/record.py :13 import shutil
  • fs sachinshelke-codevira-65e69c6/indexer/_dedupe_migration.py :34 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/indexer/_sqlite_util.py :29 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/indexer/fix_history.py :31 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/indexer/global_db.py :14 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/indexer/graph_generator.py :7 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/indexer/imports.py :26 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/indexer/index_codebase.py :9 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/indexer/outcome_classifier.py :25 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/indexer/sqlite_graph.py :5 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/indexer/treesitter_parser.py :21 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/_mcp_registry.py :34 from pathlib import Path
show 28 more
  • fs sachinshelke-codevira-65e69c6/mcp_server/_project_inventory.py :33 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/_repair_init.py :35 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/auto_init.py :22 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/cli.py :32 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/cli_export.py :45 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/cli_graph.py :28 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/cli_hooks_admin.py :19 import shutil
  • fs sachinshelke-codevira-65e69c6/mcp_server/cli_init.py :41 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/cli_memory.py :26 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/cli_projects.py :19 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/cli_repair.py :23 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/cli_replay.py :20 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/cli_transfer.py :41 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/cli_uninstall.py :49 import shutil
  • fs sachinshelke-codevira-65e69c6/mcp_server/crash_logger.py :23 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/decision_replay.py :32 import shutil
  • fs sachinshelke-codevira-65e69c6/mcp_server/detect.py :12 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/doctor.py :501 import shutil
  • fs sachinshelke-codevira-65e69c6/mcp_server/engine/audit.py :48 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/engine/events.py :22 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/engine/memory_fanout.py :220 from pathlib import Path as _P
  • fs sachinshelke-codevira-65e69c6/mcp_server/engine/policies/_region_detect.py :35 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/engine/policies/relevance_inject.py :49 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/engine/policies/session_log_enforcer.py :69 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/engine/signals.py :27 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/engine/token_meter.py :26 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/engine/wiring/_diff_envelope.py :24 from pathlib import Path
  • fs sachinshelke-codevira-65e69c6/mcp_server/engine/wiring/claude_code_hooks.py :39 from pathlib import Path

158 more not shown — this panel samples each group; the count above is the real total.

shell / exec 66

  • shell (weak) sachinshelke-codevira-65e69c6/docs/demo/record.py :14 import subprocess
  • shell sachinshelke-codevira-65e69c6/indexer/fix_history.py :546 import subprocess
  • shell sachinshelke-codevira-65e69c6/indexer/graph_generator.py :6 import subprocess
  • shell sachinshelke-codevira-65e69c6/indexer/outcome_classifier.py :24 import subprocess
  • shell sachinshelke-codevira-65e69c6/mcp_server/cli_repair.py :22 import subprocess
  • shell sachinshelke-codevira-65e69c6/mcp_server/doctor.py :502 import subprocess
  • shell sachinshelke-codevira-65e69c6/mcp_server/engine/policies/session_log_enforcer.py :67 import subprocess
  • shell sachinshelke-codevira-65e69c6/mcp_server/engine/wiring/git_hooks.py :35 import subprocess
  • shell sachinshelke-codevira-65e69c6/mcp_server/http_server.py :24 import subprocess
  • shell sachinshelke-codevira-65e69c6/mcp_server/ide_inject.py :187 import subprocess
  • shell sachinshelke-codevira-65e69c6/mcp_server/launchd.py :18 import subprocess
  • shell sachinshelke-codevira-65e69c6/mcp_server/paths.py :29 import subprocess
show 28 more
  • shell sachinshelke-codevira-65e69c6/mcp_server/roadmap_drift.py :62 import subprocess
  • shell sachinshelke-codevira-65e69c6/mcp_server/storage/outcomes_writer.py :44 import subprocess
  • shell sachinshelke-codevira-65e69c6/mcp_server/update_check.py :151 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/scripts/chaos_smoke.py :24 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/scripts/system_test_agentstore.py :24 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/e2e/test_first_contact.py :59 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/e2e/test_product_invariants.py :28 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/e2e/test_qa_round_v2_completion.py :43 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/e2e/test_v2_release_candidate.py :666 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/e2e/test_v350_acceptance.py :33 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_evidence_reaches_readers.py :88 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_git_hook_enforcement.py :20 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_qa_round3.py :19 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_session_log_enforcer.py :12 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_signals_project_scoping.py :21 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/engine/test_week2_edge_cases.py :15 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/integration/test_sandboxed_parent.py :35 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_amendment_provenance.py :25 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_anchor_derivation.py :20 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_device_identity.py :21 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_score_breakdown.py :14 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_search_perf_caches.py :21 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_session_identity.py :21 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_stranded_parameters.py :17 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_uid.py :18 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/storage/test_uid_edges.py :19 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/test_classifier_is_shared.py :35 import subprocess
  • shell (weak) sachinshelke-codevira-65e69c6/tests/test_cli_graph.py :12 import subprocess

26 more not shown — this panel samples each group; the count above is the real total.

network 5

  • net sachinshelke-codevira-65e69c6/mcp_server/egress.py :6 nothing stopped a future module from adding an ``import httpx`` and quietly
  • net sachinshelke-codevira-65e69c6/mcp_server/project_binding.py :24 from urllib.parse import unquote, urlparse
  • net sachinshelke-codevira-65e69c6/mcp_server/server.py :260 from urllib.parse import unquote
  • net (weak) sachinshelke-codevira-65e69c6/tests/test_egress_boundary.py :5 stopped a future module from adding `import httpx` and quietly turning a
  • net (weak) sachinshelke-codevira-65e69c6/tests/test_update_check.py :158 "urllib.request.urlopen",

secrets 2

  • secrets sachinshelke-codevira-65e69c6/mcp_server/storage/origin.py :101 import getpass
  • secrets (weak) sachinshelke-codevira-65e69c6/tests/storage/test_origin.py :86 import getpass

database 34

  • db sachinshelke-codevira-65e69c6/indexer/_dedupe_migration.py :33 import sqlite3
  • db sachinshelke-codevira-65e69c6/indexer/_sqlite_util.py :27 import sqlite3
  • db sachinshelke-codevira-65e69c6/indexer/fix_history.py :28 import sqlite3
  • db sachinshelke-codevira-65e69c6/indexer/global_db.py :13 import sqlite3
  • db sachinshelke-codevira-65e69c6/indexer/index_codebase.py :901 import sqlite3 as _sqlite3
  • db sachinshelke-codevira-65e69c6/indexer/sqlite_graph.py :3 import sqlite3
  • db sachinshelke-codevira-65e69c6/mcp_server/_project_inventory.py :31 import sqlite3
  • db sachinshelke-codevira-65e69c6/mcp_server/auto_init.py :154 import sqlite3 as _sqlite3
  • db sachinshelke-codevira-65e69c6/mcp_server/cli.py :2380 import sqlite3 as _sqlite3
  • db sachinshelke-codevira-65e69c6/mcp_server/cli_export.py :43 import sqlite3
  • db sachinshelke-codevira-65e69c6/mcp_server/cli_graph.py :63 import sqlite3
  • db sachinshelke-codevira-65e69c6/mcp_server/cli_projects.py :276 import sqlite3
show 22 more
  • db sachinshelke-codevira-65e69c6/mcp_server/cli_transfer.py :36 import sqlite3
  • db sachinshelke-codevira-65e69c6/mcp_server/doctor.py :40 import sqlite3
  • db sachinshelke-codevira-65e69c6/mcp_server/log_retention.py :162 import sqlite3
  • db sachinshelke-codevira-65e69c6/mcp_server/migrate.py :20 import sqlite3
  • db sachinshelke-codevira-65e69c6/mcp_server/storage/anchor.py :25 import sqlite3
  • db sachinshelke-codevira-65e69c6/mcp_server/storage/fts5_index.py :41 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/storage/test_anchor_derivation.py :19 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_auto_init.py :256 import sqlite3 as _sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_cli_export.py :18 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_cli_projects.py :25 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_cli_transfer.py :11 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_dedupe_migration.py :26 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_g3_hermetic.py :25 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_ghost_check.py :26 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_global_db.py :28 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_log_retention.py :7 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_migrate.py :30 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_project_inventory.py :35 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_repair_init.py :30 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_sqlite_util.py :13 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_startup_migrations.py :101 import sqlite3
  • db (weak) sachinshelke-codevira-65e69c6/tests/test_tenant_isolation.py :22 import sqlite3

tool registrations 8

  • get_node sachinshelke-codevira-65e69c6/mcp_server/server.py :305
  • get_impact sachinshelke-codevira-65e69c6/mcp_server/server.py :328
  • get_roadmap sachinshelke-codevira-65e69c6/mcp_server/server.py :356
  • get_phase sachinshelke-codevira-65e69c6/mcp_server/server.py :372
  • add_phase sachinshelke-codevira-65e69c6/mcp_server/server.py :386
  • update_phase_status sachinshelke-codevira-65e69c6/mcp_server/server.py :427
  • defer_phase sachinshelke-codevira-65e69c6/mcp_server/server.py :452
  • complete_phase sachinshelke-codevira-65e69c6/mcp_server/server.py :470

declared dependencies 15

  • mcp@>=1.0,<2
  • pyyaml@>=6.0
  • watchdog@>=3.0.0
  • tomli@>=2.0; python_version <
  • uvicorn@>=0.27.0
  • starlette@>=0.36.0
  • pytest@>=7.0
  • pytest-asyncio@>=0.21
  • pytest-timeout@>=2.1
  • pytest-randomly@>=3.12
  • ruff@==0.15.14
  • mypy@>=1.10
show 3 more
  • types-PyYAML@*
  • pre-commit@>=3.5
  • build@>=1.0

transport_posture 2

  • binds all interfaces (0.0.0.0) sachinshelke-codevira-65e69c6/tests/test_http_server.py :462 run_http_server(host="0.0.0.0", port=7007)
  • network-listening, binds all interfaces, no auth detected sachinshelke-codevira-65e69c6/tests/test_launchd.py :106 install_launchd(port=8080, host="0.0.0.0")