Releases: appaKappaK/KSPLeakReducer
Releases · appaKappaK/KSPLeakReducer
Release list
KSPLeakReducer 1.7.1
Changed
- Renamed the mod package, assembly, and shipped
GameDatalayout fromNoMoreLeakstoKSPLeakReducer. - Added one-release config compatibility so
KSPLeakReducerwill still read the legacyGameData/NoMoreLeaks/NoMoreLeaks.cfgfile andNOMORELEAKSnode. - Updated Harmony patch ownership to
kspleakreducer.ksp. - Renamed public docs, validation notes, and exported debug marker names from
NoMoreLeakstoKSPLeakReducer. - Refined the public leak-summary exporter and refreshed development notes with the latest validation runs.
NoMoreLeaks 1.7.0
Added
- Cleanup before
ModuleInventoryPart.DeletePartObjectdestroys an inventory-spawned part, including its child-part hierarchy. - Inventory callback sweeps after both
UIPartActionControllerInventory.CreatePartFromInventoryoverloads. - Explicit assembly and file version metadata so the built plugin reports the release version instead of
0.0.0.0.
Fixed
- Renamed patch helper methods from Harmony's reserved
Cleanupname toCleanupCallbacks. Harmony previously treated those helpers as patch-cleanup methods and could abortPatchAll(), notably whenSpaceTrackingLeakPatchaccessedFlightGlobals.Vesselsduring startup. - Explicit subtree-deletion paths now clean callback-owning modules throughout the affected child-part hierarchy instead of cleaning only the root part.
- Space-tracking callback cleanup no longer accesses the vessel list before
FlightGlobalsexists during startup or scene transitions. - Broad stock callback cleanup now snapshots the GameEvents registry and safely defers a pass if KSP changes the registry during enumeration.
Changed
- Internal and packaged version metadata updated to
1.7.0. - Harmony patch ownership now uses the neutral
nomoreleaks.kspidentifier. - Removed accidentally tracked build intermediates containing local build paths.
NoMoreLeaks 1.6.0
Added
- Proactive
EDITOR -> FLIGHTinventory sweep via a Harmony prefix onEditorLogic.exitEditor. EditorToFlightSweepPatch.cscontainingEditorExitInventorySweepPatchand the sharedEditorExitSweep.SweepLiveInventoryModuleshelper.
Fixed
ModuleInventoryPartcallbacks leaking through the editor exit window. The root cause was thatRemoveDestroyedOwnersonly removes entries whose originator is a destroyed Unity object. DuringEDITOR -> FLIGHT, the old editorModuleInventoryPartinstances are still alive when the new flight scene begins loading, so they passed the liveness check and were skipped. By the time Unity destroyed them, the scene-unload sweep had already run.SweepLiveInventoryModulesusesFindObjectsOfType<ModuleInventoryPart>()to find all live instances and callsCleanupon each directly, without waiting for destruction.- Documented the evidence trail from the June 4-5 desktop memory-leak exports: NML was already cleaning broad stock leak classes while KSPCF still caught a small repeated
ModuleInventoryParteditor callback set after transitions, pointing to an editor-exit timing window.
Changed
README.mdupdated to 1.6.0, documents the editor exit sweep and its expected log output, and adds the June 2026 validation sessions to the leak history table.- The Linux build profile now targets .NET Framework
4.7.1and C#7.2, matching Fedora Mono's availablexbuild/mcstoolchain. - KSP, Unity, and Harmony references are marked non-copy-local so generated packages do not include dependency DLLs that KSP already provides.