{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by lamont-granquist"
        },
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by lamont-granquist"
        }
      ]
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/dev" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1518,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "7dd8ae27a93ecd315c3ee9338b474cad6d37f935",
            "branch" : [
              {
                "SHA1" : "7dd8ae27a93ecd315c3ee9338b474cad6d37f935",
                "name" : "refs/remotes/origin/dev"
              }
            ]
          },
          "revision" : {
            "SHA1" : "7dd8ae27a93ecd315c3ee9338b474cad6d37f935",
            "branch" : [
              {
                "SHA1" : "7dd8ae27a93ecd315c3ee9338b474cad6d37f935",
                "name" : "refs/remotes/origin/dev"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "7dd8ae27a93ecd315c3ee9338b474cad6d37f935",
        "branch" : [
          {
            "SHA1" : "7dd8ae27a93ecd315c3ee9338b474cad6d37f935",
            "name" : "refs/remotes/origin/dev"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/MuMech/MechJeb2.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "MechJeb2-2.15.1.0-1518.zip",
      "fileName" : "MechJeb2-2.15.1.0-1518.zip",
      "relativePath" : "MechJeb2-2.15.1.0-1518.zip"
    }
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#1518",
  "duration" : 22270,
  "estimatedDuration" : 21985,
  "executor" : None,
  "fullDisplayName" : "MechJeb2-Dev #1518",
  "id" : "1518",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 1518,
  "queueId" : 2406,
  "result" : "SUCCESS",
  "timestamp" : 1767723638053,
  "url" : "https://ksp.sarbian.com/jenkins/user/john/my-views/view/All/job/MechJeb2-Dev/1518/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "MechJebLib/PSG/AscentGuesser.cs",
          "MechJebLib/PSG/Problem.cs",
          "MechJebLib/Primitives/Dual.cs",
          "MechJebLib/PSG/VariableProxy.cs",
          "MechJebLibTest/PSGTests/AscentTests/RealRocketTests.cs",
          "MechJebLib/PSG/PhaseProxy.cs",
          "MechJebLib/PSG/Ascent.cs",
          "MechJebLib/PSG/AscentBuilder.cs",
          "MechJebLib/PSG/AscentProblem.cs",
          "MechJebLib/PSG/Optimizer.cs",
          "MechJebLib/Primitives/DualV3.cs",
          "MechJebLib/PSG/Solution.cs",
          "MechJeb2/MechJebModulePSGGlueBall.cs"
        ],
        "commitId" : "8dee74432f0e00ee28b9872741e74d12cf7b84ab",
        "timestamp" : 1767723457000,
        "author" : {
          "absoluteUrl" : "https://ksp.sarbian.com/jenkins/user/lamont",
          "fullName" : "lamont"
        },
        "authorEmail" : "lamont@scriptkiddie.org",
        "comment" : "Add Q-alpha constraints to the optimizer\u000a\u000aYou should now be able to choose something like 20m/s and 5deg/s\u000apitchover and it'll pick up guidance way before MaxQ.\u000a\u000aMay throw errors going through MaxQ, kind of surprised that in my\u000atests that it didn't, it should still pick it back up again just\u000afine and they should be ignorable until they get fixed.\u000a\u000aSigned-off-by: Lamont Granquist <lamont@scriptkiddie.org>\u000a",
        "date" : "2026-01-06 10:17:37 -0800",
        "id" : "8dee74432f0e00ee28b9872741e74d12cf7b84ab",
        "msg" : "Add Q-alpha constraints to the optimizer",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "MechJebLib/PSG/AscentGuesser.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJebLib/PSG/Problem.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJebLibTest/PSGTests/AscentTests/RealRocketTests.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJeb2/MechJebModulePSGGlueBall.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJebLib/PSG/PhaseProxy.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJebLib/Primitives/Dual.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJebLib/PSG/VariableProxy.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJebLib/PSG/Optimizer.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJebLib/PSG/AscentBuilder.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJebLib/PSG/AscentProblem.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJebLib/PSG/Solution.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJebLib/PSG/Ascent.cs"
          },
          {
            "editType" : "edit",
            "file" : "MechJebLib/Primitives/DualV3.cs"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://ksp.sarbian.com/jenkins/user/lamont",
      "fullName" : "lamont"
    }
  ]
}