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

71 lines
3.0 KiB
Markdown

# Changelog
All notable changes to mcilspy will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Calendar Versioning](https://calver.org/) 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