Repository navigation
v1.3.7
DecompilerServer 1.3.7 fixes severe process-wide and system-wide resource exhaustion when multiple MCP clients use a large persisted context registry.
Fixed
- Persisted aliases are now registered as lightweight metadata and loaded only when selected or addressed through
contextAlias. - Dependency assemblies are prefetched, cached across both ILSpy type systems, explicitly owned, and deterministically disposed with their context.
- Partial assembly-load failures now release native resources.
list_contextsexposesregisteredAliasesseparately from loaded contexts.unloadcan remove a deferred registration without first loading it.
Measured impact
Using the same registry with about 90 aliases:
- Previous idle process: approximately 2.2 GB RSS and 4,420 numeric file descriptors.
- v1.3.7 idle process: approximately 73 MB RSS and 158 numeric file descriptors.
- v1.3.7 after loading UnityEditor on demand: approximately 174 MB RSS and 164 numeric file descriptors.
This removes the multiplier that exhausted the macOS system limit when many agent-owned MCP server processes were alive concurrently.
Compatibility
No registry migration is required. Loaded sessions, indexes, caches, and MVID routing remain process-local. After a restart, an old MVID-only reference for a deferred non-current alias may need that contextAlias once to activate it.
Validated with 181 passing Release tests. Framework-dependent single-file assets for macOS, Linux, and Windows require the .NET 10 runtime.
Full Changelog: v1.3.6...v1.3.7