v2.0.0 Release Notes¶
Release Date: February 24, 2026
Release Type: Major
Highlights¶
- Full C language support — extract, analyze, and update C code with AST precision
- Full C++ support — templates, namespaces, nested classes, operator overloading
- Full C# support — properties, interfaces, generics, LINQ patterns
- 262 language-specific tests — 39 new real-world pattern tests across the new languages
- 23 MCP tools —
type_evaporation_scanadded for TypeScript type boundary detection - 7,575+ total tests — 100% pass rate
New Language Support¶
Code Scalpel now supports 7 languages with production-quality AST parsing and IR normalization.
| Language | analyze_code | extract_code | update_symbol | security_scan |
|---|---|---|---|---|
| Python | ✅ | ✅ | ✅ | ✅ |
| JavaScript | ✅ | ✅ | ✅ | ✅ |
| TypeScript | ✅ | ✅ | ✅ | ✅ |
| Java | ✅ | ✅ | ✅ | ✅ |
| C | ✅ NEW | ✅ NEW | ✅ NEW | — |
| C++ | ✅ NEW | ✅ NEW | ✅ NEW | — |
| C# | ✅ NEW | ✅ NEW | ✅ NEW | — |
C Support¶
// extract_code now works on C files
// "Extract the vec3_dot function from renderer.c"
float vec3_dot(Vec3 a, Vec3 b) {
return a.x * b.x + a.y * b.y + a.z * b.z;
}
Supports: function definitions, structs, enums, typedefs, preprocessor macros (normalized), header includes.
C++ Support¶
// "Extract the Mesh::render method from renderer.cpp"
void Mesh::render(RenderContext& ctx) const {
ctx.draw(vertices_, indices_, material_);
}
Supports: classes, templates, namespaces, operator overloading, nested classes, RAII patterns.
C# Support¶
// "Extract the PlayerController class from Player.cs"
public class PlayerController : MonoBehaviour
{
public float MoveSpeed { get; set; } = 5.0f;
private void Update() { /* ... */ }
}
Supports: classes, interfaces, properties, generics, async/await, LINQ, attributes.
New Tool: type_evaporation_scan¶
Detects TypeScript type safety violations at frontend/backend boundaries — where strong types on the TypeScript side silently become any when crossing a network or library boundary.
"Check this fetch call for type evaporation"
→ Detected: JSON.parse() result assigned to typed variable without validation (line 47)
→ Recommendation: Add Zod schema or manual type guard
Community tier: Frontend-only analysis
Pro tier: Network boundary analysis, implicit any tracing
Enterprise tier: Zod schema generation, Pydantic model generation, API contract validation
What's Improved¶
- 4 normalizer bug fixes during C/C++/C# development:
IRIfandIRWhilenode construction (missingtest=kwarg)- C#
tuple_typenodes now handled in_TYPE_NODES - C++
visit_operator_declarationnow correctly extracts overloaded operators - Nested C++ class extraction (inner classes no longer dropped)
- Pre-release pipeline: all checks passing — black, ruff, pyright, bandit, pytest, build
test_polyglot_support.pyupdated: C/C++/C# moved from roadmap to fully-supported matrix
Migration from v1.x¶
No breaking changes. All existing tools, configurations, and integrations continue to work without modification.
New capabilities are additive: - C/C++/C# extraction works automatically when you pass .c, .cpp, .cc, .h, .hpp, or .cs files - type_evaporation_scan is available as a new Community tier tool immediately
Upgrade¶
Full Changelog¶
See CHANGELOG.md for the complete list of changes.