v0.3.6-beta
🚀 Codebadger Release — v0.3.6-beta
v0.3.6-beta
Released Mar 10, 2026
📦 What’s New
- Improved program slice location mapping in
get_program_slice()([$line] -> [$file:$line]fix). - Added flow deduplication to
find_taint_flows()to remove duplicate paths and reduce noise.
🛡️ Detection Improvements
-
Replaced
contains/endsWithchecks withpathBoundaryRegexin vulnerability detectors:find_double_freefind_use_after_freefind_null_pointer_dereffind_integer_overflow
⚙️ Stability & Diagnostics
-
Silent exceptions in:
use_after_free.scalanull_pointer_deref.scalainteger_overflow.scala
now emit diagnostic notes instead of failing silently.
🧹 Refactors & Cleanup
- Removed
%4dzero-padding on line numbers invariable_flow.scala. - Removed unused
shutdown_event(asyncio.Event). - Removed
_setup_signal_handlersand related signal-handling logic. - Removed unused imports (
asyncio,signal).
🔌 FastMCP v3 Lifecycle Integration
- Migrated from
@asynccontextmanagerto FastMCP@lifespan. - Replaced
lifespan(mcp)withapp_lifespan(server)to avoid decorator shadowing. - Lifespan now yields a services dictionary, enabling access via
ctx.lifespan_context. _graceful_shutdown()moved to afinallyblock to ensure cleanup on both normal shutdown and exceptions.
🔭 Observability
- Added OpenTelemetry support for tracing and monitoring analysis operations.
🛠️ Maintenance & Dependencies
- Bumped fastmcp version.
- Bumped joern version.
- General internal cleanup and consistency improvements.
⏱️ Tool Timeout Configuration
- 600s:
generate_cpg - 300s: heavy analysis (
find_taint_flows,get_program_slice, vulnerability detectors) - 120s: medium queries (
get_variable_flow,get_call_graph,get_cfg,run_cpgql_query) - 60s:
store_findings,export_sarif - 30s: lightweight lookup tools
🔐 Networking
- Reserved ports 13371–13399 to avoid conflicts with commonly used ports (e.g.,
2222for SSH).
Full Changelog: v0.3.5-beta...v0.3.6-beta