v1.108.91 - Endpoint-scoped infrastructure links (get_endpoint_impact include_infra)
Endpoint-scoped infrastructure links
get_endpoint_impact(include_infra=True) now crosses the code/infra boundary at endpoint granularity. Per impact, it attaches an infra block: the project-intel cross-references (env vars, compose services, Dockerfile ENTRYPOINT/COPY, CI jobs, package/Make scripts) intersected against that endpoint's blast-radius file set.
"Change GET /users" now also surfaces the .env variable its handler chain reads and the compose service or Dockerfile that builds the code it touches.
infra.downstream[]rows carry{category, label, source, target_file, type}: file-granular evidence, honestly labelled, de-duped by(category, label).infra._metareportscross_refs_scanned/blast_radius_files, orreason: "no_local_source_root"for GitHub-style indexes.infra.exposes[](upstream Kubernetes Service/Ingress and compose ports) ships empty as the P2 follow-on.
Enabler: new internal collect_project_intel() factored out of get_project_intel, running discovery + parse + cross-reference over an already-loaded index so the fusion reuses one bounded discovery pass. get_project_intel's public response is unchanged field-for-field.
Default (include_infra=False) output is identical to 1.108.90. The new param is stripped under compact_schemas (standard tier; core_compact unchanged at 3969). benchmarks/schema_baseline.json refreshed. New tests/test_endpoint_infra_impact.py (10). No new parser, no new store, no INDEX_VERSION bump.
Full test suite: 4892 passed / 10 skipped. CI green across the matrix.