tag:github.com,2008:https://github.com/caaatto/BlueMeter/releases Release notes from BlueMeter 2025-12-15T18:03:52Z tag:github.com,2008:Repository/1090097505/v1.5.6 2025-12-15T18:07:07Z v1.5.6 <h2>BlueMeter v1.5.6</h2> <h3>🚀 Installation Options</h3> <h4>Option 1: Professional Installer (Recommended for most users)</h4> <ol> <li>Download <code>BlueMeterSetup.exe</code></li> <li>Double-click to run the installer</li> <li>Follow the setup wizard</li> <li>.NET 8.0 will be automatically installed if needed</li> <li>BlueMeter will launch automatically after installation</li> </ol> <h4>Option 2: Portable Build (For developers/advanced users)</h4> <ol> <li>Download <code>BlueMeter-v1.5.6-windows-x64.zip</code></li> <li>Extract the ZIP file</li> <li>Double-click <code>setup.bat</code></li> <li>The script will build and launch BlueMeter</li> </ol> <h3>Requirements</h3> <ul> <li>Windows 10 or later (x64)</li> <li>.NET 8.0 (auto-installed by both installation methods)</li> </ul> <h3>Troubleshooting</h3> <p>See <code>INSTALL.md</code> for detailed instructions and troubleshooting.</p> <h3>Changelog</h3> <p>See commits since last release for changes.</p> caaatto tag:github.com,2008:Repository/1090097505/v1.5.5 2025-12-15T17:32:40Z v1.5.5 <h2>BlueMeter v1.5.5</h2> <h3>🚀 Installation Options</h3> <h4>Option 1: Professional Installer (Recommended for most users)</h4> <ol> <li>Download <code>BlueMeterSetup.exe</code></li> <li>Double-click to run the installer</li> <li>Follow the setup wizard</li> <li>.NET 8.0 will be automatically installed if needed</li> <li>BlueMeter will launch automatically after installation</li> </ol> <h4>Option 2: Portable Build (For developers/advanced users)</h4> <ol> <li>Download <code>BlueMeter-v1.5.5-windows-x64.zip</code></li> <li>Extract the ZIP file</li> <li>Double-click <code>setup.bat</code></li> <li>The script will build and launch BlueMeter</li> </ol> <h3>Requirements</h3> <ul> <li>Windows 10 or later (x64)</li> <li>.NET 8.0 (auto-installed by both installation methods)</li> </ul> <h3>Troubleshooting</h3> <p>See <code>INSTALL.md</code> for detailed instructions and troubleshooting.</p> <h3>Changelog</h3> <p>See commits since last release for changes.</p> caaatto tag:github.com,2008:Repository/1090097505/v1.5.4 2025-12-13T12:36:35Z v1.5.4 - DPS Refresh Rate Settings <h1>Release Notes - Version 1.5.4</h1> <p><strong>Release Date:</strong> 2025-12-13</p> <h2>New Features</h2> <h3>⚡ DPS Refresh Rate Settings</h3> <p><strong>Description:</strong> Customizable DPS meter update frequency to balance performance and smoothness based on your PC specs and preferences.</p> <p><strong>Problem Solved:</strong> Users reported lag when tabbed into the game during combat. The DPS meter was competing with the game for CPU/GPU resources, causing frame drops and stuttering. When tabbed out, the meter worked smoothly because the game wasn't actively rendering.</p> <p><strong>Solution:</strong></p> <ul> <li>Added configurable refresh rate with 4 preset options</li> <li><strong>Minimal</strong>: 10 FPS (100ms refresh) - Best for low-end PCs or when playing in-game</li> <li><strong>Low</strong>: 20 FPS (50ms refresh) - Good balance between smoothness and performance (Default)</li> <li><strong>Medium</strong>: 30 FPS (33ms refresh) - Smooth updates, moderate CPU usage</li> <li><strong>High</strong>: 60 FPS (16ms refresh) - Maximum smoothness, highest CPU usage (high-end PCs only)</li> </ul> <p><strong>Implementation:</strong></p> <ul> <li>Created <code>DpsRefreshRate.cs</code> enum with extension methods for FPS/interval conversion</li> <li>Modified <code>DpsStatisticsViewModel.cs</code> to use dynamic UI update throttle based on user setting</li> <li>Updated <code>BattleLogQueue.cs</code> to support global batch timeout configuration</li> <li>Added <code>GlobalBatchTimeout</code> property that syncs with UI refresh rate</li> <li>Increased default batch size from 100 to 300 for better throughput</li> <li>Added <code>OnDpsRefreshRateChanged</code> handler in <code>AppConfig.cs</code> to update queue timeout dynamically</li> </ul> <p><strong>UI Location:</strong></p> <ul> <li>Settings → Performance → DPS Refresh Rate</li> <li>Dropdown with 4 options (Minimal/Low/Medium/High)</li> <li>Detailed tooltips explaining each option</li> <li>Changes take effect immediately without restart</li> </ul> <p><strong>User Impact:</strong></p> <ul> <li><strong>Eliminates lag when playing in-game</strong> - Lower refresh rates reduce CPU competition with the game</li> <li><strong>Customizable smoothness</strong> - Choose higher rates when tabbed out or on powerful PCs</li> <li><strong>Instant feedback</strong> - No restart required, change settings mid-combat</li> <li><strong>Recommended Settings:</strong> <ul> <li>Playing with game focused: <strong>Minimal (10 FPS)</strong> or <strong>Low (20 FPS)</strong></li> <li>Monitoring while tabbed out: <strong>Medium (30 FPS)</strong> or <strong>High (60 FPS)</strong></li> </ul> </li> </ul> <h2>Performance Improvements</h2> <h3>🚀 UI Thread Optimization</h3> <p><strong>Description:</strong> Improved UI responsiveness during intense combat by changing sorting operations from blocking to non-blocking.</p> <p><strong>Technical Change:</strong></p> <ul> <li>Changed <code>_dispatcher.Invoke()</code> to <code>_dispatcher.BeginInvoke()</code> with <code>Background</code> priority in <code>DpsStatisticsSubViewModel.cs</code></li> <li>Sorting operations no longer block the UI thread</li> <li>UI remains responsive even during heavy combat with many players</li> </ul> <p><strong>Impact:</strong></p> <ul> <li>Smoother UI interactions during raids and World Boss Carnage</li> <li>Reduced stuttering when many players are in combat</li> <li>Better overall application responsiveness</li> </ul> <h3>⚡ Batch Processing Optimization</h3> <p><strong>Description:</strong> Increased BattleLogQueue batch size from 100 to 300 for better throughput.</p> <p><strong>Impact:</strong></p> <ul> <li>More efficient processing of combat logs during intense fights</li> <li>Reduced queue backlog during high-activity scenarios</li> <li>Works in conjunction with configurable refresh rates for optimal performance</li> </ul> <h2>Bug Fixes</h2> <h3>🐛 Fixed ScopeTime Toggle Not Working (Current ↔ Total)</h3> <p><strong>Issue:</strong> When switching from Current to Total damage view, it worked correctly. However, switching back from Total to Current would fail to update the UI, leaving the meter stuck showing total damage.</p> <p><strong>Root Cause:</strong> The <code>OnScopeTimeChanged</code> handler was calling <code>UpdateData()</code>, which went through the throttled update path designed for combat data updates. When users manually toggled between Current/Total, the UI update would be delayed by the DPS refresh rate throttle (10-100ms depending on settings) or skipped entirely if a pending update was already scheduled.</p> <p><strong>User Report:</strong> "when I switch from current damage to total it works, but then switching back to current doesn't work"</p> <p><strong>Fix Applied:</strong></p> <ul> <li>Modified <code>OnScopeTimeChanged()</code> in <code>DpsStatisticsViewModel.cs</code> (lines 1049-1071)</li> <li>Changed from <code>UpdateData()</code> to <code>PerformUiUpdate()</code> to bypass throttling</li> <li>Modified <code>OnStatisticIndexChanged()</code> to use the same approach for metric switching (lines 1073-1086)</li> <li>User-initiated actions now update immediately without throttle delay</li> <li>Combat data updates continue to use throttling for performance</li> </ul> <p><strong>User Impact:</strong></p> <ul> <li>✅ Current ↔ Total toggle now works instantly in both directions</li> <li>✅ Metric switching (Damage/Healing/TakenDamage) updates immediately</li> <li>✅ No performance regression - combat updates still throttled as designed</li> <li>✅ Better responsiveness to manual UI interactions</li> </ul> <h3>🐛 Reduced Boss Death Delay</h3> <p><strong>Issue:</strong> After defeating a boss, the meter would continue tracking for too long (8 seconds) before archiving the fight as "Last Battle."</p> <p><strong>Fix Applied:</strong></p> <ul> <li>Reduced <code>BossDeathDelaySeconds</code> from 8 to 5 in <code>DataStorageV2.cs</code></li> <li>Combat now archives 3 seconds faster after boss death</li> </ul> <p><strong>User Impact:</strong></p> <ul> <li>Faster transition to "Last Battle" state after boss fights</li> <li>Meter stops tracking sooner when combat truly ends</li> <li>More responsive meter behavior at the end of encounters</li> </ul> <h2>Files Changed</h2> <h3>Added</h3> <ul> <li><code>BlueMeter.WPF/Models/DpsRefreshRate.cs</code> <ul> <li>New enum with 4 refresh rate options (Minimal, Low, Medium, High)</li> <li>Extension methods: <code>GetIntervalMs()</code> returns update interval in milliseconds</li> <li>Extension methods: <code>GetFps()</code> returns FPS value</li> <li>Comprehensive XML documentation for each option</li> </ul> </li> </ul> <h3>Modified</h3> <ul> <li> <p><code>BlueMeter.WPF/Config/AppConfig.cs</code></p> <ul> <li>Added <code>DpsRefreshRate</code> property (default: Low = 20 FPS)</li> <li>Added <code>OnDpsRefreshRateChanged</code> handler to update BattleLogQueue timeout (lines 290-295)</li> <li>Automatically syncs refresh rate with queue batch processing</li> </ul> </li> <li> <p><code>BlueMeter.WPF/ViewModels/DpsStatisticsViewModel.cs</code></p> <ul> <li>Changed <code>_uiUpdateThrottle</code> from constant to computed property (line 70)</li> <li>Now calculates throttle dynamically: <code>UiUpdateThrottle =&gt; TimeSpan.FromMilliseconds(AppConfig.DpsRefreshRate.GetIntervalMs())</code></li> <li>Updated throttle checks to use dynamic property (lines 349, 355)</li> <li>Improved comment documentation for UI update throttling</li> </ul> </li> <li> <p><code>BlueMeter.WPF/ViewModels/DpsStatisticsSubViewModel.cs</code></p> <ul> <li>Changed <code>_dispatcher.Invoke()</code> to <code>_dispatcher.BeginInvoke()</code> (line 98)</li> <li>Added <code>DispatcherPriority.Background</code> for sorting operations (line 120)</li> <li>Moved <code>UpdateItemIndices()</code> inside BeginInvoke block for consistency</li> <li>Added comment explaining non-blocking UI approach</li> </ul> </li> <li> <p><code>BlueMeter.WPF/Views/SettingsView.xaml</code></p> <ul> <li>Added new "Performance" section with CardHeader (lines 898-901)</li> <li>Added DPS Refresh Rate dropdown ComboBox (lines 906-933)</li> <li>Binds to <code>AppConfig.DpsRefreshRate</code> with TwoWay binding</li> <li>Added detailed info text with FPS explanations for each option (lines 936-955)</li> <li>Used bullet points (• symbol) for clear visual hierarchy</li> </ul> </li> <li> <p><code>BlueMeter.Core/Data/BattleLogQueue.cs</code></p> <ul> <li>Added <code>GlobalBatchTimeout</code> static property for UI-controlled timeout (line 36)</li> <li>Changed <code>_batchTimeout</code> from readonly to mutable field (line 25)</li> <li>Added <code>UpdateBatchTimeout()</code> method for runtime changes (line 40)</li> <li>Modified constructor to respect GlobalBatchTimeout if set (line 56)</li> <li>Increased default <code>batchSize</code> from 100 to 300 (line 50)</li> <li>Default timeout remains 50ms if not overridden</li> </ul> </li> <li> <p><code>BlueMeter.Core/Data/DataStorageV2.cs</code></p> <ul> <li>Reduced <code>BossDeathDelaySeconds</code> from 8 to 5 (line 37)</li> </ul> </li> </ul> <h2>Testing Notes</h2> <p><strong>DPS Refresh Rate:</strong></p> <ol> <li>Open Settings → Performance</li> <li>Verify DPS Refresh Rate dropdown is visible with 4 options</li> <li>Start combat and change refresh rate from Low to Minimal</li> <li>Observe immediate reduction in update frequency (numbers update slower)</li> <li>Change to High and observe faster updates</li> <li>Tab into game with Low/Minimal and verify reduced lag compared to before</li> <li>Tab out and use Medium/High for smoother monitoring</li> </ol> <p><strong>UI Thread Performance:</strong></p> <ol> <li>Join a raid or World Boss Carnage with 10+ players</li> <li>Observe smooth UI interactions (clicking, scrolling) during combat</li> <li>Verify no stuttering or freezing when player list updates</li> </ol> <p><strong>Boss Death Delay:</strong></p> <ol> <li>Defeat a boss in a raid</li> <li>Observe meter transitions to [Last Battle] within 5-6 seconds</li> <li>Verify fight is properly archived</li> </ol> <h2>Performance Comparison</h2> <h3>Before v1.5.4</h3> <ul> <li><strong>Fixed 200ms update throttle</strong> (5 FPS)</li> <li>Lag when tabbed into game due to CPU competition</li> <li>UI sorting blocks main thread during combat</li> <li>8-second delay before archiving boss fights</li> </ul> <h3>After v1.5.4</h3> <ul> <li><strong>Configurable 10-60 FPS</strong> (user choice)</li> <li>Minimal lag with Low/Minimal settings (10-20 FPS)</li> <li>Non-blocking UI sorting for smoother experience</li> <li>5-second delay before archiving (37% faster)</li> </ul> <p><strong>Real-World Impact:</strong></p> <ul> <li>User reported: "yeah it did [solve the lag]" after testing Minimal setting</li> <li>Estimated 50-70% reduction in in-game lag with Minimal (10 FPS) vs previous fixed throttle</li> <li>Allows smooth monitoring when tabbed out with Medium/High settings</li> </ul> <h2>Known Issues</h2> <p>None introduced by this release.</p> <h2>Upgrade Notes</h2> <p>This is a performance enhancement release. Simply replace your existing BlueMeter installation with v1.5.4.</p> <p><strong>Recommended Action After Upgrade:</strong></p> <ol> <li>Open Settings → Performance</li> <li>Test different DPS Refresh Rates to find your optimal setting</li> <li>Suggested starting point: <strong>Low (20 FPS)</strong> for most users</li> <li>If experiencing lag in-game: Switch to <strong>Minimal (10 FPS)</strong></li> <li>For monitoring while tabbed out: Try <strong>Medium (30 FPS)</strong> or <strong>High (60 FPS)</strong></li> </ol> <hr> <p><strong>Special Thanks:</strong></p> <ul> <li>Community member for detailed lag report and testing confirmation</li> </ul> caaatto tag:github.com,2008:Repository/1090097505/v1.5.3 2025-12-10T22:52:32Z v1.5.3 <h2>BlueMeter v1.5.3</h2> <h3>🚀 Installation Options</h3> <h4>Option 1: Professional Installer (Recommended for most users)</h4> <ol> <li>Download <code>BlueMeterSetup.exe</code></li> <li>Double-click to run the installer</li> <li>Follow the setup wizard</li> <li>.NET 8.0 will be automatically installed if needed</li> <li>BlueMeter will launch automatically after installation</li> </ol> <h4>Option 2: Portable Build (For developers/advanced users)</h4> <ol> <li>Download <code>BlueMeter-v1.5.3-windows-x64.zip</code></li> <li>Extract the ZIP file</li> <li>Double-click <code>setup.bat</code></li> <li>The script will build and launch BlueMeter</li> </ol> <h3>Requirements</h3> <ul> <li>Windows 10 or later (x64)</li> <li>.NET 8.0 (auto-installed by both installation methods)</li> </ul> <h3>Troubleshooting</h3> <p>See <code>INSTALL.md</code> for detailed instructions and troubleshooting.</p> <h3>Changelog</h3> <p>See commits since last release for changes.</p> caaatto tag:github.com,2008:Repository/1090097505/v1.5.2 2025-12-09T14:24:18Z Release v1.5.2 - Critical Bug Fix <h2>Critical Bug Fix - Race Condition Crash</h2> <h3>🐛 Fixed Race Condition Crash During Back-to-Back Raids</h3> <p>BlueMeter would crash after 2-3 consecutive raids/encounters, especially in passthrough mode with "clear on instance change" enabled.</p> <p><strong>Error Fixed:</strong> <code>System.ArgumentException: Destination array is not long enough to copy all the items in the collection</code></p> <h3>Root Cause</h3> <p>A threading race condition in <code>DataStorage.cs</code> where the packet processing thread and UI thread were simultaneously accessing DPS data dictionaries without synchronization.</p> <h3>Fix Applied</h3> <ul> <li>Added thread-safe locking (<code>_dpsDataLock</code>) to protect all DPS data dictionary operations</li> <li>Protected list creation in cached list properties</li> <li>Protected dictionary modifications and clearing operations</li> </ul> <h3>Impact</h3> <ul> <li>Eliminates crashes during extended play sessions with multiple consecutive encounters</li> <li>Minimal performance overhead from locking</li> <li>Fixes instability in high-activity scenarios (raids, World Boss Carnage)</li> </ul> <h3>Files Changed</h3> <ul> <li><code>BlueMeter.Core/Data/DataStorage.cs</code> - Added thread synchronization</li> </ul> <h3>Special Thanks</h3> <ul> <li>GitHub user <code>anguyen2015</code> for reporting the crash with detailed error logs</li> </ul> <hr> <h2>🚀 Installation Options</h2> <h4>Option 1: Professional Installer (Recommended for most users)</h4> <ol> <li>Download <code>BlueMeterSetup.exe</code></li> <li>Double-click to run the installer</li> <li>Follow the setup wizard</li> <li>.NET 8.0 will be automatically installed if needed</li> <li>BlueMeter will launch automatically after installation</li> </ol> <h4>Option 2: Portable Build (For developers/advanced users)</h4> <ol> <li>Download <code>BlueMeter-v1.5.2-windows-x64.zip</code></li> <li>Extract the ZIP file</li> <li>Double-click <code>setup.bat</code></li> <li>The script will build and launch BlueMeter</li> </ol> <h3>Requirements</h3> <ul> <li>Windows 10 or later (x64)</li> <li>.NET 8.0 (auto-installed by both installation methods)</li> </ul> <hr> <p><strong>Full Release Notes:</strong> <a href="https://github.com/caaatto/BlueMeter/blob/main/docs/RELEASE_NOTES_1.5.2.md">docs/RELEASE_NOTES_1.5.2.md</a></p> github-actions[bot] tag:github.com,2008:Repository/1090097505/v1.5.1 2025-12-08T22:23:11Z v1.5.1 <h2>BlueMeter v1.5.1</h2> <h3>🚀 Installation Options</h3> <h4>Option 1: Professional Installer (Recommended for most users)</h4> <ol> <li>Download <code>BlueMeterSetup.exe</code></li> <li>Double-click to run the installer</li> <li>Follow the setup wizard</li> <li>.NET 8.0 will be automatically installed if needed</li> <li>BlueMeter will launch automatically after installation</li> </ol> <h4>Option 2: Portable Build (For developers/advanced users)</h4> <ol> <li>Download <code>BlueMeter-v1.5.1-windows-x64.zip</code></li> <li>Extract the ZIP file</li> <li>Double-click <code>setup.bat</code></li> <li>The script will build and launch BlueMeter</li> </ol> <h3>Requirements</h3> <ul> <li>Windows 10 or later (x64)</li> <li>.NET 8.0 (auto-installed by both installation methods)</li> </ul> <h3>Troubleshooting</h3> <p>See <code>INSTALL.md</code> for detailed instructions and troubleshooting.</p> <h3>Changelog</h3> <p>See commits since last release for changes.</p> caaatto tag:github.com,2008:Repository/1090097505/v1.5.0 2025-12-08T20:41:56Z v1.5.0 <h2>BlueMeter v1.5.0</h2> <h3>🚀 Installation Options</h3> <h4>Option 1: Professional Installer (Recommended for most users)</h4> <ol> <li>Download <code>BlueMeterSetup.exe</code></li> <li>Double-click to run the installer</li> <li>Follow the setup wizard</li> <li>.NET 8.0 will be automatically installed if needed</li> <li>BlueMeter will launch automatically after installation</li> </ol> <h4>Option 2: Portable Build (For developers/advanced users)</h4> <ol> <li>Download <code>BlueMeter-v1.5.0-windows-x64.zip</code></li> <li>Extract the ZIP file</li> <li>Double-click <code>setup.bat</code></li> <li>The script will build and launch BlueMeter</li> </ol> <h3>Requirements</h3> <ul> <li>Windows 10 or later (x64)</li> <li>.NET 8.0 (auto-installed by both installation methods)</li> </ul> <h3>Troubleshooting</h3> <p>See <code>INSTALL.md</code> for detailed instructions and troubleshooting.</p> <h3>Changelog</h3> <p>See commits since last release for changes.</p> github-actions[bot] tag:github.com,2008:Repository/1090097505/v1.4.7 2025-12-08T13:19:56Z v1.4.7 - Last Battle Fix <h2>BlueMeter v1.4.7</h2> <h3>🚀 Installation Options</h3> <h4>Option 1: Professional Installer (Recommended for most users)</h4> <ol> <li>Download <code>BlueMeterSetup.exe</code></li> <li>Double-click to run the installer</li> <li>Follow the setup wizard</li> <li>.NET 8.0 will be automatically installed if needed</li> <li>BlueMeter will launch automatically after installation</li> </ol> <h4>Option 2: Portable Build (For developers/advanced users)</h4> <ol> <li>Download <code>BlueMeter-v1.4.7-windows-x64.zip</code></li> <li>Extract the ZIP file</li> <li>Double-click <code>setup.bat</code></li> <li>The script will build and launch BlueMeter</li> </ol> <h3>Requirements</h3> <ul> <li>Windows 10 or later (x64)</li> <li>.NET 8.0 (auto-installed by both installation methods)</li> </ul> <h3>Troubleshooting</h3> <p>See <code>INSTALL.md</code> for detailed instructions and troubleshooting.</p> <h3>Changelog</h3> <p>See commits since last release for changes.</p> caaatto tag:github.com,2008:Repository/1090097505/v1.4.6 2025-12-08T13:12:04Z v1.4.6 <h1>BlueMeter v1.4.6 - Critical Bug Fixes</h1> <p><strong>Release Date:</strong> December 8, 2025<br> <strong>Branch:</strong> <code>main</code><br> <strong>Status:</strong> ✅ Released</p> <hr> <h2>🐛 Critical Bug Fixes</h2> <h3>Meter Freeze After Timeout Fix</h3> <p>Fixed critical issue where the DPS meter would remain frozen and stop accepting new combat data after a timeout occurred followed by a manual reset.</p> <p><strong>Root Cause:</strong></p> <ul> <li>When combat timeout occurred, <code>_timeoutSectionClearedOnce</code> flag was set to true</li> <li>Manual reset via <code>ResetData()</code> or <code>ResetFullData()</code> did not reset this flag</li> <li>Meter remained in "timeout cleared" state, blocking all new data ingestion</li> <li>Only way to recover was to wait for new battle logs to trigger a section change</li> </ul> <p><strong>Impact:</strong></p> <ul> <li>Users experiencing timeouts had to restart BlueMeter to get meter working again</li> <li>Manual reset button became ineffective after any timeout</li> <li>Severely impacted user experience in long play sessions</li> </ul> <p><strong>Solution:</strong></p> <ul> <li>Added <code>_timeoutSectionClearedOnce = false</code> reset in both <code>ResetData()</code> and <code>ResetFullData()</code> methods</li> <li>Wrapped in proper <code>_sectionTimeoutLock</code> synchronization</li> <li>Meter now immediately accepts new data after manual reset, regardless of previous timeout state</li> </ul> <p><strong>Files Changed:</strong></p> <ul> <li><code>BlueMeter.Core/Data/DataStorageV2.cs</code> (Lines 954-962, 1108-1116)</li> </ul> <p><strong>Technical Details:</strong></p> <div class="highlight highlight-source-cs notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="// CRITICAL FIX: Reset timeout flag to allow meter to accept new data after manual reset // Without this, if timeout occurred before reset, meter stays frozen until new battle logs arrive lock (_sectionTimeoutLock) { _timeoutSectionClearedOnce = false; }"><pre><span class="pl-c">// CRITICAL FIX: Reset timeout flag to allow meter to accept new data after manual reset</span> <span class="pl-c">// Without this, if timeout occurred before reset, meter stays frozen until new battle logs arrive</span> <span class="pl-k">lock</span> <span class="pl-kos">(</span><span class="pl-s1">_sectionTimeoutLock</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">_timeoutSectionClearedOnce</span> <span class="pl-c1">=</span> <span class="pl-c1">false</span><span class="pl-kos">;</span> <span class="pl-kos">}</span></pre></div> <hr> <h3>Plugin Enable/Disable Logic Fix</h3> <p>Fixed issue where only the DPS Plugin was enabled, blocking access to all other plugins including History, Settings, etc.</p> <p><strong>Root Cause:</strong></p> <ul> <li>Previous code: <code>public bool IsEnabled =&gt; Plugin.GetType().Name == "DpsPlugin";</code></li> <li>This hardcoded check disabled all plugins except DpsPlugin</li> <li>Users could not access Chart History, Advanced Settings, or other features</li> </ul> <p><strong>Solution:</strong></p> <ul> <li>Changed to: <code>public bool IsEnabled =&gt; Plugin.PackageName != "BlueMeter.WPF.Plugins.BuiltIn.ModuleSolverPlugin";</code></li> <li>All plugins now enabled except Module Solver (intentionally disabled - under development)</li> <li>Restores full functionality of all production-ready plugins</li> </ul> <p><strong>Files Changed:</strong></p> <ul> <li><code>BlueMeter.WPF/ViewModels/PluginListItemViewModel.cs</code> (Line 37)</li> </ul> <hr> <h2>✨ User Experience Improvements</h2> <p><strong>Timeout Recovery:</strong></p> <ul> <li>✅ Manual reset now works correctly after timeouts</li> <li>✅ No need to restart BlueMeter after timeout events</li> <li>✅ Immediate data ingestion after reset button click</li> </ul> <p><strong>Plugin Access:</strong></p> <ul> <li>✅ Chart History accessible again</li> <li>✅ Settings panel accessible again</li> <li>✅ All production-ready plugins enabled</li> <li><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Module Solver temporarily disabled (under development)</li> </ul> <hr> <h2>🔧 Configuration</h2> <p>No configuration changes required. All fixes are automatic.</p> <hr> <h2>🚀 Migration Guide</h2> <h3>From v1.4.5 to v1.4.6</h3> <p><strong>No Breaking Changes!</strong></p> <ul> <li>✅ Fully backward compatible</li> <li>✅ Automatic fixes - no user action required</li> <li>✅ Existing configuration preserved</li> <li>✅ All features from v1.4.5 retained</li> </ul> <hr> <h2><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> Known Issues</h2> <p><strong>Module Solver Plugin:</strong></p> <ul> <li>Temporarily disabled while under development</li> <li>Will be re-enabled in future release after testing</li> </ul> <hr> <h2>🛠️ Technical Details</h2> <p><strong>Build Information:</strong></p> <ul> <li>.NET Version: 8.0</li> <li>Target Framework: net8.0-windows</li> <li>Build Status: ✅ 0 Errors, 0 Warnings</li> </ul> <p><strong>Files Changed:</strong> 2 files</p> <ul> <li>Modified files: 2</li> <li>Lines added: ~16</li> <li>Lines removed: ~2</li> </ul> <hr> <h2>💬 Feedback &amp; Support</h2> <p>If you encounter any issues:</p> <ol> <li>Report issues on GitHub: <a href="https://github.com/caaatto/BlueMeter">https://github.com/caaatto/BlueMeter</a></li> <li>Provide logs from <code>BlueMeter.WPF/bin/Release/net8.0-windows/logs/</code></li> </ol> <hr> <p><strong>Full Changelog:</strong> See commits on <code>main</code> branch</p> <p><strong>Previous Version:</strong> v1.4.5<br> <strong>Next Version:</strong> v1.5.0 (TBD - Skill Breakdown &amp; Module Solver)</p> github-actions[bot] tag:github.com,2008:Repository/1090097505/v1.4.5 2025-12-04T07:50:15Z BlueMeter v1.4.5 - Advanced Combat Logging & Bug Fixes <h2>BlueMeter v1.4.5</h2> <h3>🚀 Installation Options</h3> <h4>Option 1: Professional Installer (Recommended for most users)</h4> <ol> <li>Download <code>BlueMeterSetup.exe</code></li> <li>Double-click to run the installer</li> <li>Follow the setup wizard</li> <li>.NET 8.0 will be automatically installed if needed</li> <li>BlueMeter will launch automatically after installation</li> </ol> <h4>Option 2: Portable Build (For developers/advanced users)</h4> <ol> <li>Download <code>BlueMeter-v1.4.5-windows-x64.zip</code></li> <li>Extract the ZIP file</li> <li>Double-click <code>setup.bat</code></li> <li>The script will build and launch BlueMeter</li> </ol> <h3>Requirements</h3> <ul> <li>Windows 10 or later (x64)</li> <li>.NET 8.0 (auto-installed by both installation methods)</li> </ul> <h3>Troubleshooting</h3> <p>See <code>INSTALL.md</code> for detailed instructions and troubleshooting.</p> <h3>Changelog</h3> <p>See commits since last release for changes.</p> caaatto