codegraph-brain 0.18.0__tar.gz → 0.20.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- codegraph_brain-0.20.0/.release-please-manifest.json +3 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/CHANGELOG.md +33 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/PKG-INFO +15 -15
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/README.md +14 -14
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/architecture/HOW_IT_WORKS.md +7 -1
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/architecture/diagrams/pipeline_flow.mermaid +7 -7
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/how-to/MCP_REFERENCE.md +42 -11
- codegraph_brain-0.20.0/docs/plans/2026-09-09-graph-freshness.md +845 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-13-suggest-packages-design.md +7 -2
- codegraph_brain-0.20.0/docs/specs/2026-09-09-graph-freshness-design.md +249 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/pyproject.toml +1 -1
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/api/mcp_server.py +196 -29
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/cli.py +144 -10
- codegraph_brain-0.20.0/src/cgis/core/coverage.py +57 -0
- codegraph_brain-0.20.0/src/cgis/core/freshness.py +38 -0
- codegraph_brain-0.20.0/src/cgis/core/generated.py +79 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/core/models.py +4 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/core/paths.py +15 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/extractors/_python_functions.py +122 -11
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/extractors/python_extractor.py +42 -7
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/pipeline.py +8 -1
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/analysis/suggest_service.py +45 -7
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/context/orphans.py +51 -11
- codegraph_brain-0.20.0/src/cgis/query/engine.py +340 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/render/graph_json.py +16 -3
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/render/metrics.py +110 -27
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/resolver/indices.py +14 -1
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/storage/sqlite_store.py +314 -10
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_cli.py +409 -2
- codegraph_brain-0.20.0/tests/unit/test_freshness.py +340 -0
- codegraph_brain-0.20.0/tests/unit/test_generated.py +174 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_graph_json.py +28 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_mcp_server.py +148 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_metrics.py +253 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_orphans.py +93 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_pipeline.py +23 -0
- codegraph_brain-0.20.0/tests/unit/test_query_coverage.py +395 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_resolver.py +378 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_sqlite_store.py +171 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_suggest_service.py +103 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/uv.lock +20 -10
- codegraph_brain-0.18.0/.release-please-manifest.json +0 -3
- codegraph_brain-0.18.0/src/cgis/query/engine.py +0 -170
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/.claude-plugin/marketplace.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/.gitattributes +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/.github/test-count-baseline +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/.github/workflows/autodoc.yml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/.github/workflows/ci.yml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/.github/workflows/guardian.yml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/.github/workflows/pr-title.yml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/.github/workflows/release-please.yml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/.gitignore +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/.pre-commit-config.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/.python-version +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/CLAUDE.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/CONTRIBUTING.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/LICENSE +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/Makefile +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/PRIVACY.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/CURATION.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/calibration.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/experiments/246-cross-vendor/README.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/experiments/246-cross-vendor/free-nemotron-quota-cutoff.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/experiments/401-evidence/README.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/experiments/401-evidence/pr-399-control-rows.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/experiments/401-evidence/pr-399-recording.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/experiments/401-evidence/pr-399-treatment-rows.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/experiments/407-no-checker-appeal/README.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/experiments/407-no-checker-appeal/pr-399-control-directive-rows.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/experiments/407-no-checker-appeal/pr-399-control-prohibition-rows.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/pr-122.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/pr-140.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/pr-141.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/pr-142.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/pr-143.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/pr-144.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/pr-278.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/pr-313.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/guardian/results.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian/README.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian/cal_dot_com.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian/discourse.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian/grafana.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian/keycloak.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian/sentry.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian-judged.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian-p3-judged-run1.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian-p3-judged-run1.jsonl.corrupted-backup +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian-p3-run1.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian-p3-run2.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian-p3-run3.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian-plan.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian-repeat-judged.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian-repeat-reviews.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/benchmarks/martian-reviews.jsonl +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/data/.gitkeep +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/AUDIT.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/CASE_STUDY.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/GUARDIAN_LOCAL_BENCH.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/GUARDIAN_REMOTE_OLLAMA.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/architecture/ONTOLOGY.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/architecture/PATTERNS_AND_TRIADS.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/architecture/SELF_PORTRAIT.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/architecture/health_badge.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/assets/.gitignore +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/assets/cgis-app-avatar.png +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/assets/cgis-app-avatar.svg +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/assets/generate_avatar.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/examples/.gitkeep +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/how-to/AGENT_ONBOARDING.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/how-to/CLI_USAGE.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/lab-notes/2026-06-11-chunked-review-negative-result.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/ontology/.gitkeep +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/ontology/core.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/ontology/domains.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/ontology/patterns.yaml +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/ontology/tolerances.lock +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-09-domain-pattern-fingerprint-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-09-pattern-alphabet-motif-basis-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-10-guardian-sprint-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-11-fastapi-di-edges-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-11-guardian-chunked-review-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-11-guardian-chunker-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-11-mcp-drift-validate-fqn-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-11-resolver-split-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-11-symbol-import-edges-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-12-drift-empty-domains-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-12-gate-semantics-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-12-init-ontology-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-12-release-please-ci-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-06-13-tangle-anti-pattern-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-29-guardian-skeptic-scoring-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-30-cgis-fractal-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-30-cgis-fractal-plan.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-30-chunk-source-filter-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-30-chunk-source-filter-plan.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-30-genai-client-close-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-30-genai-client-close-plan.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-30-guardian-precision-bench-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-30-guardian-precision-bench-plan.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-30-guardian-timeout-retry-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-30-guardian-timeout-retry-plan.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-07-31-finder-bug-class-taxonomy.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-08-01-aura-autoevolution-poc.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-08-11-guardian-code-review-bench.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-08-14-review-fingerprint-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/2026-09-05-annotation-graph-design.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/BLUEPRINT.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/PRD.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/TDD.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-09-fingerprint-drift.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-10-guardian-context-skeptic-inline.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-10-guardian-structured-findings-bench.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-10-motif-basis-part-b.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-10-unified-pattern-alphabet.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-11-fastapi-di-edges.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-11-guardian-chunked-review.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-11-guardian-chunker.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-11-mcp-drift-validate-fqn.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-11-resolver-split.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-12-drift-empty-domains.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-12-gate-semantics.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-12-init-ontology.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-12-release-please-ci.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-12-symbol-import-edges.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-06-13-suggest-packages.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-07-29-guardian-skeptic-scoring.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-08-14-review-fingerprint.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-09-05-annotation-graph-pr1.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/specs/plans/2026-09-05-annotation-graph-pr2.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/main.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/plugin/.claude-plugin/plugin.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/plugin/.mcp.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/plugin/README.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/plugin/skills/cgis/SKILL.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/plugin/skills/ingest/SKILL.md +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/release-please-config.json +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/backfill_calibration_fingerprint.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/backfill_review_fingerprint.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/check_pytest_raises.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/check_test_count.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/colab_bench.sh +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/gen_ideal_graph.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/generate_health.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/generate_mcp_ref.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/generate_schema_docs.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/guardian_bench.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/guardian_calibrate.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/guardian_martian.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/guardian_replay_skeptic.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/guardian_review.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/inject_readme_graph.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/ollama_visitor.sh +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/probe_closure_gap.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/probe_tier_ladder.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/recordings_from_corpus.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/scripts/skeptic_arms.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/__init__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/__main__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/api/.gitkeep +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/api/__init__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/core/.gitkeep +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/extractors/.gitkeep +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/extractors/_python_annotations.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/extractors/_python_ast.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/extractors/_python_classes.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/extractors/_python_imports.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/extractors/_python_types.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/extractors/base.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/extractors/registry.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/extractors/typescript_extractor.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/__init__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/axes.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/bench.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/calibrate.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/chunked.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/chunker.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/collector.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/core.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/diff_index.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/evidence.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/findings.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/github_poster.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/martian.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/metrics.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/prompts.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/providers/__init__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/providers/base.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/providers/gemini.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/providers/mistral.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/providers/ollama.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/providers/openrouter.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/recording.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/render.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/review_fingerprint.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/runner.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/guardian/skeptic.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/py.typed +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/analysis/__init__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/analysis/analyzer.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/analysis/anomaly.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/analysis/cohesion.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/analysis/health.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/context/__init__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/context/audit.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/context/context_service.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/context/prompt.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/context/snippet.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/drift/__init__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/drift/_scc.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/drift/drift.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/drift/drift_service.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/drift/fingerprint.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/drift/fractal.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/drift/ontology_init.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/drift/quotient.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/drift/triads.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/fqn.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/render/__init__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/query/render/mermaid.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/resolver/.gitkeep +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/resolver/__init__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/resolver/engine.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/resolver/symbols.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/resolver/uplift.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/src/cgis/storage/.gitkeep +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/integration/.gitkeep +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/.gitkeep +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/__init__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/conftest.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/test_annotation_calibration.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/test_architecture.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/test_drift.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/test_fractal.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/test_init_ontology_roundtrip.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/test_receiver_resolution.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/test_self_parse.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/test_self_parse_ts.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/self_parsing/test_suggest.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/.gitkeep +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/conftest.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/guardian_stubs.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/review_path_inventory.txt +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test___main__.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_analyzer.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_annotation_edges.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_audit.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_backfill_calibration_fingerprint.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_backfill_review_fingerprint.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_check_pytest_raises.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_check_test_count.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_cohesion.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_context_service.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_di_acceptance.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_drift.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_drift_service.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_extractor_registry.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_fingerprint.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_fqn.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_fractal.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_gen_ideal_graph.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_generate_mcp_ref.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_axes.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_bench.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_bench_script.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_calibrate.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_calibrate_script.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_chunked.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_chunker.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_collector.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_core.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_diff_index.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_evidence.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_findings.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_martian.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_martian_script.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_martian_union.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_metrics.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_mistral_sampling.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_ollama_sampling.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_ollama_truncation.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_openrouter.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_poster.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_providers.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_providers_name.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_recording.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_render.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_replay_skeptic.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_review_script.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_runner.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_salvage.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_guardian_skeptic.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_health_scorer.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_import_acceptance.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_mermaid.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_models.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_name_load_positions.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_ontology_compliance.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_ontology_init.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_paths.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_patterns_yaml.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_prompt.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_python_annotations.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_python_extractor.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_quotient.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_recordings_from_corpus.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_resolver_indices.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_resolver_symbols.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_review_fingerprint_closure.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_review_fingerprint_contract.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_review_fingerprint_digest.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_review_fingerprint_record.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_self_types.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_skeptic_arms.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_snippet.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_temperature_source.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_triads.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_typescript_extractor.py +0 -0
- {codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/tests/unit/test_uplift.py +0 -0
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.20.0](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.19.0...codegraph-brain-v0.20.0) (2026-09-11)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **query:** a traversal says how much of its neighbourhood resolved ([#201](https://github.com/zaebee/codegraph-brain/issues/201)) ([#448](https://github.com/zaebee/codegraph-brain/issues/448)) ([0c63469](https://github.com/zaebee/codegraph-brain/commit/0c634697789f5264316c8a218e993f13a9a0f73f))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Documentation
|
|
12
|
+
|
|
13
|
+
* auto-sync architecture graph and MCP reference ([#449](https://github.com/zaebee/codegraph-brain/issues/449)) ([e9eccae](https://github.com/zaebee/codegraph-brain/commit/e9eccae8d43e8dc264ca87f8ea0a45752471f079))
|
|
14
|
+
|
|
15
|
+
## [0.19.0](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.18.0...codegraph-brain-v0.19.0) (2026-09-09)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **freshness:** every query says when the graph is out of date ([#175](https://github.com/zaebee/codegraph-brain/issues/175) part 2) ([#443](https://github.com/zaebee/codegraph-brain/issues/443)) ([0d6d197](https://github.com/zaebee/codegraph-brain/commit/0d6d197133c1315698b10a223aaf8efb47784578))
|
|
21
|
+
* **metrics:** --scope <prefix> to focus rankings on one subtree ([#239](https://github.com/zaebee/codegraph-brain/issues/239)) ([#439](https://github.com/zaebee/codegraph-brain/issues/439)) ([59605d3](https://github.com/zaebee/codegraph-brain/commit/59605d361f95aeea18b8272183f20938c0ca10b8))
|
|
22
|
+
* **orphans:** generated classes are noise, not findings — hide them by default ([#432](https://github.com/zaebee/codegraph-brain/issues/432)) ([#441](https://github.com/zaebee/codegraph-brain/issues/441)) ([52e0de1](https://github.com/zaebee/codegraph-brain/commit/52e0de1e666612f72d5a58eaad9509252db098e2))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* **extractor:** `with X() as y` records y's type ([#444](https://github.com/zaebee/codegraph-brain/issues/444)) ([#445](https://github.com/zaebee/codegraph-brain/issues/445)) ([529b2e2](https://github.com/zaebee/codegraph-brain/commit/529b2e2239ab62a14211d95291afb1d7a6666cfc))
|
|
28
|
+
* **resolver:** only a head-discarding strip is forbidden a foreign head ([#435](https://github.com/zaebee/codegraph-brain/issues/435)) ([#437](https://github.com/zaebee/codegraph-brain/issues/437)) ([3e5309a](https://github.com/zaebee/codegraph-brain/commit/3e5309ac6e65cfdc5174dc70c6ae9d4b5036d92a))
|
|
29
|
+
* **suggest-packages:** name a member by its path under the package ([#446](https://github.com/zaebee/codegraph-brain/issues/446)) ([#447](https://github.com/zaebee/codegraph-brain/issues/447)) ([08af353](https://github.com/zaebee/codegraph-brain/commit/08af353f88b0026f799eb2cb2f9ed5f0c9733d22))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Documentation
|
|
33
|
+
|
|
34
|
+
* auto-sync architecture graph and MCP reference ([#442](https://github.com/zaebee/codegraph-brain/issues/442)) ([47a6aab](https://github.com/zaebee/codegraph-brain/commit/47a6aab38225f8e8936abd9d9e72b9449f10afe2))
|
|
35
|
+
|
|
3
36
|
## [0.18.0](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.17.0...codegraph-brain-v0.18.0) (2026-09-06)
|
|
4
37
|
|
|
5
38
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: codegraph-brain
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.0
|
|
4
4
|
Summary: Semantic code graph for AI agents — deterministic FQN resolution, impact analysis and architectural drift gates, exposed over MCP.
|
|
5
5
|
Project-URL: Homepage, https://github.com/zaebee/codegraph-brain
|
|
6
6
|
Project-URL: Repository, https://github.com/zaebee/codegraph-brain
|
|
@@ -198,15 +198,15 @@ classDef stdlibNode fill:#eceff1,stroke:#607d8b,stroke-width:1px,color:#455a64;
|
|
|
198
198
|
classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dasharray: 3 3,color:#bf360c;
|
|
199
199
|
|
|
200
200
|
subgraph sg_models["models.py"]
|
|
201
|
-
models_Edge["Edge (models.py:
|
|
201
|
+
models_Edge["Edge (models.py:142)"]:::classNode
|
|
202
202
|
models_Node["Node (models.py:85)"]:::classNode
|
|
203
203
|
end
|
|
204
204
|
subgraph sg_pipeline["pipeline.py"]
|
|
205
|
-
pipeline_IngestionPipeline_get_extractor["_get_extractor (pipeline.py:
|
|
206
|
-
pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:
|
|
207
|
-
pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:
|
|
208
|
-
pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:
|
|
209
|
-
pipeline_IngestionPipeline_run["run (pipeline.py:
|
|
205
|
+
pipeline_IngestionPipeline_get_extractor["_get_extractor (pipeline.py:252)"]:::methodNode
|
|
206
|
+
pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:192)"]:::methodNode
|
|
207
|
+
pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:211)"]:::methodNode
|
|
208
|
+
pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:157)"]:::methodNode
|
|
209
|
+
pipeline_IngestionPipeline_run["run (pipeline.py:53)"]:::methodNode
|
|
210
210
|
end
|
|
211
211
|
subgraph sg_engine["engine.py"]
|
|
212
212
|
engine_ResolverEngine["ResolverEngine (engine.py:19)"]:::classNode
|
|
@@ -217,7 +217,7 @@ classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dashar
|
|
|
217
217
|
uplift_SemanticUpliftEngine_execute_uplift["execute_uplift (uplift.py:91)"]:::methodNode
|
|
218
218
|
end
|
|
219
219
|
subgraph sg_sqlite_store["sqlite_store.py"]
|
|
220
|
-
sqlite_store_SQLiteStore["SQLiteStore (sqlite_store.py:
|
|
220
|
+
sqlite_store_SQLiteStore["SQLiteStore (sqlite_store.py:40)"]:::classNode
|
|
221
221
|
end
|
|
222
222
|
pipeline_IngestionPipeline_run -->|REFERENCES| models_Node
|
|
223
223
|
pipeline_IngestionPipeline_run -->|REFERENCES| models_Edge
|
|
@@ -235,17 +235,17 @@ classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dashar
|
|
|
235
235
|
| Symbol | Type | File |
|
|
236
236
|
|--------|------|------|
|
|
237
237
|
| `Node` | CLASS | [`models.py:85`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/core/models.py#L85) |
|
|
238
|
-
| `Edge` | CLASS | [`models.py:
|
|
239
|
-
| `run` | METHOD | [`pipeline.py:
|
|
240
|
-
| `_process_file` | METHOD | [`pipeline.py:
|
|
241
|
-
| `_is_noop_incremental` | METHOD | [`pipeline.py:
|
|
242
|
-
| `_persist_incremental` | METHOD | [`pipeline.py:
|
|
243
|
-
| `_get_extractor` | METHOD | [`pipeline.py:
|
|
238
|
+
| `Edge` | CLASS | [`models.py:142`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/core/models.py#L142) |
|
|
239
|
+
| `run` | METHOD | [`pipeline.py:53`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L53) |
|
|
240
|
+
| `_process_file` | METHOD | [`pipeline.py:157`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L157) |
|
|
241
|
+
| `_is_noop_incremental` | METHOD | [`pipeline.py:192`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L192) |
|
|
242
|
+
| `_persist_incremental` | METHOD | [`pipeline.py:211`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L211) |
|
|
243
|
+
| `_get_extractor` | METHOD | [`pipeline.py:252`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L252) |
|
|
244
244
|
| `ResolverEngine` | CLASS | [`engine.py:19`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/engine.py#L19) |
|
|
245
245
|
| `resolve` | METHOD | [`engine.py:36`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/engine.py#L36) |
|
|
246
246
|
| `SemanticUpliftEngine` | CLASS | [`uplift.py:66`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/uplift.py#L66) |
|
|
247
247
|
| `execute_uplift` | METHOD | [`uplift.py:91`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/uplift.py#L91) |
|
|
248
|
-
| `SQLiteStore` | CLASS | [`sqlite_store.py:
|
|
248
|
+
| `SQLiteStore` | CLASS | [`sqlite_store.py:40`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/storage/sqlite_store.py#L40) |
|
|
249
249
|
<!-- END_CGIS_GRAPH -->
|
|
250
250
|
|
|
251
251
|
---
|
|
@@ -148,15 +148,15 @@ classDef stdlibNode fill:#eceff1,stroke:#607d8b,stroke-width:1px,color:#455a64;
|
|
|
148
148
|
classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dasharray: 3 3,color:#bf360c;
|
|
149
149
|
|
|
150
150
|
subgraph sg_models["models.py"]
|
|
151
|
-
models_Edge["Edge (models.py:
|
|
151
|
+
models_Edge["Edge (models.py:142)"]:::classNode
|
|
152
152
|
models_Node["Node (models.py:85)"]:::classNode
|
|
153
153
|
end
|
|
154
154
|
subgraph sg_pipeline["pipeline.py"]
|
|
155
|
-
pipeline_IngestionPipeline_get_extractor["_get_extractor (pipeline.py:
|
|
156
|
-
pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:
|
|
157
|
-
pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:
|
|
158
|
-
pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:
|
|
159
|
-
pipeline_IngestionPipeline_run["run (pipeline.py:
|
|
155
|
+
pipeline_IngestionPipeline_get_extractor["_get_extractor (pipeline.py:252)"]:::methodNode
|
|
156
|
+
pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:192)"]:::methodNode
|
|
157
|
+
pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:211)"]:::methodNode
|
|
158
|
+
pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:157)"]:::methodNode
|
|
159
|
+
pipeline_IngestionPipeline_run["run (pipeline.py:53)"]:::methodNode
|
|
160
160
|
end
|
|
161
161
|
subgraph sg_engine["engine.py"]
|
|
162
162
|
engine_ResolverEngine["ResolverEngine (engine.py:19)"]:::classNode
|
|
@@ -167,7 +167,7 @@ classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dashar
|
|
|
167
167
|
uplift_SemanticUpliftEngine_execute_uplift["execute_uplift (uplift.py:91)"]:::methodNode
|
|
168
168
|
end
|
|
169
169
|
subgraph sg_sqlite_store["sqlite_store.py"]
|
|
170
|
-
sqlite_store_SQLiteStore["SQLiteStore (sqlite_store.py:
|
|
170
|
+
sqlite_store_SQLiteStore["SQLiteStore (sqlite_store.py:40)"]:::classNode
|
|
171
171
|
end
|
|
172
172
|
pipeline_IngestionPipeline_run -->|REFERENCES| models_Node
|
|
173
173
|
pipeline_IngestionPipeline_run -->|REFERENCES| models_Edge
|
|
@@ -185,17 +185,17 @@ classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dashar
|
|
|
185
185
|
| Symbol | Type | File |
|
|
186
186
|
|--------|------|------|
|
|
187
187
|
| `Node` | CLASS | [`models.py:85`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/core/models.py#L85) |
|
|
188
|
-
| `Edge` | CLASS | [`models.py:
|
|
189
|
-
| `run` | METHOD | [`pipeline.py:
|
|
190
|
-
| `_process_file` | METHOD | [`pipeline.py:
|
|
191
|
-
| `_is_noop_incremental` | METHOD | [`pipeline.py:
|
|
192
|
-
| `_persist_incremental` | METHOD | [`pipeline.py:
|
|
193
|
-
| `_get_extractor` | METHOD | [`pipeline.py:
|
|
188
|
+
| `Edge` | CLASS | [`models.py:142`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/core/models.py#L142) |
|
|
189
|
+
| `run` | METHOD | [`pipeline.py:53`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L53) |
|
|
190
|
+
| `_process_file` | METHOD | [`pipeline.py:157`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L157) |
|
|
191
|
+
| `_is_noop_incremental` | METHOD | [`pipeline.py:192`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L192) |
|
|
192
|
+
| `_persist_incremental` | METHOD | [`pipeline.py:211`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L211) |
|
|
193
|
+
| `_get_extractor` | METHOD | [`pipeline.py:252`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L252) |
|
|
194
194
|
| `ResolverEngine` | CLASS | [`engine.py:19`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/engine.py#L19) |
|
|
195
195
|
| `resolve` | METHOD | [`engine.py:36`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/engine.py#L36) |
|
|
196
196
|
| `SemanticUpliftEngine` | CLASS | [`uplift.py:66`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/uplift.py#L66) |
|
|
197
197
|
| `execute_uplift` | METHOD | [`uplift.py:91`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/uplift.py#L91) |
|
|
198
|
-
| `SQLiteStore` | CLASS | [`sqlite_store.py:
|
|
198
|
+
| `SQLiteStore` | CLASS | [`sqlite_store.py:40`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/storage/sqlite_store.py#L40) |
|
|
199
199
|
<!-- END_CGIS_GRAPH -->
|
|
200
200
|
|
|
201
201
|
---
|
|
@@ -86,7 +86,8 @@ CREATE TABLE IF NOT EXISTS nodes (
|
|
|
86
86
|
confidence_score REAL NOT NULL,
|
|
87
87
|
metadata TEXT,
|
|
88
88
|
namespace TEXT NOT NULL DEFAULT 'INTERNAL',
|
|
89
|
-
is_test INTEGER NOT NULL DEFAULT 0
|
|
89
|
+
is_test INTEGER NOT NULL DEFAULT 0,
|
|
90
|
+
is_generated INTEGER NOT NULL DEFAULT 0
|
|
90
91
|
);
|
|
91
92
|
|
|
92
93
|
CREATE TABLE IF NOT EXISTS edges (
|
|
@@ -106,6 +107,11 @@ CREATE TABLE IF NOT EXISTS nodes (
|
|
|
106
107
|
hash TEXT NOT NULL
|
|
107
108
|
);
|
|
108
109
|
|
|
110
|
+
CREATE TABLE IF NOT EXISTS ingest_state (
|
|
111
|
+
key TEXT PRIMARY KEY,
|
|
112
|
+
value TEXT NOT NULL
|
|
113
|
+
);
|
|
114
|
+
|
|
109
115
|
CREATE INDEX IF NOT EXISTS idx_nodes_type ON nodes(type);
|
|
110
116
|
CREATE INDEX IF NOT EXISTS idx_edges_source ON edges(source);
|
|
111
117
|
CREATE INDEX IF NOT EXISTS idx_edges_target ON edges(target);
|
{codegraph_brain-0.18.0 → codegraph_brain-0.20.0}/docs/architecture/diagrams/pipeline_flow.mermaid
RENAMED
|
@@ -8,15 +8,15 @@ classDef stdlibNode fill:#eceff1,stroke:#607d8b,stroke-width:1px,color:#455a64;
|
|
|
8
8
|
classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dasharray: 3 3,color:#bf360c;
|
|
9
9
|
|
|
10
10
|
subgraph sg_models["models.py"]
|
|
11
|
-
models_Edge["Edge (models.py:
|
|
11
|
+
models_Edge["Edge (models.py:142)"]:::classNode
|
|
12
12
|
models_Node["Node (models.py:85)"]:::classNode
|
|
13
13
|
end
|
|
14
14
|
subgraph sg_pipeline["pipeline.py"]
|
|
15
|
-
pipeline_IngestionPipeline_get_extractor["_get_extractor (pipeline.py:
|
|
16
|
-
pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:
|
|
17
|
-
pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:
|
|
18
|
-
pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:
|
|
19
|
-
pipeline_IngestionPipeline_run["run (pipeline.py:
|
|
15
|
+
pipeline_IngestionPipeline_get_extractor["_get_extractor (pipeline.py:252)"]:::methodNode
|
|
16
|
+
pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:192)"]:::methodNode
|
|
17
|
+
pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:211)"]:::methodNode
|
|
18
|
+
pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:157)"]:::methodNode
|
|
19
|
+
pipeline_IngestionPipeline_run["run (pipeline.py:53)"]:::methodNode
|
|
20
20
|
end
|
|
21
21
|
subgraph sg_engine["engine.py"]
|
|
22
22
|
engine_ResolverEngine["ResolverEngine (engine.py:19)"]:::classNode
|
|
@@ -27,7 +27,7 @@ classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dashar
|
|
|
27
27
|
uplift_SemanticUpliftEngine_execute_uplift["execute_uplift (uplift.py:91)"]:::methodNode
|
|
28
28
|
end
|
|
29
29
|
subgraph sg_sqlite_store["sqlite_store.py"]
|
|
30
|
-
sqlite_store_SQLiteStore["SQLiteStore (sqlite_store.py:
|
|
30
|
+
sqlite_store_SQLiteStore["SQLiteStore (sqlite_store.py:40)"]:::classNode
|
|
31
31
|
end
|
|
32
32
|
pipeline_IngestionPipeline_run -->|REFERENCES| models_Node
|
|
33
33
|
pipeline_IngestionPipeline_run -->|REFERENCES| models_Edge
|
|
@@ -10,9 +10,13 @@
|
|
|
10
10
|
Analyse transitive upstream callers of a specific FQN.
|
|
11
11
|
|
|
12
12
|
Answers "what breaks if I change X?". ``output_format="mermaid"`` (default)
|
|
13
|
-
returns a diagram; ``"json"`` returns a joinable ``{root, nodes, edges
|
|
14
|
-
payload with real FQNs — letting an agent compute set
|
|
15
|
-
"which route handlers never reach ``verify_ownership``?")
|
|
13
|
+
returns a diagram; ``"json"`` returns a joinable ``{root, nodes, edges,
|
|
14
|
+
coverage}`` payload with real FQNs — letting an agent compute set
|
|
15
|
+
differences (e.g. "which route handlers never reach ``verify_ownership``?")
|
|
16
|
+
directly. ``coverage`` counts unresolved calls whose name matches a
|
|
17
|
+
traversed function, method or class: callers that may be missing, named in
|
|
18
|
+
``top_unresolved``. It is an upper bound — a common name matches calls on
|
|
19
|
+
unrelated objects, which the names make visible.
|
|
16
20
|
|
|
17
21
|
| Argument | Type | Required | Description |
|
|
18
22
|
| :--- | :--- | :---: | :--- |
|
|
@@ -126,18 +130,30 @@ Classes nothing in production builds, extends or names — dead-code candidates
|
|
|
126
130
|
``prefix`` narrows to one package on a dot boundary. ``include_tests`` counts
|
|
127
131
|
test code as a user, turning the report into "unreachable from anywhere".
|
|
128
132
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
Machine-generated classes are **hidden by default**, and ``include_generated``
|
|
134
|
+
puts them back. The query is right about them — nothing constructs a
|
|
135
|
+
betterproto stub — but nobody hand-deletes one either, so they are noise
|
|
136
|
+
rather than a finding. Measured on owner-api at b7d02fe6, five of six
|
|
137
|
+
reported orphans were generated entities and the sixth a nested pydantic
|
|
138
|
+
``Config``: the unfiltered report had no actionable row in it (#432).
|
|
139
|
+
|
|
140
|
+
Returns JSON ``{orphans, considered, test_sources, generated_excluded}``;
|
|
141
|
+
each orphan carries ``fqn``/``file``/``line``. **A listing is a candidate for
|
|
142
|
+
deletion, not a proof** — a class named only inside a decorator (#429) or
|
|
143
|
+
arriving through a star import is invisible here, so the sweep errs towards
|
|
144
|
+
reporting a live class rather than hiding a dead one. ``test_sources: 0`` in a
|
|
145
|
+
repository that has tests means the graph predates the ``is_test`` column:
|
|
146
|
+
re-ingest. ``generated_excluded`` counts every generated class left out of
|
|
147
|
+
the population under the same ``prefix``, referenced or not — so ``0`` on a
|
|
148
|
+
repository with generated code means the same for ``is_generated``, which has
|
|
149
|
+
no backfill: the marker is in the file header, not in the database.
|
|
135
150
|
|
|
136
151
|
| Argument | Type | Required | Description |
|
|
137
152
|
| :--- | :--- | :---: | :--- |
|
|
138
153
|
| `db_path` | `string` | | |
|
|
139
154
|
| `prefix` | `any` | | |
|
|
140
155
|
| `include_tests` | `boolean` | | |
|
|
156
|
+
| `include_generated` | `boolean` | | |
|
|
141
157
|
|
|
142
158
|
---
|
|
143
159
|
|
|
@@ -267,11 +283,22 @@ Whole-graph architectural metrics — coupling bottlenecks + God classes (#16).
|
|
|
267
283
|
(e.g. ``["tests"]`` removes both ``tests.*`` and ``domains.*.tests.*``) so
|
|
268
284
|
test/vendor scaffolding stays out of the rankings.
|
|
269
285
|
|
|
286
|
+
``scope`` is its complement: it keeps only nodes under one of the given
|
|
287
|
+
dot-prefixes, anchored and cut on a dot boundary, so
|
|
288
|
+
``["domains.reservation"]`` is that subtree and not
|
|
289
|
+
``domains.reservation_archive``. Use it for a per-domain review. The two
|
|
290
|
+
compose, and they differ where it matters for PageRank — ``exclude`` removes
|
|
291
|
+
nodes from the propagation graph, ``scope`` filters the rows and lets rank
|
|
292
|
+
propagate over the whole graph, so a scoped run reports how central the
|
|
293
|
+
subtree is *globally*. Coupling in-degree likewise keeps counting callers
|
|
294
|
+
from outside the scope, which is the ripple a domain review is after (#239).
|
|
295
|
+
|
|
270
296
|
| Argument | Type | Required | Description |
|
|
271
297
|
| :--- | :--- | :---: | :--- |
|
|
272
298
|
| `db_path` | `string` | | |
|
|
273
299
|
| `limit` | `integer` | | |
|
|
274
300
|
| `exclude` | `any` | | |
|
|
301
|
+
| `scope` | `any` | | |
|
|
275
302
|
|
|
276
303
|
---
|
|
277
304
|
|
|
@@ -302,8 +329,12 @@ Suggest sub-package boundaries for a package from its dependency communities.
|
|
|
302
329
|
Trace the execution call-graph starting from a specific FQN downwards.
|
|
303
330
|
|
|
304
331
|
``output_format="mermaid"`` (default) returns a human-readable diagram;
|
|
305
|
-
``"json"`` returns a joinable ``{root, nodes, edges}`` payload
|
|
306
|
-
FQNs (not display hashes) for agent/CI use.
|
|
332
|
+
``"json"`` returns a joinable ``{root, nodes, edges, coverage}`` payload
|
|
333
|
+
with real FQNs (not display hashes) for agent/CI use. ``coverage`` counts
|
|
334
|
+
the calls the traversed functions make that resolved to nothing, and
|
|
335
|
+
``top_unresolved`` names the most frequent. Read the names, not only the
|
|
336
|
+
ratio: in Python most are methods on untyped locals (``logger.info``,
|
|
337
|
+
``items.append``), which cut nothing short. Use ``cgis_ingest`` first if
|
|
307
338
|
the database does not exist yet.
|
|
308
339
|
|
|
309
340
|
| Argument | Type | Required | Description |
|