Calm The Leaks (CTL)

This mod extends atl outputs, recognises leak trends, and then recommends fixes based of confidence levels after leveraging spark data. CTL doesn't hide real problems - it filters startup noise and false positives so you can focus on real leaks.

File Details

calmtheleaks-1.1.0.jar

  • R
  • Feb 2, 2026
  • 60.43 KB
  • 98.6K
  • 1.20.1
  • Forge

File Name

calmtheleaks-1.1.0.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:calm-the-leaks-ctl-1449975:7564284")
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Calm The Leaks 1.1.0

Major Fixes:

Fixed Count Display Showing 0
- **Critical Fix**: Changed all display locations to use `state.currentCount` instead of `signature.count`
- The count now correctly shows the current leak count instead of the initial count from when the leak was first detected
- Fixed in `/ctl explain`, `/ctl status`, and all other display commands

Fixed Confidence Percentage Not Showing
- Fixed confidence percentage not appearing in `/ctl explain` output
- The check was incorrectly matching the word "confidence" in uncertainty notes, causing the percentage to be skipped
- Now only skips if the uncertainty note actually contains a confidence percentage (e.g., "Confidence: 50%")

Fixed Duplicate Text in Explain Output
- Removed duplicate "Related mods" list that appeared both in the conflict warning and at the bottom
- Removed duplicate confidence percentage display
- Cleaned up output formatting for better readability

Fixed Baseline Leaks Showing in Explain
- Added filtering to `/ctl explain` to only show leaks with `SUSPICIOUS_TREND` or `CONFIRMED_LEAK` verdicts
- Baseline retention and transitional noise leaks are now properly filtered out
- Users will only see leaks that actually need attention

Fixed Verdict Engine Using Stale Count Data
- Updated `VerdictEngine.evaluate()` to use `state.currentCount` instead of `signature.count` throughout
- Verdicts now use the current leak count, ensuring accurate evaluation
- Prevents incorrect verdicts when leak counts change over time

New Features

Death Detangler Integration
- Added `DeathDetanglerIntegration` class for communication with Death Detangler mod
- CTL now tracks when Death Detangler is active and handling player clone cleanups
- Adjusts leak analysis accordingly - doesn't blame Death Detangler if it's actively managing leaks
- Shows Death Detangler's cleanup count in leak reports

Confidence Hints System
- Added `confidenceHints` field to `LeakAnalysis` to provide explicit suggestions for increasing confidence
- Displays hints like "Run /atl force_refresh X more time(s) to increase confidence"
- Helps users understand how to improve CTL's analysis accuracy
- Hints are displayed with a đŸ’¡ icon in the explain output

Improved Spark Profiling
- Spark profiling now only triggers for `CONFIRMED_LEAK` verdicts or `HIGH` severity leaks
- Prevents unnecessary profiling for small or baseline leaks
- Added `isSparkAlreadyRunning()` check to prevent starting multiple Spark sessions
- Spark profiling runs silently in the background (no chat messages)

Improvements

Leak Analysis
- Modified `LeakAnalyser.findRelatedMods` to exclude Death Detangler from conflict reports if it's active and managing leaks
- Only reports Death Detangler as a conflict if it's not actively managing the leak or if the leak is significant despite its efforts
- Improved confidence calculation to increase more gradually (30% base + 5% per observation)

Severity Calculation
- Adjusted severity calculation to require multiple observations before setting to `HIGH`
- First detection is `LOW` or `MEDIUM`, only becomes `HIGH` with 2+ reports and 2+ growth events, or 5+ reports with 70%+ growth events
- More stable severity reporting

Verdict Logic
- Updated verdict logic to return `CONFIRMED_LEAK` if there are multiple growth events (2+ growth events and 2+ reports, or 5+ reports with 70%+ growth events)
- Even if Death Detangler is active, confirmed leak patterns still trigger warnings
- Ensures ATL warnings appear when there's a confirmed leak pattern

Output Formatting
- Removed duplicate confidence information from uncertainty notes
- Confidence is now shown once at the bottom with proper color coding
- Confidence hints are displayed separately with clear icons
- Related mods list only shows if not already in the conflict warning

Bug Fixes

- Fixed compilation errors related to variable scope in `LeakAnalyser`
- Fixed missing import for `LeakAnalysis` in `SparkProfilerManager`
- Fixed config reference (`Config.enableLogNotifications` → `Config.logDebugDetails`)
- Improved error handling for reflection-based operations

Code Quality

- Removed debug comments and unnecessary fluff
- Improved code organization and documentation
- Better error handling throughout

Technical Details

- **State Tracking**: Now properly tracks `currentCount` vs `previousCount` for accurate trend analysis
- **Event Filtering**: Improved filtering logic to distinguish between baseline retention and actual leaks
- **Inter-Mod Communication**: Uses reflection-based API for communication with Death Detangler