Repository navigation
v0.1.30
v0.1.30
Bug Fixes
- MCP
initializenow declares thetoolscapability (MCP 2025-11-25 spec MUST): capability-negotiating clients were seeing 0 tools — the empty capabilities object caused them to skiptools/listeven though all 10 tools work correctly. Upgrades xyz-rust 0.4.6→0.4.8 (upstream fix + rmcp 3.5.1, axum-server 0.8, TLS ring provider fix). #8 - Float constants emitted as raw IEEE bit patterns: dex const literals are untyped bits; in float/double arithmetic they must be reinterpreted with
from_bits(>27k lines of silently wrong values on telegram alone).
New Features
- Three new cure (0.1.4–0.1.8) source-level simplification rules (~105k sites across three fresh APK corpora):
dead_pure_call: discard-resultLong.compare/Objects.toStringstatements (~63k)trailing_else_flatten: the else keyword after a terminal then-branch (~41k)(T)(Object)x→(T)xcast folding on Object-typed operands
--fastnow works on every Java-source command:getclass,getmethod,pkg(in addition to the main decompile path)
Quality
- Four-corpus javac gate: 8,633 errors (−14 vs v0.1.29), output lines weibo −19.9%
- JLS 6.4.2 obscured-member static-import escape: inherited field captures package name in qualified references (reqable 103→5)
- Seven type/scoping guards in cure found on ddc corpora
Performance
- weibo decompile: 20.9 s default / 9.9 s
--fast(110k files) - Four IR shape passes retired into cure (−360 LoC ddc source)
Full Changelog: v0.1.29...v0.1.30