codegraph-brain 0.18.0__tar.gz → 0.19.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.
Files changed (356) hide show
  1. codegraph_brain-0.19.0/.release-please-manifest.json +3 -0
  2. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/CHANGELOG.md +21 -0
  3. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/PKG-INFO +15 -15
  4. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/README.md +14 -14
  5. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/architecture/HOW_IT_WORKS.md +7 -1
  6. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/architecture/diagrams/pipeline_flow.mermaid +7 -7
  7. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/how-to/MCP_REFERENCE.md +29 -6
  8. codegraph_brain-0.19.0/docs/plans/2026-09-09-graph-freshness.md +845 -0
  9. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-13-suggest-packages-design.md +7 -2
  10. codegraph_brain-0.19.0/docs/specs/2026-09-09-graph-freshness-design.md +249 -0
  11. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/pyproject.toml +1 -1
  12. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/api/mcp_server.py +154 -22
  13. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/cli.py +117 -4
  14. codegraph_brain-0.19.0/src/cgis/core/freshness.py +38 -0
  15. codegraph_brain-0.19.0/src/cgis/core/generated.py +79 -0
  16. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/core/models.py +4 -0
  17. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/core/paths.py +15 -0
  18. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/extractors/_python_functions.py +122 -11
  19. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/extractors/python_extractor.py +42 -7
  20. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/pipeline.py +8 -1
  21. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/analysis/suggest_service.py +45 -7
  22. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/context/orphans.py +51 -11
  23. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/render/metrics.py +110 -27
  24. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/resolver/indices.py +14 -1
  25. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/storage/sqlite_store.py +288 -10
  26. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_cli.py +374 -2
  27. codegraph_brain-0.19.0/tests/unit/test_freshness.py +340 -0
  28. codegraph_brain-0.19.0/tests/unit/test_generated.py +174 -0
  29. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_mcp_server.py +118 -0
  30. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_metrics.py +253 -0
  31. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_orphans.py +93 -0
  32. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_pipeline.py +23 -0
  33. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_resolver.py +378 -0
  34. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_sqlite_store.py +171 -0
  35. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_suggest_service.py +103 -0
  36. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/uv.lock +20 -10
  37. codegraph_brain-0.18.0/.release-please-manifest.json +0 -3
  38. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/.claude-plugin/marketplace.json +0 -0
  39. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/.gitattributes +0 -0
  40. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/.github/test-count-baseline +0 -0
  41. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/.github/workflows/autodoc.yml +0 -0
  42. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/.github/workflows/ci.yml +0 -0
  43. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/.github/workflows/guardian.yml +0 -0
  44. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/.github/workflows/pr-title.yml +0 -0
  45. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/.github/workflows/release-please.yml +0 -0
  46. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/.gitignore +0 -0
  47. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/.pre-commit-config.yaml +0 -0
  48. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/.python-version +0 -0
  49. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/CLAUDE.md +0 -0
  50. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/CONTRIBUTING.md +0 -0
  51. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/LICENSE +0 -0
  52. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/Makefile +0 -0
  53. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/PRIVACY.md +0 -0
  54. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/CURATION.md +0 -0
  55. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/calibration.jsonl +0 -0
  56. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/experiments/246-cross-vendor/README.md +0 -0
  57. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/experiments/246-cross-vendor/free-nemotron-quota-cutoff.jsonl +0 -0
  58. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/experiments/401-evidence/README.md +0 -0
  59. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/experiments/401-evidence/pr-399-control-rows.jsonl +0 -0
  60. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/experiments/401-evidence/pr-399-recording.json +0 -0
  61. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/experiments/401-evidence/pr-399-treatment-rows.jsonl +0 -0
  62. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/experiments/407-no-checker-appeal/README.md +0 -0
  63. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/experiments/407-no-checker-appeal/pr-399-control-directive-rows.jsonl +0 -0
  64. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/experiments/407-no-checker-appeal/pr-399-control-prohibition-rows.jsonl +0 -0
  65. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/pr-122.yaml +0 -0
  66. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/pr-140.yaml +0 -0
  67. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/pr-141.yaml +0 -0
  68. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/pr-142.yaml +0 -0
  69. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/pr-143.yaml +0 -0
  70. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/pr-144.yaml +0 -0
  71. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/pr-278.yaml +0 -0
  72. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/pr-313.yaml +0 -0
  73. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/guardian/results.jsonl +0 -0
  74. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian/README.md +0 -0
  75. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian/cal_dot_com.json +0 -0
  76. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian/discourse.json +0 -0
  77. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian/grafana.json +0 -0
  78. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian/keycloak.json +0 -0
  79. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian/sentry.json +0 -0
  80. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian-judged.jsonl +0 -0
  81. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian-p3-judged-run1.jsonl +0 -0
  82. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian-p3-judged-run1.jsonl.corrupted-backup +0 -0
  83. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian-p3-run1.jsonl +0 -0
  84. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian-p3-run2.jsonl +0 -0
  85. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian-p3-run3.jsonl +0 -0
  86. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian-plan.json +0 -0
  87. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian-repeat-judged.jsonl +0 -0
  88. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian-repeat-reviews.jsonl +0 -0
  89. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/benchmarks/martian-reviews.jsonl +0 -0
  90. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/data/.gitkeep +0 -0
  91. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/AUDIT.md +0 -0
  92. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/CASE_STUDY.md +0 -0
  93. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/GUARDIAN_LOCAL_BENCH.md +0 -0
  94. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/GUARDIAN_REMOTE_OLLAMA.md +0 -0
  95. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/architecture/ONTOLOGY.md +0 -0
  96. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/architecture/PATTERNS_AND_TRIADS.md +0 -0
  97. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/architecture/SELF_PORTRAIT.md +0 -0
  98. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/architecture/health_badge.json +0 -0
  99. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/assets/.gitignore +0 -0
  100. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/assets/cgis-app-avatar.png +0 -0
  101. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/assets/cgis-app-avatar.svg +0 -0
  102. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/assets/generate_avatar.py +0 -0
  103. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/examples/.gitkeep +0 -0
  104. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/how-to/AGENT_ONBOARDING.md +0 -0
  105. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/how-to/CLI_USAGE.md +0 -0
  106. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/lab-notes/2026-06-11-chunked-review-negative-result.md +0 -0
  107. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/ontology/.gitkeep +0 -0
  108. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/ontology/core.yaml +0 -0
  109. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/ontology/domains.yaml +0 -0
  110. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/ontology/patterns.yaml +0 -0
  111. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/ontology/tolerances.lock +0 -0
  112. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-09-domain-pattern-fingerprint-design.md +0 -0
  113. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-09-pattern-alphabet-motif-basis-design.md +0 -0
  114. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-10-guardian-sprint-design.md +0 -0
  115. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-11-fastapi-di-edges-design.md +0 -0
  116. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-11-guardian-chunked-review-design.md +0 -0
  117. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-11-guardian-chunker-design.md +0 -0
  118. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-11-mcp-drift-validate-fqn-design.md +0 -0
  119. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-11-resolver-split-design.md +0 -0
  120. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-11-symbol-import-edges-design.md +0 -0
  121. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-12-drift-empty-domains-design.md +0 -0
  122. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-12-gate-semantics-design.md +0 -0
  123. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-12-init-ontology-design.md +0 -0
  124. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-12-release-please-ci-design.md +0 -0
  125. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-06-13-tangle-anti-pattern-design.md +0 -0
  126. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-29-guardian-skeptic-scoring-design.md +0 -0
  127. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-30-cgis-fractal-design.md +0 -0
  128. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-30-cgis-fractal-plan.md +0 -0
  129. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-30-chunk-source-filter-design.md +0 -0
  130. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-30-chunk-source-filter-plan.md +0 -0
  131. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-30-genai-client-close-design.md +0 -0
  132. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-30-genai-client-close-plan.md +0 -0
  133. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-30-guardian-precision-bench-design.md +0 -0
  134. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-30-guardian-precision-bench-plan.md +0 -0
  135. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-30-guardian-timeout-retry-design.md +0 -0
  136. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-30-guardian-timeout-retry-plan.md +0 -0
  137. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-07-31-finder-bug-class-taxonomy.md +0 -0
  138. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-08-01-aura-autoevolution-poc.md +0 -0
  139. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-08-11-guardian-code-review-bench.md +0 -0
  140. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-08-14-review-fingerprint-design.md +0 -0
  141. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/2026-09-05-annotation-graph-design.md +0 -0
  142. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/BLUEPRINT.md +0 -0
  143. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/PRD.md +0 -0
  144. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/TDD.md +0 -0
  145. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-09-fingerprint-drift.md +0 -0
  146. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-10-guardian-context-skeptic-inline.md +0 -0
  147. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-10-guardian-structured-findings-bench.md +0 -0
  148. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-10-motif-basis-part-b.md +0 -0
  149. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-10-unified-pattern-alphabet.md +0 -0
  150. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-11-fastapi-di-edges.md +0 -0
  151. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-11-guardian-chunked-review.md +0 -0
  152. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-11-guardian-chunker.md +0 -0
  153. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-11-mcp-drift-validate-fqn.md +0 -0
  154. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-11-resolver-split.md +0 -0
  155. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-12-drift-empty-domains.md +0 -0
  156. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-12-gate-semantics.md +0 -0
  157. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-12-init-ontology.md +0 -0
  158. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-12-release-please-ci.md +0 -0
  159. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-12-symbol-import-edges.md +0 -0
  160. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-06-13-suggest-packages.md +0 -0
  161. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-07-29-guardian-skeptic-scoring.md +0 -0
  162. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-08-14-review-fingerprint.md +0 -0
  163. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-09-05-annotation-graph-pr1.md +0 -0
  164. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/docs/specs/plans/2026-09-05-annotation-graph-pr2.md +0 -0
  165. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/main.py +0 -0
  166. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/plugin/.claude-plugin/plugin.json +0 -0
  167. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/plugin/.mcp.json +0 -0
  168. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/plugin/README.md +0 -0
  169. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/plugin/skills/cgis/SKILL.md +0 -0
  170. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/plugin/skills/ingest/SKILL.md +0 -0
  171. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/release-please-config.json +0 -0
  172. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/backfill_calibration_fingerprint.py +0 -0
  173. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/backfill_review_fingerprint.py +0 -0
  174. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/check_pytest_raises.py +0 -0
  175. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/check_test_count.py +0 -0
  176. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/colab_bench.sh +0 -0
  177. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/gen_ideal_graph.py +0 -0
  178. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/generate_health.py +0 -0
  179. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/generate_mcp_ref.py +0 -0
  180. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/generate_schema_docs.py +0 -0
  181. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/guardian_bench.py +0 -0
  182. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/guardian_calibrate.py +0 -0
  183. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/guardian_martian.py +0 -0
  184. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/guardian_replay_skeptic.py +0 -0
  185. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/guardian_review.py +0 -0
  186. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/inject_readme_graph.py +0 -0
  187. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/ollama_visitor.sh +0 -0
  188. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/probe_closure_gap.py +0 -0
  189. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/probe_tier_ladder.py +0 -0
  190. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/recordings_from_corpus.py +0 -0
  191. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/scripts/skeptic_arms.py +0 -0
  192. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/__init__.py +0 -0
  193. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/__main__.py +0 -0
  194. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/api/.gitkeep +0 -0
  195. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/api/__init__.py +0 -0
  196. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/core/.gitkeep +0 -0
  197. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/extractors/.gitkeep +0 -0
  198. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/extractors/_python_annotations.py +0 -0
  199. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/extractors/_python_ast.py +0 -0
  200. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/extractors/_python_classes.py +0 -0
  201. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/extractors/_python_imports.py +0 -0
  202. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/extractors/_python_types.py +0 -0
  203. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/extractors/base.py +0 -0
  204. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/extractors/registry.py +0 -0
  205. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/extractors/typescript_extractor.py +0 -0
  206. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/__init__.py +0 -0
  207. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/axes.py +0 -0
  208. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/bench.py +0 -0
  209. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/calibrate.py +0 -0
  210. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/chunked.py +0 -0
  211. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/chunker.py +0 -0
  212. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/collector.py +0 -0
  213. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/core.py +0 -0
  214. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/diff_index.py +0 -0
  215. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/evidence.py +0 -0
  216. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/findings.py +0 -0
  217. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/github_poster.py +0 -0
  218. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/martian.py +0 -0
  219. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/metrics.py +0 -0
  220. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/prompts.py +0 -0
  221. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/providers/__init__.py +0 -0
  222. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/providers/base.py +0 -0
  223. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/providers/gemini.py +0 -0
  224. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/providers/mistral.py +0 -0
  225. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/providers/ollama.py +0 -0
  226. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/providers/openrouter.py +0 -0
  227. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/recording.py +0 -0
  228. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/render.py +0 -0
  229. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/review_fingerprint.py +0 -0
  230. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/runner.py +0 -0
  231. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/guardian/skeptic.py +0 -0
  232. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/py.typed +0 -0
  233. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/analysis/__init__.py +0 -0
  234. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/analysis/analyzer.py +0 -0
  235. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/analysis/anomaly.py +0 -0
  236. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/analysis/cohesion.py +0 -0
  237. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/analysis/health.py +0 -0
  238. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/context/__init__.py +0 -0
  239. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/context/audit.py +0 -0
  240. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/context/context_service.py +0 -0
  241. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/context/prompt.py +0 -0
  242. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/context/snippet.py +0 -0
  243. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/drift/__init__.py +0 -0
  244. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/drift/_scc.py +0 -0
  245. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/drift/drift.py +0 -0
  246. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/drift/drift_service.py +0 -0
  247. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/drift/fingerprint.py +0 -0
  248. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/drift/fractal.py +0 -0
  249. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/drift/ontology_init.py +0 -0
  250. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/drift/quotient.py +0 -0
  251. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/drift/triads.py +0 -0
  252. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/engine.py +0 -0
  253. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/fqn.py +0 -0
  254. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/render/__init__.py +0 -0
  255. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/render/graph_json.py +0 -0
  256. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/query/render/mermaid.py +0 -0
  257. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/resolver/.gitkeep +0 -0
  258. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/resolver/__init__.py +0 -0
  259. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/resolver/engine.py +0 -0
  260. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/resolver/symbols.py +0 -0
  261. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/resolver/uplift.py +0 -0
  262. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/src/cgis/storage/.gitkeep +0 -0
  263. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/integration/.gitkeep +0 -0
  264. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/.gitkeep +0 -0
  265. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/__init__.py +0 -0
  266. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/conftest.py +0 -0
  267. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/test_annotation_calibration.py +0 -0
  268. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/test_architecture.py +0 -0
  269. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/test_drift.py +0 -0
  270. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/test_fractal.py +0 -0
  271. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/test_init_ontology_roundtrip.py +0 -0
  272. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/test_receiver_resolution.py +0 -0
  273. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/test_self_parse.py +0 -0
  274. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/test_self_parse_ts.py +0 -0
  275. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/self_parsing/test_suggest.py +0 -0
  276. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/.gitkeep +0 -0
  277. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/conftest.py +0 -0
  278. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/guardian_stubs.py +0 -0
  279. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/review_path_inventory.txt +0 -0
  280. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test___main__.py +0 -0
  281. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_analyzer.py +0 -0
  282. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_annotation_edges.py +0 -0
  283. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_audit.py +0 -0
  284. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_backfill_calibration_fingerprint.py +0 -0
  285. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_backfill_review_fingerprint.py +0 -0
  286. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_check_pytest_raises.py +0 -0
  287. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_check_test_count.py +0 -0
  288. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_cohesion.py +0 -0
  289. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_context_service.py +0 -0
  290. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_di_acceptance.py +0 -0
  291. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_drift.py +0 -0
  292. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_drift_service.py +0 -0
  293. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_extractor_registry.py +0 -0
  294. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_fingerprint.py +0 -0
  295. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_fqn.py +0 -0
  296. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_fractal.py +0 -0
  297. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_gen_ideal_graph.py +0 -0
  298. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_generate_mcp_ref.py +0 -0
  299. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_graph_json.py +0 -0
  300. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_axes.py +0 -0
  301. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_bench.py +0 -0
  302. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_bench_script.py +0 -0
  303. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_calibrate.py +0 -0
  304. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_calibrate_script.py +0 -0
  305. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_chunked.py +0 -0
  306. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_chunker.py +0 -0
  307. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_collector.py +0 -0
  308. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_core.py +0 -0
  309. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_diff_index.py +0 -0
  310. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_evidence.py +0 -0
  311. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_findings.py +0 -0
  312. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_martian.py +0 -0
  313. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_martian_script.py +0 -0
  314. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_martian_union.py +0 -0
  315. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_metrics.py +0 -0
  316. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_mistral_sampling.py +0 -0
  317. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_ollama_sampling.py +0 -0
  318. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_ollama_truncation.py +0 -0
  319. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_openrouter.py +0 -0
  320. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_poster.py +0 -0
  321. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_providers.py +0 -0
  322. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_providers_name.py +0 -0
  323. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_recording.py +0 -0
  324. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_render.py +0 -0
  325. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_replay_skeptic.py +0 -0
  326. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_review_script.py +0 -0
  327. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_runner.py +0 -0
  328. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_salvage.py +0 -0
  329. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_guardian_skeptic.py +0 -0
  330. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_health_scorer.py +0 -0
  331. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_import_acceptance.py +0 -0
  332. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_mermaid.py +0 -0
  333. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_models.py +0 -0
  334. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_name_load_positions.py +0 -0
  335. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_ontology_compliance.py +0 -0
  336. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_ontology_init.py +0 -0
  337. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_paths.py +0 -0
  338. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_patterns_yaml.py +0 -0
  339. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_prompt.py +0 -0
  340. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_python_annotations.py +0 -0
  341. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_python_extractor.py +0 -0
  342. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_quotient.py +0 -0
  343. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_recordings_from_corpus.py +0 -0
  344. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_resolver_indices.py +0 -0
  345. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_resolver_symbols.py +0 -0
  346. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_review_fingerprint_closure.py +0 -0
  347. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_review_fingerprint_contract.py +0 -0
  348. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_review_fingerprint_digest.py +0 -0
  349. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_review_fingerprint_record.py +0 -0
  350. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_self_types.py +0 -0
  351. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_skeptic_arms.py +0 -0
  352. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_snippet.py +0 -0
  353. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_temperature_source.py +0 -0
  354. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_triads.py +0 -0
  355. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_typescript_extractor.py +0 -0
  356. {codegraph_brain-0.18.0 → codegraph_brain-0.19.0}/tests/unit/test_uplift.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.19.0"
3
+ }
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.19.0](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.18.0...codegraph-brain-v0.19.0) (2026-09-09)
4
+
5
+
6
+ ### Features
7
+
8
+ * **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))
9
+ * **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))
10
+ * **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))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **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))
16
+ * **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))
17
+ * **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))
18
+
19
+
20
+ ### Documentation
21
+
22
+ * 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))
23
+
3
24
  ## [0.18.0](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.17.0...codegraph-brain-v0.18.0) (2026-09-06)
4
25
 
5
26
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: codegraph-brain
3
- Version: 0.18.0
3
+ Version: 0.19.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:138)"]:::classNode
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:245)"]:::methodNode
206
- pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:185)"]:::methodNode
207
- pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:204)"]:::methodNode
208
- pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:155)"]:::methodNode
209
- pipeline_IngestionPipeline_run["run (pipeline.py:51)"]:::methodNode
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:30)"]:::classNode
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:138`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/core/models.py#L138) |
239
- | `run` | METHOD | [`pipeline.py:51`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L51) |
240
- | `_process_file` | METHOD | [`pipeline.py:155`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L155) |
241
- | `_is_noop_incremental` | METHOD | [`pipeline.py:185`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L185) |
242
- | `_persist_incremental` | METHOD | [`pipeline.py:204`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L204) |
243
- | `_get_extractor` | METHOD | [`pipeline.py:245`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L245) |
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:30`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/storage/sqlite_store.py#L30) |
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:138)"]:::classNode
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:245)"]:::methodNode
156
- pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:185)"]:::methodNode
157
- pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:204)"]:::methodNode
158
- pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:155)"]:::methodNode
159
- pipeline_IngestionPipeline_run["run (pipeline.py:51)"]:::methodNode
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:30)"]:::classNode
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:138`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/core/models.py#L138) |
189
- | `run` | METHOD | [`pipeline.py:51`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L51) |
190
- | `_process_file` | METHOD | [`pipeline.py:155`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L155) |
191
- | `_is_noop_incremental` | METHOD | [`pipeline.py:185`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L185) |
192
- | `_persist_incremental` | METHOD | [`pipeline.py:204`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L204) |
193
- | `_get_extractor` | METHOD | [`pipeline.py:245`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L245) |
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:30`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/storage/sqlite_store.py#L30) |
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);
@@ -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:138)"]:::classNode
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:245)"]:::methodNode
16
- pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:185)"]:::methodNode
17
- pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:204)"]:::methodNode
18
- pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:155)"]:::methodNode
19
- pipeline_IngestionPipeline_run["run (pipeline.py:51)"]:::methodNode
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)"]:::classNode
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
@@ -126,18 +126,30 @@ Classes nothing in production builds, extends or names — dead-code candidates
126
126
  ``prefix`` narrows to one package on a dot boundary. ``include_tests`` counts
127
127
  test code as a user, turning the report into "unreachable from anywhere".
128
128
 
129
- Returns JSON ``{orphans, considered, test_sources}``; each orphan carries
130
- ``fqn``/``file``/``line``. **A listing is a candidate for deletion, not a
131
- proof** — a class named only inside a decorator (#429) or arriving through a
132
- star import is invisible here, so the sweep errs towards reporting a live
133
- class rather than hiding a dead one. ``test_sources: 0`` in a repository that
134
- has tests means the graph predates the ``is_test`` column: re-ingest.
129
+ Machine-generated classes are **hidden by default**, and ``include_generated``
130
+ puts them back. The query is right about them — nothing constructs a
131
+ betterproto stub — but nobody hand-deletes one either, so they are noise
132
+ rather than a finding. Measured on owner-api at b7d02fe6, five of six
133
+ reported orphans were generated entities and the sixth a nested pydantic
134
+ ``Config``: the unfiltered report had no actionable row in it (#432).
135
+
136
+ Returns JSON ``{orphans, considered, test_sources, generated_excluded}``;
137
+ each orphan carries ``fqn``/``file``/``line``. **A listing is a candidate for
138
+ deletion, not a proof** — a class named only inside a decorator (#429) or
139
+ arriving through a star import is invisible here, so the sweep errs towards
140
+ reporting a live class rather than hiding a dead one. ``test_sources: 0`` in a
141
+ repository that has tests means the graph predates the ``is_test`` column:
142
+ re-ingest. ``generated_excluded`` counts every generated class left out of
143
+ the population under the same ``prefix``, referenced or not — so ``0`` on a
144
+ repository with generated code means the same for ``is_generated``, which has
145
+ no backfill: the marker is in the file header, not in the database.
135
146
 
136
147
  | Argument | Type | Required | Description |
137
148
  | :--- | :--- | :---: | :--- |
138
149
  | `db_path` | `string` | | |
139
150
  | `prefix` | `any` | | |
140
151
  | `include_tests` | `boolean` | | |
152
+ | `include_generated` | `boolean` | | |
141
153
 
142
154
  ---
143
155
 
@@ -267,11 +279,22 @@ Whole-graph architectural metrics — coupling bottlenecks + God classes (#16).
267
279
  (e.g. ``["tests"]`` removes both ``tests.*`` and ``domains.*.tests.*``) so
268
280
  test/vendor scaffolding stays out of the rankings.
269
281
 
282
+ ``scope`` is its complement: it keeps only nodes under one of the given
283
+ dot-prefixes, anchored and cut on a dot boundary, so
284
+ ``["domains.reservation"]`` is that subtree and not
285
+ ``domains.reservation_archive``. Use it for a per-domain review. The two
286
+ compose, and they differ where it matters for PageRank — ``exclude`` removes
287
+ nodes from the propagation graph, ``scope`` filters the rows and lets rank
288
+ propagate over the whole graph, so a scoped run reports how central the
289
+ subtree is *globally*. Coupling in-degree likewise keeps counting callers
290
+ from outside the scope, which is the ripple a domain review is after (#239).
291
+
270
292
  | Argument | Type | Required | Description |
271
293
  | :--- | :--- | :---: | :--- |
272
294
  | `db_path` | `string` | | |
273
295
  | `limit` | `integer` | | |
274
296
  | `exclude` | `any` | | |
297
+ | `scope` | `any` | | |
275
298
 
276
299
  ---
277
300