mcilspy/CHANGELOG.md
Ryan Malloy ad72b013ca docs: update documentation for v0.4.0 features
- Add dump_package tool documentation to README and API.md
- Document generate_pdb and use_pdb_variable_names parameters
- Update tool count from 14 to 15 in API.md
- Add DumpPackageRequest/Response models to API.md
- Add v0.4.0 and v0.3.0 entries to CHANGELOG
- Renumber API.md tools to accommodate new dump_package tool
2026-02-11 00:51:51 -07:00

3.0 KiB

Changelog

All notable changes to mcilspy will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Calendar Versioning for major releases.

[0.4.0] - 2026-02-11

Added

  • PDB Generation (generate_pdb flag) - Generate portable PDB files from decompiled assemblies for IDE debugging
  • PDB Variable Names (use_pdb_variable_names flag) - Use original variable names from existing PDB files for improved readability
  • dump_package tool - Extract all assemblies from NuGet package folder structures for bulk analysis

Changed

  • decompile_assembly now exposes all ilspycmd CLI options - mcilspy has 100% feature coverage
  • Updated documentation with new tool and parameter descriptions
  • Tool count increased from 14 to 15

[0.3.0] - 2026-02-10

Fixed

  • Type parsing regex - Fixed list_types returning empty results (regex expected "Class:" but ilspycmd outputs "Class ")
  • UserStringHeap data access - Fixed Python name mangling issue in search_strings causing crash
  • Decompile stdout mode - Added _decompile_to_stdout() method for simple decompilation without output directory

Changed

  • Merged comprehensive code review fixes from parallel taskmaster branches (security, architecture, performance, testing)
  • All 165 tests passing

[0.2.0] - 2026-02-07

Security

  • Fixed shell injection vulnerability in SDK installation - replaced create_subprocess_shell with create_subprocess_exec using explicit argument lists
  • Added subprocess timeout (5 minutes) to prevent hanging on malicious/corrupted assemblies

Added

  • pytest test suite with 35 tests covering models, metadata reader, and wrapper
  • PATH auto-discovery for ilspycmd - now checks ~/.dotnet/tools when not in PATH
  • FastMCP lifespan pattern for proper dependency management

Changed

  • Version handling now uses importlib.metadata - single source of truth in pyproject.toml
  • Error messages standardized across all tools using _format_error() helper
  • Type parsing improved with proper handling for nested types (Outer+Nested)
  • Imports cleaned up - removed duplicate re imports, added top-level import

Fixed

  • Global mutable state replaced with FastMCP lifespan context pattern
  • Type hints added to all public methods
  • Regex parsing now logs unparsed lines instead of silently ignoring

[0.1.1] - 2026-02-06

Added

  • dnfile-based metadata tools (search_methods, search_fields, search_properties, list_events, list_resources, get_metadata_summary)
  • Platform-aware installation tool with SDK detection
  • Improved README with badges and quick start guide

Fixed

  • HeapItemBinary conversion in metadata reader
  • Property and event listing with proper row index handling

[0.1.0] - 2026-02-05

Added

  • Initial release
  • FastMCP server wrapping ilspycmd
  • Tools: decompile_assembly, list_types, generate_diagrammer, get_assembly_info
  • check_ilspy_installation and install_ilspy helper tools