You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
New CLI command that finds production callables unreachable from
entrypoints via BFS over call edges.
Usage:
hypergumbo dead-code-maybe . # Text output
hypergumbo dead-code-maybe . --format json # JSON output
hypergumbo dead-code-maybe . --seeds all # Include tests as seeds
Seed set is configurable: entrypoints (default), tests, or all.
Dead candidates are ranked by LOC (largest first). Foundation for
downstream dead-code prospector items (WI-zafab, WI-pimig, WI-hadap,
WI-zimum).
Signed-off-by: jgstern-agent <josh-agent@iterabloom.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,6 +23,7 @@ This changelog tracks the **tool version** (package releases). The **schema vers
23
23
24
24
#### Behavior map
25
25
26
+
-**`hypergumbo dead-code-maybe` subcommand** (WI-fisam): finds production callables unreachable from entrypoints via BFS over call edges. Supports `--seeds {entrypoints,tests,all}` for configurable seed sets, `--format {text,json}` output, and `--min-confidence` for entrypoint filtering. Dead candidates are ranked by LOC (largest unreachable functions first). Foundation for downstream dead-code prospector tooling.
26
27
-**Co-located test files classified as tier 1** (WI-gifuz): files matching test naming conventions (`_test.go`, `.test.js`, `.spec.ts`, `_spec.rb`, `tests.rs`) that are co-located with source code are now classified as tier 1 (FIRST_PARTY) with `is_test=True`, instead of tier 2 (INTERNAL_DEP). Files in dedicated test directories (`tests/`, `spec/`, `__tests__/`) remain tier 2. This fixes a bakeoff signal where all tier-2-only nodes in Go repos were `_test.go` files, making tier filtering useless for distinguishing first-party tests from actual third-party dependencies.
27
28
-**Event-sourcing linker expansion** (WI-zadat): extends event detection beyond Spring/JS/Django to cover Guava EventBus (`bus.post()`, `@Subscribe`), generic Java event bus patterns (`fire()`/`dispatch()`/`register()`/`addListener()`), Go channel-based events (`ch <- value`/`<-ch`), and Go event bus method calls (`Publish()`/`Subscribe()`/`Emit()`/`On()`). Go `.go` files are now scanned for event patterns alongside Python, JS/TS, and Java.
28
29
-**Go closure wrapper edges** (WI-nikul): when a route registration passes a handler through a closure wrapper (e.g., `r.Get("/query", wrapAgent(api.query))`), the wrapper is now visible in the call graph. The analyzer detects `func`-typed closure variables declared via `:=`, creates a function Symbol for the wrapper with `middleware` concept metadata, records `wrapper_name` in route metadata, and emits `wraps` edges from the wrapper symbol to the inner handler. Covers both Gin/Echo/Fiber and Gorilla mux/stdlib route patterns.
0 commit comments