codegraph-brain 0.28.0__tar.gz → 0.29.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.29.0/.github/test-count-baseline +1 -0
- codegraph_brain-0.29.0/.release-please-manifest.json +3 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/CHANGELOG.md +36 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/PKG-INFO +1 -1
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/agent_ab/README.md +21 -2
- codegraph_brain-0.29.0/benchmarks/agent_ab/RESULTS.md +177 -0
- codegraph_brain-0.29.0/benchmarks/agent_ab/results.jsonl +65 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/architecture/HOW_IT_WORKS.md +33 -30
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/architecture/diagrams/pipeline_flow.mermaid +17 -15
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/how-to/AGENT_ONBOARDING.md +19 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/how-to/MCP_REFERENCE.md +28 -10
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/ontology/core.yaml +1 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/pyproject.toml +1 -1
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/agent_ab.py +143 -23
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/generate_mcp_ref.py +10 -1
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/server.json +2 -2
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/api/mcp_server.py +185 -27
- codegraph_brain-0.29.0/src/cgis/api/server_instructions.py +47 -0
- codegraph_brain-0.29.0/src/cgis/api/tool_allowlist.py +95 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/bench/guard.py +27 -5
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/bench/transcript.py +9 -1
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/cli.py +4 -3
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/core/js_globals.py +7 -1
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/core/models.py +4 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/_python_functions.py +38 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/_typescript_bindings.py +55 -2
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/python_extractor.py +1 -1
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/typescript_extractor.py +12 -3
- codegraph_brain-0.29.0/src/cgis/import_names.py +162 -0
- codegraph_brain-0.29.0/src/cgis/npm_dependencies.py +73 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/pipeline.py +22 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/analysis/suggest_service.py +2 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/context/audit.py +2 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/context/orphans.py +2 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/engine.py +144 -18
- codegraph_brain-0.29.0/src/cgis/query/fqn.py +183 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/render/metrics.py +3 -2
- codegraph_brain-0.29.0/src/cgis/query/render/text.py +127 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/resolver/engine.py +7 -3
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/resolver/indices.py +83 -6
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/resolver/js_builtins.py +53 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/resolver/symbols.py +146 -9
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/storage/sqlite_store.py +69 -1
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/tsconfig_paths.py +28 -11
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/workspaces.py +94 -1
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/test_annotation_calibration.py +8 -2
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/agent_ab_stubs.py +4 -1
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/conftest.py +6 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_agent_ab_guard.py +22 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_agent_ab_script.py +155 -2
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_agent_ab_transcript.py +12 -0
- codegraph_brain-0.29.0/tests/unit/test_annotated_alias_receiver.py +224 -0
- codegraph_brain-0.29.0/tests/unit/test_configs_above_root.py +261 -0
- codegraph_brain-0.29.0/tests/unit/test_dispatch_edges.py +223 -0
- codegraph_brain-0.29.0/tests/unit/test_find_symbol_path_prefix.py +141 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_fqn.py +66 -0
- codegraph_brain-0.29.0/tests/unit/test_impact_agent_sized.py +195 -0
- codegraph_brain-0.29.0/tests/unit/test_mcp_server_instructions.py +177 -0
- codegraph_brain-0.29.0/tests/unit/test_npm_dependencies.py +321 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_resolver_js_builtins.py +15 -5
- codegraph_brain-0.29.0/tests/unit/test_text_format.py +256 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/uv.lock +1 -1
- codegraph_brain-0.28.0/.github/test-count-baseline +0 -1
- codegraph_brain-0.28.0/.release-please-manifest.json +0 -3
- codegraph_brain-0.28.0/src/cgis/import_names.py +0 -84
- codegraph_brain-0.28.0/src/cgis/query/fqn.py +0 -82
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.claude-plugin/marketplace.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.gitattributes +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.github/workflows/autodoc.yml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.github/workflows/ci.yml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.github/workflows/guardian.yml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.github/workflows/mcp-registry.yml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.github/workflows/pr-title.yml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.github/workflows/release-please.yml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.github/workflows/ui.yml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.gitignore +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.pre-commit-config.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/.python-version +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/CLAUDE.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/CONTRIBUTING.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/LICENSE +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/Makefile +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/PRIVACY.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/README.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/agent_ab/.gitignore +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/agent_ab/tasks/cgis-control-sqlite-pragmas.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/agent_ab/tasks/cgis-flow-ingest-to-sqlite.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/agent_ab/tasks/cgis-impact-drift-same-name.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/agent_ab/tasks/cgis-impact-language-for.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/agent_ab/tasks/cgis-impact-transitive-tsconfig.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/agent_ab/tasks/cgis-orientation-call-resolution.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/agent_ab/tasks/owner-impact-credit-wallet.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/agent_ab/tasks/owner-impact-occupied-window-same-name.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/CURATION.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/calibration.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/experiments/246-cross-vendor/README.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/experiments/246-cross-vendor/free-nemotron-quota-cutoff.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/experiments/401-evidence/README.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/experiments/401-evidence/pr-399-control-rows.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/experiments/401-evidence/pr-399-recording.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/experiments/401-evidence/pr-399-treatment-rows.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/experiments/407-no-checker-appeal/README.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/experiments/407-no-checker-appeal/pr-399-control-directive-rows.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/experiments/407-no-checker-appeal/pr-399-control-prohibition-rows.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/pr-122.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/pr-140.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/pr-141.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/pr-142.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/pr-143.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/pr-144.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/pr-278.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/pr-313.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/guardian/results.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian/README.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian/cal_dot_com.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian/discourse.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian/grafana.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian/keycloak.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian/sentry.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian-judged.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian-p3-judged-run1.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian-p3-judged-run1.jsonl.corrupted-backup +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian-p3-run1.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian-p3-run2.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian-p3-run3.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian-plan.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian-repeat-judged.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian-repeat-reviews.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/benchmarks/martian-reviews.jsonl +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/data/.gitkeep +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/AUDIT.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/CASE_STUDY.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/GUARDIAN_LOCAL_BENCH.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/GUARDIAN_REMOTE_OLLAMA.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/architecture/ONTOLOGY.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/architecture/PATTERNS_AND_TRIADS.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/architecture/SELF_PORTRAIT.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/architecture/health_badge.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/assets/.gitignore +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/assets/cgis-app-avatar.png +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/assets/cgis-app-avatar.svg +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/assets/generate_avatar.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/examples/.gitkeep +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/how-to/CLI_USAGE.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/lab-notes/2026-06-11-chunked-review-negative-result.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/ontology/.gitkeep +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/ontology/domains.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/ontology/patterns.yaml +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/ontology/tolerances.lock +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/plans/2026-09-09-graph-freshness.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-09-domain-pattern-fingerprint-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-09-pattern-alphabet-motif-basis-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-10-guardian-sprint-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-11-fastapi-di-edges-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-11-guardian-chunked-review-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-11-guardian-chunker-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-11-mcp-drift-validate-fqn-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-11-resolver-split-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-11-symbol-import-edges-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-12-drift-empty-domains-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-12-gate-semantics-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-12-init-ontology-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-12-release-please-ci-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-13-suggest-packages-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-06-13-tangle-anti-pattern-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-29-guardian-skeptic-scoring-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-30-cgis-fractal-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-30-cgis-fractal-plan.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-30-chunk-source-filter-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-30-chunk-source-filter-plan.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-30-genai-client-close-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-30-genai-client-close-plan.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-30-guardian-precision-bench-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-30-guardian-precision-bench-plan.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-30-guardian-timeout-retry-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-30-guardian-timeout-retry-plan.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-07-31-finder-bug-class-taxonomy.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-08-01-aura-autoevolution-poc.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-08-11-guardian-code-review-bench.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-08-14-review-fingerprint-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-09-05-annotation-graph-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/2026-09-09-graph-freshness-design.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/BLUEPRINT.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/PRD.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/TDD.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-09-fingerprint-drift.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-10-guardian-context-skeptic-inline.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-10-guardian-structured-findings-bench.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-10-motif-basis-part-b.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-10-unified-pattern-alphabet.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-11-fastapi-di-edges.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-11-guardian-chunked-review.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-11-guardian-chunker.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-11-mcp-drift-validate-fqn.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-11-resolver-split.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-12-drift-empty-domains.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-12-gate-semantics.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-12-init-ontology.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-12-release-please-ci.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-12-symbol-import-edges.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-06-13-suggest-packages.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-07-29-guardian-skeptic-scoring.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-08-14-review-fingerprint.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-09-05-annotation-graph-pr1.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/docs/specs/plans/2026-09-05-annotation-graph-pr2.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/glama.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/main.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/plugin/.claude-plugin/plugin.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/plugin/.mcp.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/plugin/README.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/plugin/skills/cgis/SKILL.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/plugin/skills/ingest/SKILL.md +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/release-please-config.json +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/backfill_calibration_fingerprint.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/backfill_review_fingerprint.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/check_pytest_raises.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/check_test_count.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/colab_bench.sh +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/gen_ideal_graph.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/generate_health.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/generate_schema_docs.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/guardian_bench.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/guardian_calibrate.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/guardian_martian.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/guardian_replay_skeptic.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/guardian_review.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/inject_architecture_graph.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/mcp_registry_gate.sh +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/ollama_visitor.sh +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/probe_closure_gap.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/probe_tier_ladder.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/recordings_from_corpus.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/scripts/skeptic_arms.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/__init__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/__main__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/api/.gitkeep +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/api/__init__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/api/auto_refresh.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/bench/__init__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/bench/agent_task.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/core/.gitkeep +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/core/coverage.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/core/freshness.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/core/generated.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/core/paths.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/.gitkeep +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/_python_annotations.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/_python_ast.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/_python_classes.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/_python_imports.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/_python_types.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/base.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/extractors/registry.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/__init__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/axes.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/bench.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/calibrate.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/chunked.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/chunker.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/collector.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/core.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/diff_index.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/evidence.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/findings.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/github_poster.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/martian.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/metrics.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/prompts.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/providers/__init__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/providers/base.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/providers/gemini.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/providers/mistral.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/providers/ollama.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/providers/openrouter.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/recording.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/render.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/review_fingerprint.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/runner.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/guardian/skeptic.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/py.typed +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/python_dependencies.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/analysis/__init__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/analysis/analyzer.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/analysis/anomaly.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/analysis/cohesion.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/analysis/health.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/analysis/overview.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/context/__init__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/context/context_service.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/context/prompt.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/context/snippet.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/drift/__init__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/drift/_scc.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/drift/catalog.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/drift/drift.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/drift/drift_service.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/drift/fingerprint.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/drift/fractal.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/drift/ontology_init.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/drift/quotient.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/drift/scoring.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/drift/triads.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/render/__init__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/render/graph_json.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/query/render/mermaid.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/resolver/.gitkeep +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/resolver/__init__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/resolver/uplift.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/src/cgis/storage/.gitkeep +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/integration/.gitkeep +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/.gitkeep +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/__init__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/conftest.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/test_architecture.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/test_drift.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/test_fractal.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/test_init_ontology_roundtrip.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/test_overview.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/test_receiver_resolution.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/test_self_parse.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/test_self_parse_ts.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/self_parsing/test_suggest.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/.gitkeep +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/guardian_stubs.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/review_path_inventory.txt +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test___main__.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_agent_ab_task.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_analyzer.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_annotation_edges.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_audit.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_auto_refresh.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_backfill_calibration_fingerprint.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_backfill_review_fingerprint.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_check_pytest_raises.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_check_test_count.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_class_cohesion.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_cli.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_cohesion.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_context_service.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_di_acceptance.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_drift.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_drift_service.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_extractor_registry.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_features_source.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_fingerprint.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_fractal.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_freshness.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_gen_ideal_graph.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_generate_mcp_ref.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_generated.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_graph_json.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_axes.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_bench.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_bench_script.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_calibrate.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_calibrate_script.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_chunked.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_chunker.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_collector.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_core.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_diff_index.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_evidence.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_findings.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_martian.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_martian_script.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_martian_union.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_metrics.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_mistral_sampling.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_ollama_sampling.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_ollama_truncation.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_openrouter.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_poster.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_providers.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_providers_name.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_recording.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_render.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_replay_skeptic.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_review_script.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_runner.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_salvage.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_guardian_skeptic.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_health_scorer.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_import_acceptance.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_inject_architecture_graph.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_mcp_server.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_mcp_tool_schemas.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_mermaid.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_metrics.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_metrics_file_coupling.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_metrics_resolution.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_models.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_name_load_positions.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_ontology_compliance.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_ontology_init.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_orphans.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_overview.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_overview_tools.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_package_view.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_paths.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_patterns_yaml.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_pipeline.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_pipeline_incremental_symbols.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_pipeline_ts_workspaces.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_prompt.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_python_annotations.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_python_dependencies.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_python_extractor.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_query_coverage.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_quotient.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_recordings_from_corpus.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_resolver.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_resolver_import_layout.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_resolver_indices.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_resolver_language_scope.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_resolver_phantom_internal.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_resolver_symbols.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_resolver_ts_declarations.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_resolver_ts_workspaces.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_review_fingerprint_closure.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_review_fingerprint_contract.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_review_fingerprint_digest.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_review_fingerprint_record.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_self_types.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_skeptic_arms.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_snippet.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_sqlite_store.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_suggest_service.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_temperature_source.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_triads.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_tsconfig_paths.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_type_checking_imports.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_typescript_extractor.py +0 -0
- {codegraph_brain-0.28.0 → codegraph_brain-0.29.0}/tests/unit/test_uplift.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3095
|
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.29.0](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.28.0...codegraph-brain-v0.29.0) (2026-10-14)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **bench:** cgis-narrow arm — the cgis arm with three tools listed ([#586](https://github.com/zaebee/codegraph-brain/issues/586)) ([5a5c836](https://github.com/zaebee/codegraph-brain/commit/5a5c836e2fda1f41e6420e0d1160a56a0859ef94))
|
|
9
|
+
* **mcp:** agent-sized cgis_analyze_impact — no test callers, files as dead ends, node budget ([#563](https://github.com/zaebee/codegraph-brain/issues/563)) ([d173d57](https://github.com/zaebee/codegraph-brain/commit/d173d5791e30983b58e7cbe7fb91cac8c7059154))
|
|
10
|
+
* **mcp:** output_format="text" for traversals; trace_flow gets impact's node budget and test screen ([#581](https://github.com/zaebee/codegraph-brain/issues/581)) ([a1dd2b8](https://github.com/zaebee/codegraph-brain/commit/a1dd2b871d34c22e29f25103b9ee349a004ea28a))
|
|
11
|
+
* **mcp:** server instructions in initialize, CGIS_MCP_TOOLS allowlist ([#565](https://github.com/zaebee/codegraph-brain/issues/565)) ([3c37874](https://github.com/zaebee/codegraph-brain/commit/3c37874f78e4a3d439be153641afe1fc19a32f03))
|
|
12
|
+
* **query:** resolve an FQN given with the directories above the graph ([#571](https://github.com/zaebee/codegraph-brain/issues/571)) ([ea43ba9](https://github.com/zaebee/codegraph-brain/commit/ea43ba9f5451e0ee55575570eb8a5341eb906115))
|
|
13
|
+
* **resolver:** DISPATCHES edges from a base-class method to each override ([#575](https://github.com/zaebee/codegraph-brain/issues/575)) ([827143e](https://github.com/zaebee/codegraph-brain/commit/827143ee2a13866602daaea84f1142106c69d49d))
|
|
14
|
+
* **resolver:** type a parameter annotated with an Annotated[T, Depends(...)] alias as T ([#572](https://github.com/zaebee/codegraph-brain/issues/572)) ([fc33b20](https://github.com/zaebee/codegraph-brain/commit/fc33b202b607aecda9d3b317edc1d16f2ba350c6))
|
|
15
|
+
* **workspaces:** read pnpm-workspace.yaml above the ingest root ([#591](https://github.com/zaebee/codegraph-brain/issues/591)) ([b0d67f8](https://github.com/zaebee/codegraph-brain/commit/b0d67f8124da3c414b852f045f6127ab2eec5c3e))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* **bench:** agent A/B runner survives a failed session and continues run numbers ([#578](https://github.com/zaebee/codegraph-brain/issues/578)) ([bc303eb](https://github.com/zaebee/codegraph-brain/commit/bc303eb82e3ef25c01093452c2d68e8c3a53d1d9))
|
|
21
|
+
* **bench:** guard — no false refusal on a grep for an import, no bypass through env/newline/prefix ([#590](https://github.com/zaebee/codegraph-brain/issues/590)) ([73ee4e2](https://github.com/zaebee/codegraph-brain/commit/73ee4e260cf3a65a31630f4cc6a46b618872ce7f))
|
|
22
|
+
* **ingest:** read the tsconfig.json and package.json above a sub-directory ingest root ([#560](https://github.com/zaebee/codegraph-brain/issues/560)) ([9722f8c](https://github.com/zaebee/codegraph-brain/commit/9722f8c18da97cba20400cbd109fd8fea684a5e3))
|
|
23
|
+
* **query:** one effective_prefix rule for every FQN-prefix entry point ([#585](https://github.com/zaebee/codegraph-brain/issues/585)) ([b5f10b3](https://github.com/zaebee/codegraph-brain/commit/b5f10b360ab021ba2dcd8dd9a211b222c989e183))
|
|
24
|
+
* **resolver:** TypeScript imports of declared npm packages are EXTERNAL ([#557](https://github.com/zaebee/codegraph-brain/issues/557)) ([73d380a](https://github.com/zaebee/codegraph-brain/commit/73d380acb915671e9597fc01eaf509ba29e78a8b))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Documentation
|
|
28
|
+
|
|
29
|
+
* auto-sync architecture graph and MCP reference ([#558](https://github.com/zaebee/codegraph-brain/issues/558)) ([ee275a4](https://github.com/zaebee/codegraph-brain/commit/ee275a412b9af8b2d900e16b84335a343f68a7fa))
|
|
30
|
+
* auto-sync architecture graph and MCP reference ([#564](https://github.com/zaebee/codegraph-brain/issues/564)) ([50637b3](https://github.com/zaebee/codegraph-brain/commit/50637b3b8d01cb4be01cbae3710f21a1cb5f1b02))
|
|
31
|
+
* auto-sync architecture graph and MCP reference ([#573](https://github.com/zaebee/codegraph-brain/issues/573)) ([225499d](https://github.com/zaebee/codegraph-brain/commit/225499dd1a17163160e270b9dbeb73a7ad376b7d))
|
|
32
|
+
* **bench:** agent A/B after [#568](https://github.com/zaebee/codegraph-brain/issues/568) and [#550](https://github.com/zaebee/codegraph-brain/issues/550) — cgis-forced at $0.184 against control $0.298 ([#574](https://github.com/zaebee/codegraph-brain/issues/574)) ([8e0ef37](https://github.com/zaebee/codegraph-brain/commit/8e0ef37b76fffc01e32338c67325535f8cb501f4))
|
|
33
|
+
* **bench:** agent A/B on a task no fix was tuned on (occupied_window) ([#576](https://github.com/zaebee/codegraph-brain/issues/576)) ([a6eb679](https://github.com/zaebee/codegraph-brain/commit/a6eb679b51ae7fd3f52c73eb2da005857f2e6126))
|
|
34
|
+
* **bench:** agent A/B on three deep-chain cgis tasks — impact pays, trace_flow's 32k answer does not ([#579](https://github.com/zaebee/codegraph-brain/issues/579)) ([eb7e951](https://github.com/zaebee/codegraph-brain/commit/eb7e9516a8e952fdbd2266c43accfee1a16109e7))
|
|
35
|
+
* **bench:** agent A/B results for owner-impact-credit-wallet after [#563](https://github.com/zaebee/codegraph-brain/issues/563) and [#565](https://github.com/zaebee/codegraph-brain/issues/565) ([#570](https://github.com/zaebee/codegraph-brain/issues/570)) ([ae84feb](https://github.com/zaebee/codegraph-brain/commit/ae84febcc2621a92d00233e81e994171b6b14cd8))
|
|
36
|
+
* **bench:** flow A/B after [#581](https://github.com/zaebee/codegraph-brain/issues/581) — text cut the answer 4x and the cost by a third; precision unchanged ([#583](https://github.com/zaebee/codegraph-brain/issues/583)) ([e36c850](https://github.com/zaebee/codegraph-brain/commit/e36c85099a85300f46a9b6fa28d375fa68f67227))
|
|
37
|
+
* **bench:** unprompted agents do not call cgis — a short menu changes nothing, one instruction line 2 of 6 ([#587](https://github.com/zaebee/codegraph-brain/issues/587)) ([6534f74](https://github.com/zaebee/codegraph-brain/commit/6534f74f23fcd3d1193bda2201bbf598959cac8e))
|
|
38
|
+
|
|
3
39
|
## [0.28.0](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.27.0...codegraph-brain-v0.28.0) (2026-10-02)
|
|
4
40
|
|
|
5
41
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: codegraph-brain
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.29.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
|
|
@@ -40,9 +40,17 @@ resolver gets wrong. Each task's `notes` say how it was checked.
|
|
|
40
40
|
|---|---|---|---|---|
|
|
41
41
|
| `control` | none (`--strict-mcp-config`, empty config) | no | all deleted | no |
|
|
42
42
|
| `cgis` | this checkout's `cgis-mcp` | yes (the plugin minus its `.mcp.json`) | `graph.db` built before the clock starts | no |
|
|
43
|
+
| `cgis-narrow` | as `cgis`, listing only `analyze_impact`, `find_symbol`, `trace_flow` (`CGIS_MCP_TOOLS`) | as `cgis` | as `cgis` | no |
|
|
43
44
|
| `cgis-instructed` | as `cgis` | as `cgis` | as `cgis` | one line: query cgis first |
|
|
44
45
|
| `cgis-forced` | as `cgis` | as `cgis` | as `cgis` | as `cgis-instructed`, and the guard refuses Read/Grep/Glob/Bash until one cgis call |
|
|
45
46
|
|
|
47
|
+
`cgis-narrow` asks whether a short tool menu gets an unprompted agent to call the
|
|
48
|
+
graph (#542). The server instructions and the plugin skill still name all fifteen
|
|
49
|
+
tools, so it measures a short menu with a longer guide beside it. Each results line
|
|
50
|
+
records `cgis_tools`, the number of `mcp__cgis__*` tools the session was offered,
|
|
51
|
+
so an `env` the client ignored would show as 15. With no `--arm` a run now covers
|
|
52
|
+
five arms.
|
|
53
|
+
|
|
46
54
|
`cgis-instructed` exists because the first pilot's `cgis` arm made no cgis call in
|
|
47
55
|
12 of 12 sessions: with the server connected and the skill loaded, Sonnet still
|
|
48
56
|
went straight to Grep. It stands in for #542's MCP server instructions. It barely moved the agent (2 cgis
|
|
@@ -75,8 +83,19 @@ uv run python scripts/agent_ab.py report
|
|
|
75
83
|
|
|
76
84
|
`--model` defaults to `claude-sonnet-5-5`; `--max-budget-usd` (default 2.00)
|
|
77
85
|
caps each session. Every non-dry run is a paid session, so this never runs in
|
|
78
|
-
CI. Transcripts are written to `transcripts
|
|
79
|
-
|
|
86
|
+
CI. Transcripts are written to `transcripts/<task>/<arm>-<sha7>-<run>.jsonl`, with
|
|
87
|
+
the first 7 characters of the cgis commit (git-ignored); `results.jsonl` gets one
|
|
88
|
+
line per (task, arm, cgis commit, run) and is meant to be committed with the
|
|
89
|
+
write-up.
|
|
90
|
+
|
|
91
|
+
Run numbers continue from the highest one already in `--results` for the same
|
|
92
|
+
task, arm and cgis commit, so a second invocation that finishes an interrupted
|
|
93
|
+
batch adds runs instead of reusing them. A session that fails is written as a
|
|
94
|
+
line with `failed` set to the reason, and the batch goes on: an ingest or
|
|
95
|
+
worktree that raises gives a line with no metrics, and a `claude -p` that exits
|
|
96
|
+
non-zero keeps its scored metrics and cost but is marked failed too. `run` exits
|
|
97
|
+
1 at the end if any session failed; `report` counts failed sessions in their own
|
|
98
|
+
column and leaves them out of the medians. A dry run writes nothing.
|
|
80
99
|
|
|
81
100
|
## Tasks
|
|
82
101
|
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Agent A/B results
|
|
2
|
+
|
|
3
|
+
One section per run, newest first. The raw lines are in `results.jsonl`; the
|
|
4
|
+
transcripts they point at are git-ignored and stay on the machine that ran them.
|
|
5
|
+
|
|
6
|
+
## 2026-10-14: does one instruction line get the agent to call cgis?
|
|
7
|
+
|
|
8
|
+
cgis at 5a5c836, `cgis-instructed` — the `cgis` arm plus one appended system-prompt
|
|
9
|
+
line, "query cgis first, then read source only to confirm", the nearest stand-in for
|
|
10
|
+
a line in a project's CLAUDE.md. Same two impact tasks, 3 runs each, about $0.8.
|
|
11
|
+
|
|
12
|
+
| task | cgis calls per run | cost per run |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| `cgis-impact-drift-same-name` | 0, 0, **1** | 0.184, 0.148, **0.075** |
|
|
15
|
+
| `cgis-impact-transitive-tsconfig` | **1**, 0, 0 | **0.099**, 0.154, 0.153 |
|
|
16
|
+
|
|
17
|
+
- **The line moves the agent a little: 2 of 6 sessions called the graph**, against 0
|
|
18
|
+
of 18 without it. Both made one call, and both were the cheapest runs of the
|
|
19
|
+
six, at the level of `cgis-forced` (0.085 / 0.091). The other four ignored the
|
|
20
|
+
line and cost more than plain `cgis` (median 0.150 against 0.126–0.138).
|
|
21
|
+
- So an instruction is a coin toss weighted against the graph; the hook that refuses
|
|
22
|
+
Read/Grep/Bash until one cgis call (`cgis-forced`) is what delivers the saving
|
|
23
|
+
reliably. A project wanting the gain needs that hook, not a sentence.
|
|
24
|
+
- One run is marked `contaminated` with no cgis CLI call in it: on a task in this
|
|
25
|
+
repository every path contains `cgis/`, and the guard's predicate took the agent's
|
|
26
|
+
own `grep`/`sed` over `src/cgis/...` for one. A harness false positive, kept out of
|
|
27
|
+
the medians by the report as usual.
|
|
28
|
+
|
|
29
|
+
## 2026-10-14: does a short tool menu get an unprompted agent to call cgis? (#542 item 3)
|
|
30
|
+
|
|
31
|
+
cgis at dbf3de9 (the `cgis-narrow` arm of #586), Sonnet 5.5, 3 runs per arm, 0 failed,
|
|
32
|
+
0 contaminated, about $1.6. One probe session confirmed the narrowing reached the
|
|
33
|
+
client: the `init` event listed exactly `mcp__cgis__cgis_analyze_impact`,
|
|
34
|
+
`mcp__cgis__cgis_find_symbol`, `mcp__cgis__cgis_trace_flow`.
|
|
35
|
+
|
|
36
|
+
| task | arm | cgis calls | recall | precision | median $ |
|
|
37
|
+
|---|---|---|---|---|---|
|
|
38
|
+
| `cgis-impact-drift-same-name` | cgis (15 tools) | 0, 0, 0 | 1.00 | 1.00 | 0.126 |
|
|
39
|
+
| | cgis-narrow (3 tools) | 0, 0, 0 | 1.00 | 1.00 | 0.125 |
|
|
40
|
+
| `cgis-impact-transitive-tsconfig` | cgis | 0, 0, 0 | 1.00 | 1.00 | 0.138 |
|
|
41
|
+
| | cgis-narrow | 0, 0, 0 | 1.00 | 1.00 | 0.154 |
|
|
42
|
+
|
|
43
|
+
- **Refuted.** Three tools instead of fifteen changed nothing: no unprompted
|
|
44
|
+
session called the graph, here or in any of the six `cgis` sessions before it —
|
|
45
|
+
0 of 18 today, across four tasks. The server instructions (#542 item 1) did not
|
|
46
|
+
move it either. Item 3's smaller default set has no evidence behind it.
|
|
47
|
+
- These are the two tasks where `cgis-forced` was about 30% cheaper than control
|
|
48
|
+
(#579), so the graph would have paid; the agent never looked.
|
|
49
|
+
- A likely reason sits in the client: Claude Code defers MCP tools, listing names
|
|
50
|
+
only, so a first call needs a ToolSearch to load the schema — every forced
|
|
51
|
+
session made one. An agent holding Grep and Bash, with a task grep finishes in
|
|
52
|
+
7–13 calls, does not take that step unasked.
|
|
53
|
+
- Confound, as the README notes: the instructions and the plugin skill still name
|
|
54
|
+
all fifteen tools beside the three offered.
|
|
55
|
+
|
|
56
|
+
## 2026-10-14: `cgis-flow-ingest-to-sqlite` after #581 (text format, trace budget)
|
|
57
|
+
|
|
58
|
+
cgis at a1dd2b8, Sonnet 5.5, 3 runs per arm, 0 failed, 0 contaminated, about $0.6.
|
|
59
|
+
|
|
60
|
+
| arm | recall | precision | median $ | trace answer |
|
|
61
|
+
|---|---|---|---|---|
|
|
62
|
+
| control | 1.00 | 0.94 | **0.101** | — |
|
|
63
|
+
| cgis-forced, before (#579) | 1.00 | 0.52 | 0.167 | 32,637 chars of json |
|
|
64
|
+
| cgis-forced, now | 1.00 | 0.58 | 0.112 | 6.3–8.9k chars of text |
|
|
65
|
+
|
|
66
|
+
- **Size: fixed.** All three sessions asked for `output_format="text"` on their
|
|
67
|
+
own (the server instructions now say to), and the answer shrank about 4×.
|
|
68
|
+
Cost fell by a third, to 11% above control.
|
|
69
|
+
- **Precision: not fixed.** Given every node the root reaches, the agent still
|
|
70
|
+
lists most of them (17–21 outside the key: `_compute_hash`,
|
|
71
|
+
`_is_noop_incremental`, `ResolverEngine` helpers). Control reads the code and
|
|
72
|
+
names the spine. The format no longer costs the agent; deciding which
|
|
73
|
+
branches are the main path is the part the graph does not do.
|
|
74
|
+
- Two sessions first called `cgis_find_symbol(query="ingest", fqn_prefix="src.cgis")`
|
|
75
|
+
and got nothing: #568 taught `resolve_fqn` to drop a directory above the
|
|
76
|
+
graph, but `find_symbol`'s `fqn_prefix` filter was not given the same rule.
|
|
77
|
+
|
|
78
|
+
## 2026-10-14: three cgis tasks with a deep chain
|
|
79
|
+
|
|
80
|
+
cgis at bc303eb, Sonnet 5.5, 3 runs per arm, 0 failed, 0 contaminated, about $2.3.
|
|
81
|
+
None of these tasks was used to find the recent fixes.
|
|
82
|
+
|
|
83
|
+
| task | arm | recall | precision | median $ | median tool calls | cgis calls |
|
|
84
|
+
|---|---|---|---|---|---|---|
|
|
85
|
+
| `cgis-impact-drift-same-name` | control | 1.00 | 1.00 | 0.124 | 9 | — |
|
|
86
|
+
| | cgis-forced | 1.00 | 1.00 | **0.085** | 3 | 1, 1, 1 |
|
|
87
|
+
| `cgis-impact-transitive-tsconfig` | control | 1.00 | 1.00 | 0.126 | 7 | — |
|
|
88
|
+
| | cgis-forced | 1.00 | 1.00 | **0.091** | 4 | 1, 2, 1 |
|
|
89
|
+
| `cgis-flow-ingest-to-sqlite` | control | 1.00 | 0.86 | **0.112** | 5 | — |
|
|
90
|
+
| | cgis-forced | 1.00 | 0.52 | 0.167 | 4 | 2, 2, 2 |
|
|
91
|
+
|
|
92
|
+
- **Impact across several hops pays:** about 30% cheaper on both impact tasks,
|
|
93
|
+
with one cgis call doing what took control 7–9 greps and reads. Together with
|
|
94
|
+
`credit_wallet`, that makes three impact tasks out of three where the graph
|
|
95
|
+
wins once the question needs more than one hop.
|
|
96
|
+
- **Flow does not, and the cause is the answer's size.** Every forced session
|
|
97
|
+
called `cgis_trace_flow(cgis.cli.ingest, depth=3, json)` and got **32,637
|
|
98
|
+
characters**, the bloat #551 fixed for impact only: trace has no node budget
|
|
99
|
+
and no test filter. Given everything downstream, the agent cannot tell the
|
|
100
|
+
main path from side branches and names them all (precision 0.52, 20 extra
|
|
101
|
+
symbols such as every `ResolverEngine._resolved_*_edge`).
|
|
102
|
+
- `occupied_window` (above) and these together say where cgis earns its place:
|
|
103
|
+
multi-hop impact. A one-hop caller list and a "main path" flow question are
|
|
104
|
+
not where it helps today.
|
|
105
|
+
|
|
106
|
+
## 2026-10-14: `owner-impact-occupied-window-same-name`, a task no fix was tuned on
|
|
107
|
+
|
|
108
|
+
cgis at 827143e (after #551, #568, #550, #545), Sonnet 5.5, 0 contaminated. The
|
|
109
|
+
three fixes before this were all found in `credit_wallet` transcripts and measured
|
|
110
|
+
there; this task checks whether the gain carries to a question they never saw.
|
|
111
|
+
|
|
112
|
+
| arm | runs | recall | precision | median $ | median tool calls | cgis calls per run |
|
|
113
|
+
|---|---|---|---|---|---|---|
|
|
114
|
+
| control | 3 | 1.00 | 1.00 | **0.130** | 2 | — |
|
|
115
|
+
| cgis | 3 | 1.00 | 1.00 | 0.145 | 4 | 0, 0, 0 |
|
|
116
|
+
| cgis-forced | 2 | 1.00 | 1.00 | 0.135 | 3.5 | 2, 1 |
|
|
117
|
+
|
|
118
|
+
- **It does not carry.** On "list the direct callers", with a same-named
|
|
119
|
+
function in another module as the trap, control answered with one grep and
|
|
120
|
+
one look at the imports, and was the cheapest arm. The graph names the four
|
|
121
|
+
callers exactly (`impact depth=1`, 2.5k characters), but there is nothing
|
|
122
|
+
for it to save on a one-hop question that grep plus the imports already
|
|
123
|
+
answer.
|
|
124
|
+
- The `credit_wallet` gain came from a deep transitive chain through DI. That
|
|
125
|
+
is where the graph pays, so the question for #542's default tool set is
|
|
126
|
+
which kinds of question agents ask, not whether cgis is cheaper in general.
|
|
127
|
+
- `cgis` made no graph call again: 0 in 6 sessions across the two tasks.
|
|
128
|
+
- `cgis-forced` has 2 runs, not 3. The host ran out of memory, and earlyoom
|
|
129
|
+
sent SIGTERM to the third session's `cgis ingest`, which aborted the runner
|
|
130
|
+
twice. Not a cgis failure. The runner stops at the first failed ingest
|
|
131
|
+
instead of recording it and going on.
|
|
132
|
+
|
|
133
|
+
## 2026-10-14: `owner-impact-credit-wallet`, after #568 and #550
|
|
134
|
+
|
|
135
|
+
cgis at fc33b20, Sonnet 5.5, 3 runs per arm, 0 contaminated, about $1.5 in total.
|
|
136
|
+
`cgis` was not re-run: it made no cgis call on this task in the run below.
|
|
137
|
+
|
|
138
|
+
| arm | recall | precision | median $ | median tool calls | cgis calls per run |
|
|
139
|
+
|---|---|---|---|---|---|
|
|
140
|
+
| control | 1.00 | 1.00 | 0.298 | 7 | — |
|
|
141
|
+
| cgis-forced | 1.00 | 1.00 | **0.184** | 5 | 2, 5, 1 |
|
|
142
|
+
|
|
143
|
+
- `cgis-forced` went from $0.235 to $0.184 median and is now about 38% cheaper
|
|
144
|
+
than control. Control was unchanged ($0.30 to $0.298).
|
|
145
|
+
- **#568.** Two of the three sessions opened with
|
|
146
|
+
`app.domains.finance.service.credit_wallet` again, and this time it resolved:
|
|
147
|
+
the first answer was the full chain (6,746 characters), with no not-found
|
|
148
|
+
first. The third tried the bare `credit_wallet`, which is still ambiguous.
|
|
149
|
+
- **#550.** That first answer now includes both routes, `get_top_up` and
|
|
150
|
+
`stripe_webhook`. One session finished on a single cgis call. The greps that
|
|
151
|
+
remain are the agent confirming that `FinanceService.top_up` and the worker
|
|
152
|
+
tasks have no further callers, not looking for missing ones.
|
|
153
|
+
|
|
154
|
+
## 2026-10-13: `owner-impact-credit-wallet`, after #563 and #565
|
|
155
|
+
|
|
156
|
+
cgis at 3c37874, Sonnet 5.5, 3 runs per arm, 0 contaminated, about $2.5 in total.
|
|
157
|
+
|
|
158
|
+
| arm | recall | precision | median $ | median tool calls | cgis calls per run |
|
|
159
|
+
|---|---|---|---|---|---|
|
|
160
|
+
| control | 1.00 | 1.00 | 0.30 | 7 | — |
|
|
161
|
+
| cgis | 1.00 | 1.00 | 0.30 | 6 | 0, 0, 0 |
|
|
162
|
+
| cgis-forced | 1.00 | 1.00 | 0.235 | 8 | 3, 11, 3 |
|
|
163
|
+
|
|
164
|
+
- **#551.** The call that returned 51,624 characters in the first pilot,
|
|
165
|
+
`cgis_analyze_impact(domains.finance.service.credit_wallet, depth=8, json)`,
|
|
166
|
+
returned 6,136 here. `cgis-forced` went from more expensive than control
|
|
167
|
+
($0.207 vs $0.195) to cheaper. Control ranged from $0.198 to $0.327 across
|
|
168
|
+
three runs, so this shows the direction, not the size.
|
|
169
|
+
- **#542.** The `cgis` arm now gets server instructions in `initialize`, and its
|
|
170
|
+
server reported `connected` every time. It still made no cgis call: the task
|
|
171
|
+
is solvable by grep in about seven calls, and the agent took that route.
|
|
172
|
+
- **#568.** Every forced session's first call was
|
|
173
|
+
`app.domains.finance.service.credit_wallet`, built from the file path, which
|
|
174
|
+
is not found because the graph is ingested from `ownima-backend/app`. That
|
|
175
|
+
cost one or two calls per session before the agent found the real FQN.
|
|
176
|
+
- Every arm recovered the two routes the graph misses at this sha
|
|
177
|
+
(`get_top_up`, `stripe_webhook`) by grepping for them.
|