Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Changelog

## 1.2.4

Task Manager 1.2.4 focuses on conflict analysis, clearer attribution, and more reliable session capture.

### Added

- Pairwise lock attribution that records both the waiting thread and the lock owner thread when the JVM exposes that information
- Repeated conflict tracking across the rolling capture window so the mod can highlight recurring `waiter mod -> owner mod` contention instead of isolated one-off waits
- Broader thread role classification for worker pools, IO pools, chunk generation, chunk meshing, chunk upload, network, GC, render, and main logic threads
- Alternate owner candidates in thread drilldown so low-confidence ownership can be reviewed instead of being flattened into a single guess
- Dedicated conflict findings in the UI and HTML export, split into confirmed contention, repeated conflict candidates, weak heuristics, and unrelated slowdown causes

### Changed

- Scheduling-conflict detection no longer depends only on `Worker-Main-*` thread names and now uses thread names plus stack ancestry
- Conflict wording is more conservative and now distinguishes `Measured`, `Inferred`, `Pairwise inferred`, `Weak heuristic`, and reserved support for `Known incompatibility`
- Lock summaries prefer pairwise conflict phrasing when both sides of a wait can be identified
- Export summaries and diagnosis text now include top conflict candidates instead of only generic lock warnings
- Thread detail views now expose role labels, role-source labels, and alternate owner candidates

### Fixed

- `MANUAL_DEEP` recording now continues to capture session samples after recording starts, even if the Task Manager screen is closed
- Session exports no longer fall back to `No session samples were captured` for valid `MANUAL_DEEP` recordings started with `F11`
- Conflict and slowdown reporting no longer overstates certainty by calling inferred waits confirmed mod conflicts

### Notes

- `Known incompatibility` is currently a confidence tier and UI label, not a populated incompatibility database. In 1.2.4, conflict findings are still based on measured contention plus inferred ownership rather than a bundled registry of hardcoded bad mod pairs.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
![Static Badge](https://img.shields.io/badge/Version-1.2.3-blue) ![Modrinth Downloads](https://img.shields.io/modrinth/dt/taskmanager)

# Task Manager

Task Manager is a Fabric client profiler for modded Minecraft that helps you identify frame drops, high MSPT, hot mods, rendering spikes, block-entity pressure, and JVM/runtime issues while the game is still running.
Expand Down Expand Up @@ -65,8 +66,11 @@ Session exports include a polished summary with:
- top memory mods
- hot chunk summary
- block entity classes
- repeated conflict edges and pairwise lock contention summaries
- rule findings and sensor diagnostics

For `MANUAL_DEEP`, press `F11` to start recording, play normally while reproducing the issue, then press `F11` again to stop. The session will continue recording even if the Task Manager screen is closed.

## Notes on Accuracy

Task Manager aims to be honest about what is measured versus estimated:
Expand All @@ -78,4 +82,3 @@ Task Manager aims to be honest about what is measured versus estimated:
- For CPU temperature on Windows, running Core Temp is the primary recommended setup; LibreHardwareMonitor/OpenHardwareMonitor and HWiNFO can also work

That means the profiler is very useful for finding hotspots and spikes, but some values, especially GPU-per-mod and shared JVM memory, should be interpreted as guidance rather than perfect ground truth.

2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ minecraft_version=1.21.11
yarn_mappings=1.21.11+build.1
loader_version=0.18.4
# Mod Properties
mod_version=1.2.3
mod_version=1.2.4
maven_group=wueffi
archives_base_name=TaskManager
# Dependencies
Expand Down
Loading