Skip to content

Releases: appaKappaK/KSPLeakReducer

KSPLeakReducer 1.7.1

Choose a tag to compare

@github-actions github-actions released this 19 Jun 05:27

Changed

  • Renamed the mod package, assembly, and shipped GameData layout from NoMoreLeaks to KSPLeakReducer.
  • Added one-release config compatibility so KSPLeakReducer will still read the legacy GameData/NoMoreLeaks/NoMoreLeaks.cfg file and NOMORELEAKS node.
  • Updated Harmony patch ownership to kspleakreducer.ksp.
  • Renamed public docs, validation notes, and exported debug marker names from NoMoreLeaks to KSPLeakReducer.
  • Refined the public leak-summary exporter and refreshed development notes with the latest validation runs.

NoMoreLeaks 1.7.0

Choose a tag to compare

@github-actions github-actions released this 12 Jun 07:08

Added

  • Cleanup before ModuleInventoryPart.DeletePartObject destroys an inventory-spawned part, including its child-part hierarchy.
  • Inventory callback sweeps after both UIPartActionControllerInventory.CreatePartFromInventory overloads.
  • 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 Cleanup name to CleanupCallbacks. Harmony previously treated those helpers as patch-cleanup methods and could abort PatchAll(), notably when SpaceTrackingLeakPatch accessed FlightGlobals.Vessels during 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 FlightGlobals exists 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.ksp identifier.
  • Removed accidentally tracked build intermediates containing local build paths.

NoMoreLeaks 1.6.0

Choose a tag to compare

@github-actions github-actions released this 06 Jun 23:18

Added

  • Proactive EDITOR -> FLIGHT inventory sweep via a Harmony prefix on EditorLogic.exitEditor.
  • EditorToFlightSweepPatch.cs containing EditorExitInventorySweepPatch and the shared EditorExitSweep.SweepLiveInventoryModules helper.

Fixed

  • ModuleInventoryPart callbacks leaking through the editor exit window. The root cause was that RemoveDestroyedOwners only removes entries whose originator is a destroyed Unity object. During EDITOR -> FLIGHT, the old editor ModuleInventoryPart instances 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. SweepLiveInventoryModules uses FindObjectsOfType<ModuleInventoryPart>() to find all live instances and calls Cleanup on 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 ModuleInventoryPart editor callback set after transitions, pointing to an editor-exit timing window.

Changed

  • README.md updated 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.1 and C# 7.2, matching Fedora Mono's available xbuild/mcs toolchain.
  • KSP, Unity, and Harmony references are marked non-copy-local so generated packages do not include dependency DLLs that KSP already provides.