Large types (e.g., 15.5M chars of IL from CyBGElaborator) crashed MCP
clients. Two fixes:
1. decompile_assembly now truncates output exceeding max_output_chars
(default 100K), saves the full output to a temp file, and returns
a preview with recovery instructions. Set max_output_chars=0 to
disable.
2. New decompile_method tool extracts individual methods from a type.
IL mode uses ECMA-335 .method/end-of-method delimiters. C# mode
uses signature matching with brace-depth counting. Handles
overloads automatically.
New module: il_parser.py with extract_il_method() and
extract_csharp_method() functions, keeping parsing logic separate
from server.py.
- Fix _TYPE_LINE_PATTERN regex to match ilspycmd format (no colon)
- Fix UserStringHeap data access using getattr instead of name mangling
- Add _decompile_to_stdout method for simple decompilation
- Fix decompile to not always use -o flag when stdout is desired
- Update test data to match actual ilspycmd output format
- Add bypass_path_validation fixture for tests using mock paths
- Update find_ilspycmd_path references to use mcilspy.utils
- Fix wrapper fixture patches in timeout tests
- Update assertions for new output formats (pagination, etc.)
- Mark all taskmaster domains as merged in status.json
All 165 tests passing.
- Use importlib.metadata for dynamic version (single source in pyproject.toml)
- Clean up duplicate `import re` statements across modules
- Add missing type hints to all public methods
- Fix PATH auto-discovery for ilspycmd (~/.dotnet/tools)
- Add pytest test suite with 35 tests covering models, metadata reader, wrapper
- Bump version to 0.2.0, add CHANGELOG.md