<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user sarbian</shortDescription><userId>sarbian</userId><userName>sarbian</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>46</buildNumber><marked><SHA1>548e41fa29833d2844dba01aa167bf08403e259e</SHA1><branch><SHA1>548e41fa29833d2844dba01aa167bf08403e259e</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>548e41fa29833d2844dba01aa167bf08403e259e</SHA1><branch><SHA1>548e41fa29833d2844dba01aa167bf08403e259e</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>548e41fa29833d2844dba01aa167bf08403e259e</SHA1><branch><SHA1>548e41fa29833d2844dba01aa167bf08403e259e</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/MuMech/MechJeb2.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://ksp.sarbian.com/jenkins/user/azzurite/my-views/view/all/job/MechJeb2-Release/lastStableBuild/artifact</artifactsUrl><changesUrl>https://ksp.sarbian.com/jenkins/user/azzurite/my-views/view/all/job/MechJeb2-Release/changes</changesUrl><displayUrl>https://ksp.sarbian.com/jenkins/user/azzurite/my-views/view/all/job/MechJeb2-Release/lastStableBuild/</displayUrl><testsUrl>https://ksp.sarbian.com/jenkins/user/azzurite/my-views/view/all/job/MechJeb2-Release/lastStableBuild/testReport</testsUrl></action><artifact><displayPath>MechJeb2-2.15.2.0.zip</displayPath><fileName>MechJeb2-2.15.2.0.zip</fileName><relativePath>MechJeb2-2.15.2.0.zip</relativePath></artifact><building>false</building><displayName>#46</displayName><duration>24056</duration><estimatedDuration>22351</estimatedDuration><fullDisplayName>MechJeb2-Release #46</fullDisplayName><id>46</id><inProgress>false</inProgress><keepLog>false</keepLog><number>46</number><queueId>2509</queueId><result>SUCCESS</result><timestamp>1775222608647</timestamp><url>https://ksp.sarbian.com/jenkins/user/azzurite/my-views/view/all/job/MechJeb2-Release/46/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/MechJebModuleNodeExecutor.cs</affectedPath><commitId>0d7a1a76e3aa476308a8f4c752cd453d9457deb8</commitId><timestamp>1774489919000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>Allow physics timewarp while rotating to a maneuver node

Only reset to 1x warp if in on-rails timewarp.
</comment><date>2026-03-25 18:51:59 -0700</date><id>0d7a1a76e3aa476308a8f4c752cd453d9457deb8</id><msg>Allow physics timewarp while rotating to a maneuver node</msg><path><editType>edit</editType><file>MechJeb2/MechJebModuleNodeExecutor.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/MechJebModuleNodeExecutor.cs</affectedPath><commitId>1ef55d238f10ca0f762b30fb94ca11b0d93f84d7</commitId><timestamp>1774489935000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>Ignore roll angular velocity in node executor

Roll was included when determining if the craft had settled down, but
since it was deliberately left uncontrolled, the roll rate would never
decrease; this prevented the node executor from going to warp unless
'kicked' (when timewarp removes all angular momemtum).

Fixes #1981.
</comment><date>2026-03-25 18:52:15 -0700</date><id>1ef55d238f10ca0f762b30fb94ca11b0d93f84d7</id><msg>Ignore roll angular velocity in node executor</msg><path><editType>edit</editType><file>MechJeb2/MechJebModuleNodeExecutor.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/MechJebModuleAscentBaseAutopilot.cs</affectedPath><commitId>96b2ecd9ecdf07660129c07c68aa53ad4c3bd130</commitId><timestamp>1774489968000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>Fix Classic Ascent with sliders fully left

It sometimes takes a few ticks before the base game updates the vessel's
situation. This means that `VerticalHeadingTo` will disable the
actuation controls during this time.

If the vessel switches from `VERTICAL_ASCENT` to `GRAVITY_TURN` before
the situation changes, the actuation controls never get re-enabled
(`VerticalHeadingTo` never gets called while, according to the game, the
vessel has lifted off). This can happen if the pitch start velocity is
very small, for example if the auto-turn velocity slider is all the way
to the left.

This change makes sure that the actuation controls also get enabled
properly while in the `GRAVITY_TURN` phase of flight, by enabling the
actuation controls at the same time as the axis controls in the
`AttitudeTo` method.

Fixes the root cause of the problem in #2025.
</comment><date>2026-03-25 18:52:48 -0700</date><id>96b2ecd9ecdf07660129c07c68aa53ad4c3bd130</id><msg>Fix Classic Ascent with sliders fully left</msg><path><editType>edit</editType><file>MechJeb2/MechJebModuleAscentBaseAutopilot.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/MechJebModulePVGGlueBall.cs</affectedPath><commitId>0d9594f15836f01eb5e99c5923fe25cbb30d0bd6</commitId><timestamp>1774489998000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>Don't spam the log file with "Null"

When no exception occurred in the optimizer, PSG prints "Null" to the
debug log every second. This commit reduces this log spam; now it only
prints the exception if an exception actually occured.
</comment><date>2026-03-25 18:53:18 -0700</date><id>0d9594f15836f01eb5e99c5923fe25cbb30d0bd6</id><msg>Don't spam the log file with "Null"</msg><path><editType>edit</editType><file>MechJeb2/MechJebModulePVGGlueBall.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/MechJebModuleThrustController.cs</affectedPath><commitId>595c67ebdad7a95ba0687025583211bf8cfa38f8</commitId><timestamp>1774490035000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>Fix desiredThrust calculation in ProcessUllage()
</comment><date>2026-03-25 18:53:55 -0700</date><id>595c67ebdad7a95ba0687025583211bf8cfa38f8</id><msg>Fix desiredThrust calculation in ProcessUllage()</msg><path><editType>edit</editType><file>MechJeb2/MechJebModuleThrustController.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/MechJebModuleNodeExecutor.cs</affectedPath><affectedPath>MechJeb2/MechJebModuleAttitudeController.cs</affectedPath><commitId>22f841831210bf814d896654aa4d00a1b2b74000</commitId><timestamp>1774490066000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>Add 'Kill Rotation' flag to AttitudeController

Also clean up the 'SetAxisControl' toggles a bit; the axis control
settings were set the same in three different places. Now it's done only
once.
</comment><date>2026-03-25 18:54:26 -0700</date><id>22f841831210bf814d896654aa4d00a1b2b74000</id><msg>Add 'Kill Rotation' flag to AttitudeController</msg><path><editType>edit</editType><file>MechJeb2/MechJebModuleNodeExecutor.cs</file></path><path><editType>edit</editType><file>MechJeb2/MechJebModuleAttitudeController.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/MechJebModuleNodeExecutor.cs</affectedPath><affectedPath>MechJeb2/MechJebModuleManeuverPlanner.cs</affectedPath><commitId>d8c71aec6688d4280e5c4aa72233796a8f53cf7c</commitId><timestamp>1774490082000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>Use 'Kill Rotation' flag in NodeExecutor
</comment><date>2026-03-25 18:54:42 -0700</date><id>d8c71aec6688d4280e5c4aa72233796a8f53cf7c</id><msg>Use 'Kill Rotation' flag in NodeExecutor</msg><path><editType>edit</editType><file>MechJeb2/MechJebModuleNodeExecutor.cs</file></path><path><editType>edit</editType><file>MechJeb2/MechJebModuleManeuverPlanner.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/ComputerModule.cs</affectedPath><affectedPath>MechJeb2/DisplayModule.cs</affectedPath><commitId>9b2cfca7db8fb83f65dee394e4a301d92a9ba179</commitId><timestamp>1774490155000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>fix: feature unexpectedly unlocking in career mode
</comment><date>2026-03-25 18:55:55 -0700</date><id>9b2cfca7db8fb83f65dee394e4a301d92a9ba179</id><msg>fix: feature unexpectedly unlocking in career mode</msg><path><editType>edit</editType><file>MechJeb2/ComputerModule.cs</file></path><path><editType>edit</editType><file>MechJeb2/DisplayModule.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>Parts/MechJeb2_AR202/part.cfg</affectedPath><commitId>f80209908dc9c8b38ee9e296fecf331dfcaebc32</commitId><timestamp>1774490171000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>fix: name mismatch in the unlock conditions for AscentMenu(AscentGuidance) feature.
</comment><date>2026-03-25 18:56:11 -0700</date><id>f80209908dc9c8b38ee9e296fecf331dfcaebc32</id><msg>fix: name mismatch in the unlock conditions for AscentMenu(AscentGuidance) feature.</msg><path><editType>edit</editType><file>Parts/MechJeb2_AR202/part.cfg</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/MechJebModuleStagingController.cs</affectedPath><commitId>1db1e8b8f1fb421fbfc598e300edf2faf83a35e6</commitId><timestamp>1774714079000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>For hotstaging, sum stages with the same number

If a stage has ullage motors that light at the same time as the main
engine, then hotstaging the _next_ stage does not work properly. Since
both the ullage motors and the "regular" engine have the same KSP stage
number, hotstaging starts when the ullage motors have less than
`HotStagingLeadTime` seconds left to burn, even if the main engine burn
time is much longer.

With this change, all burn times with the same KSP stage are added up
to calculate the `LastNonZeroDVStageBurnTime`.
</comment><date>2026-03-28 09:07:59 -0700</date><id>1db1e8b8f1fb421fbfc598e300edf2faf83a35e6</id><msg>For hotstaging, sum stages with the same number</msg><path><editType>edit</editType><file>MechJeb2/MechJebModuleStagingController.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>Localization/en-us.cfg</affectedPath><commitId>3ba80142b2e45ec72ff5fcaf1acc00f86f4ab7f6</commitId><timestamp>1774714110000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>grammar fix

rescued from #2025

Signed-off-by: Lamont Granquist &lt;lamont@scriptkiddie.org&gt;
</comment><date>2026-03-28 09:08:30 -0700</date><id>3ba80142b2e45ec72ff5fcaf1acc00f86f4ab7f6</id><msg>grammar fix</msg><path><editType>edit</editType><file>Localization/en-us.cfg</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJebLibTest/FunctionsTests.cs</affectedPath><affectedPath>MechJebLib/Functions/Astro.cs</affectedPath><commitId>979836c1a02604b42b2392f18a119097ae14efb7</commitId><timestamp>1774714135000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>Fix TimeToPlane for equatorial orbits

And make the tests green.

Signed-off-by: Lamont Granquist &lt;lamont@scriptkiddie.org&gt;
</comment><date>2026-03-28 09:08:55 -0700</date><id>979836c1a02604b42b2392f18a119097ae14efb7</id><msg>Fix TimeToPlane for equatorial orbits</msg><path><editType>edit</editType><file>MechJebLibTest/FunctionsTests.cs</file></path><path><editType>edit</editType><file>MechJebLib/Functions/Astro.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>Localization/fr-fr.cfg</affectedPath><affectedPath>Localization/en-us.cfg</affectedPath><commitId>6a6fbb1f3563d85151177f66c7e75641b2db0758</commitId><timestamp>1774714158000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>fix two strings missing in en and fr localization
</comment><date>2026-03-28 09:09:18 -0700</date><id>6a6fbb1f3563d85151177f66c7e75641b2db0758</id><msg>fix two strings missing in en and fr localization</msg><path><editType>edit</editType><file>Localization/fr-fr.cfg</file></path><path><editType>edit</editType><file>Localization/en-us.cfg</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/MechJebModuleAscentBaseAutopilot.cs</affectedPath><commitId>c767cd8c8de514f6ca108b9ee8c5602d8e54fc9b</commitId><timestamp>1774714186000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>Commit fixes the bug from issue #2048

The bug occurs when using the autoascent feature for
negative inclination orbits. Namely, the circularization burn was
explicitly trying to achieve the _abs(inclination)_ instead of the target.

The bug was fixed by removing the `Math.Abs()` from the
OrbitalManeuverCalculator.DeltaVToChangeInclination input.
</comment><date>2026-03-28 09:09:46 -0700</date><id>c767cd8c8de514f6ca108b9ee8c5602d8e54fc9b</id><msg>Commit fixes the bug from issue #2048</msg><path><editType>edit</editType><file>MechJeb2/MechJebModuleAscentBaseAutopilot.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/MechJebModulePVGGlueBall.cs</affectedPath><commitId>6f6320af837908b46ab294fb95a72951d588c287</commitId><timestamp>1774714231000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName></author><authorEmail>lamont@scriptkiddie.org</authorEmail><comment>Fix clamping of attach altitude

It should be between peR and apR (if apR &gt; 0). Also clamp apR to be &lt;0
or &gt;= peR.
</comment><date>2026-03-28 09:10:31 -0700</date><id>6f6320af837908b46ab294fb95a72951d588c287</id><msg>Fix clamping of attach altitude</msg><path><editType>edit</editType><file>MechJeb2/MechJebModulePVGGlueBall.cs</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>MechJeb2/Properties/AssemblyInfo.cs</affectedPath><commitId>548e41fa29833d2844dba01aa167bf08403e259e</commitId><timestamp>1775222681000</timestamp><author><absoluteUrl>https://ksp.sarbian.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>v2.15.2
</comment><date>2026-04-03 15:24:41 +0200</date><id>548e41fa29833d2844dba01aa167bf08403e259e</id><msg>v2.15.2</msg><path><editType>edit</editType><file>MechJeb2/Properties/AssemblyInfo.cs</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://ksp.sarbian.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName><id>noreply</id></culprit><culprit><absoluteUrl>https://ksp.sarbian.com/jenkins/user/lamont</absoluteUrl><fullName>lamont</fullName><id>lamont</id></culprit></freeStyleBuild>