Skip to content

Commit c8fb939

Browse files
committed
- engine: bump cacheVersion v86 → v87 so cached Python snapshots re-extract
with the tightened resolveCall (extractor output changed). - docs: refresh the Apache Airflow --explain report in README.md to match current output (fact count + god-class/call-graph-hotspot counts).
1 parent 288d86e commit c8fb939

2 files changed

Lines changed: 11 additions & 7 deletions

File tree

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ enola --explain /path/to/repo
315315

316316
Every finding carries a confidence score, and it means something exact: `1.0` is a structural fact (a cycle exists; an export ratio measured), while anything below is a flagged heuristic for you to review (a god class is a statistical fan-in outlier, not a rule). The analyses are computed by graph algorithms — Tarjan's SCC for cycles, longest-path for dependency depth, mean+2σ outlier tests for the rest — so the same commit yields the same report.
317317

318-
Here's the actual report for [Apache Airflow](https://github.com/apache/airflow) — a large polyglot codebase (Python, Java, TypeScript, gRPC, and OpenAPI specs) analyzed in a single pass, 122,772 facts in ~2s (extraction parses files in parallel across cores):
318+
Here's the actual report for [Apache Airflow](https://github.com/apache/airflow) — a large polyglot codebase (Python, Java, TypeScript, gRPC, and OpenAPI specs) analyzed in a single pass, 122,257 facts in ~2s (extraction parses files in parallel across cores):
319319

320320
```
321321
════════════════════════════════════════════════════════════
@@ -326,10 +326,10 @@ Overview
326326
Generated: 2026-07-07T20:51:51Z
327327
Analysis time: 2.100326959s
328328
Languages: python, typescript, java, grpc
329-
Total facts: 122772
329+
Total facts: 122257
330330
331331
Architectural kinds
332-
module 2499
332+
module 2500
333333
symbol 64148
334334
route 6426
335335
storage 64
@@ -383,18 +383,18 @@ Impact analysis (hotspots)
383383
task-sdk/src/airflow/sdk 591 15 high 64026
384384
385385
Code health
386-
god classes (high fan-in) 254
386+
god classes (high fan-in) 249
387387
chart/tests/chart_utils/helm_template_gener… 1193 dependents
388388
devel-common/src/tests_common/test_utils/co… 557 dependents
389389
devel-common/src/tests_common/test_utils/sy… 476 dependents
390390
dev/breeze/src/airflow_breeze/utils/console… 376 dependents
391391
airflow-core/src/airflow/utils/session.crea… 288 dependents
392-
call-graph hotspots 152
392+
call-graph hotspots 150
393393
chart/tests/chart_utils/helm_template_gener… fan-in 1193 / out 7
394394
devel-common/src/tests_common/test_utils/co… fan-in 557 / out 10
395395
task-sdk/src/airflow/sdk/execution_time/tas… fan-in 101 / out 37
396396
airflow-core/src/airflow/utils/session.crea… fan-in 288 / out 6
397-
dev/breeze/src/airflow_breeze/utils/run_uti… fan-in 179 / out 9
397+
providers/hashicorp/src/airflow/providers/h… fan-in 76 / out 21
398398
deep dependency chains 10
399399
chart/docs depth 196
400400
dev/breeze/tests depth 196

internal/engine/cache.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,11 @@ import (
222222
// <App>BaseModel) used by hand-written schema packages, which v85 missed because BaseModel
223223
// wasn't a direct base (so those datamodels packages were still flagged "rigid"). Bump so
224224
// snapshots cached under v85 re-extract with the widened detection.
225-
const cacheVersion = "v86"
225+
// v87: Python resolveCall no longer fabricates same-module RelCalls edges for callable
226+
// parameters, locals, and loop variables — it now resolves a bare callee only when the name
227+
// is a known module-level def and not shadowed by a parameter (mirrors valueRefTarget). Drops
228+
// spurious call edges; bump so cached Python snapshots re-extract with the tightened resolver.
229+
const cacheVersion = "v87"
226230

227231
// extractorCache holds per-extractor facts keyed by a content hash of the files
228232
// the extractor depends on. It is loaded from disk at the start of a snapshot and

0 commit comments

Comments
 (0)