{
  "_class" : "org.jenkinsci.plugins.workflow.job.WorkflowRun",
  "actions" : [
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "net.uaznia.lukanus.hudson.plugins.gitparameter.GitParameterValue",
          "name" : "BRANCH",
          "value" : "origin/clubb_case_runner"
        },
        {
          "_class" : "hudson.model.BooleanParameterValue",
          "name" : "INCLUDE_GENERATED_PYTESTS",
          "value" : True
        }
      ]
    },
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UserIdCause",
          "shortDescription" : "Started by user agent_dev",
          "userId" : "agent_dev",
          "userName" : "agent_dev"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 0,
      "buildableTimeMillis" : 0,
      "buildingDurationMillis" : 69994,
      "executingTimeMillis" : 61200,
      "executorUtilization" : 0.87,
      "subTaskCount" : 1,
      "waitingDurationMillis" : 5972,
      "waitingTimeMillis" : 5972
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/pytest_cleanup" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 7,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "56aa733c290ca067dc886adda228251f718712ad",
            "branch" : [
              {
                "SHA1" : "56aa733c290ca067dc886adda228251f718712ad",
                "name" : "refs/remotes/origin/pytest_cleanup"
              }
            ]
          },
          "revision" : {
            "SHA1" : "56aa733c290ca067dc886adda228251f718712ad",
            "branch" : [
              {
                "SHA1" : "56aa733c290ca067dc886adda228251f718712ad",
                "name" : "refs/remotes/origin/pytest_cleanup"
              }
            ]
          }
        },
        "refs/remotes/origin/clubb_case_runner" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 9,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "0c985605a47a651c813c6697e3c3c4e32365f9c7",
            "branch" : [
              {
                "SHA1" : "0c985605a47a651c813c6697e3c3c4e32365f9c7",
                "name" : "refs/remotes/origin/clubb_case_runner"
              }
            ]
          },
          "revision" : {
            "SHA1" : "0c985605a47a651c813c6697e3c3c4e32365f9c7",
            "branch" : [
              {
                "SHA1" : "0c985605a47a651c813c6697e3c3c4e32365f9c7",
                "name" : "refs/remotes/origin/clubb_case_runner"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "0c985605a47a651c813c6697e3c3c4e32365f9c7",
        "branch" : [
          {
            "SHA1" : "0c985605a47a651c813c6697e3c3c4e32365f9c7",
            "name" : "refs/remotes/origin/clubb_case_runner"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/larson-group/clubb.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.workflow.libs.LibrariesAction"
    },
    {
      
    },
    {
      "_class" : "hudson.tasks.junit.TestResultAction",
      "failCount" : 0,
      "skipCount" : 0,
      "totalCount" : 585,
      "urlName" : "testReport"
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    },
    {
      "_class" : "org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction"
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.workflow.job.views.FlowGraphAction"
    },
    {
      
    },
    {
      
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#9",
  "duration" : 69994,
  "estimatedDuration" : 70381,
  "executor" : None,
  "fullDisplayName" : "clubb_branch_dash #9",
  "id" : "9",
  "keepLog" : False,
  "number" : 9,
  "queueId" : 10829,
  "result" : "SUCCESS",
  "timestamp" : 1792262130297,
  "url" : "https://carson.math.uwm.edu/jenkins/view/clubb_branch_tests/job/clubb_branch_dash/9/",
  "changeSets" : [
    {
      "_class" : "hudson.plugins.git.GitChangeSetList",
      "items" : [
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "run_scripts/run_scm_loss.py",
            "clubb_jax/pytests/auto_llm_generated_pytests/test_device_selection.py",
            "clubb_jax/pytests/auto_llm_generated_pytests/test_jax_cli_options.py",
            "utilities/time_clubb.py",
            "utilities/timing_profiles.py",
            "tests/pytests/auto_llm_generated_pytests/test_scm_jax_driver_test.py",
            "run_scripts/run_tuner_job.py",
            "utilities/pytests/test_time_clubb.py",
            "utilities/pytests/test_create_case_namelist.py"
          ],
          "commitId" : "ca95e8ec8301f3e6088664879410da55291165b2",
          "timestamp" : 1792202474000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/huebler",
            "fullName" : "Gunther Huebler"
          },
          "authorEmail" : "huebler@uwm.edu",
          "comment" : "Complete case-runner procedure descriptions\u000a\u000aDescribe the remaining changed CLI, test and profile routines under the current\u000adocumentation standards. Executable Python ASTs are unchanged from f66ccf2ff,\u000athe revision running in Jenkins; existing validation still applies.\u000a",
          "date" : "2026-10-16 21:01:14 -0500",
          "id" : "ca95e8ec8301f3e6088664879410da55291165b2",
          "msg" : "Complete case-runner procedure descriptions",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/test_device_selection.py"
            },
            {
              "editType" : "edit",
              "file" : "run_scripts/run_tuner_job.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/timing_profiles.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/test_jax_cli_options.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/pytests/test_time_clubb.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/time_clubb.py"
            },
            {
              "editType" : "edit",
              "file" : "run_scripts/run_scm_loss.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/pytests/test_create_case_namelist.py"
            },
            {
              "editType" : "edit",
              "file" : "tests/pytests/auto_llm_generated_pytests/test_scm_jax_driver_test.py"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "clubb_jax/src/clubb_case_initalization.py",
            "clubb_jax/src/CLUBB_core/code_timer_module.py",
            "clubb_jax/src/clubb_standalone.py",
            "utilities/README.md",
            "utilities/time_clubb.py",
            "clubb_jax/pytests/auto_llm_generated_pytests/test_code_timer_module.py",
            "clubb_jax/src/advance_clubb_to_end.py",
            "clubb_jax/README.md"
          ],
          "commitId" : "607c58bdb517fa6677567b5015cb1db2a5554915",
          "timestamp" : 1792207323000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/huebler",
            "fullName" : "Gunther Huebler"
          },
          "authorEmail" : "huebler@uwm.edu",
          "comment" : "Separate JAX timing from case runner changes\u000a\u000aKeep runtime selection and process reuse independent so the case runner\u000acan merge into master before JAX timing. Shared runner/CLI/timing\u000achecks pass (445 tests, including provisional coverage).\u000a",
          "date" : "2026-10-16 22:22:03 -0500",
          "id" : "607c58bdb517fa6677567b5015cb1db2a5554915",
          "msg" : "Separate JAX timing from case runner changes",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/clubb_standalone.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/clubb_case_initalization.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/README.md"
            },
            {
              "editType" : "delete",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/test_code_timer_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/README.md"
            },
            {
              "editType" : "delete",
              "file" : "clubb_jax/src/CLUBB_core/code_timer_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/advance_clubb_to_end.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/time_clubb.py"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "clubb_jax/src/clubb_standalone.py",
            "utilities/README.md",
            "utilities/pytests/auto_llm_generated_pytests/test_timing_workers.py",
            "run_scripts/README.md",
            "utilities/pytests/auto_llm_generated_pytests/test_loss_cli.py",
            "utilities/clubb_case_runner.py",
            "run_scripts/run_scm.py",
            "clubb_python_driver/clubb_standalone.py",
            "src/clubb_standalone.F90",
            "run_scripts/run_scm_loss.py",
            "utilities/tests/run_case_runner_test.py",
            "utilities/time_clubb.py",
            "clubb_jax/src/Microphys/microphys_init_cleanup.py",
            "utilities/create_case_namelist.py",
            "utilities/pytests/auto_llm_generated_pytests/test_clubb_case_runner.py"
          ],
          "commitId" : "2c4fa0aa2e5c816571ac586013f9ad27e80671a8",
          "timestamp" : 1792208789000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/huebler",
            "fullName" : "Gunther Huebler"
          },
          "authorEmail" : "huebler@uwm.edu",
          "comment" : "Document case runner lifecycle and timing\u000a\u000aClarify process reuse, model cleanup, runner status and timing boundaries.\u000aImprove procedure descriptions and runnable examples without changing logic.\u000a\u000aShared checks pass (445); JAX reuse and native timing README examples pass.\u000a",
          "date" : "2026-10-16 22:46:29 -0500",
          "id" : "2c4fa0aa2e5c816571ac586013f9ad27e80671a8",
          "msg" : "Document case runner lifecycle and timing",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "run_scripts/run_scm.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_driver/clubb_standalone.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/clubb_case_runner.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/README.md"
            },
            {
              "editType" : "edit",
              "file" : "utilities/pytests/auto_llm_generated_pytests/test_timing_workers.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/tests/run_case_runner_test.py"
            },
            {
              "editType" : "edit",
              "file" : "run_scripts/run_scm_loss.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/pytests/auto_llm_generated_pytests/test_loss_cli.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/Microphys/microphys_init_cleanup.py"
            },
            {
              "editType" : "edit",
              "file" : "src/clubb_standalone.F90"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/clubb_standalone.py"
            },
            {
              "editType" : "edit",
              "file" : "run_scripts/README.md"
            },
            {
              "editType" : "edit",
              "file" : "utilities/time_clubb.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/create_case_namelist.py"
            },
            {
              "editType" : "edit",
              "file" : "utilities/pytests/auto_llm_generated_pytests/test_clubb_case_runner.py"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "src/Microphys/microphys_init_cleanup.F90"
          ],
          "commitId" : "d9e8b9588ff7b16679ca79b67fcf5382bcc723c4",
          "timestamp" : 1792209029000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/noreply",
            "fullName" : "noreply"
          },
          "authorEmail" : "noreply@github.com",
          "comment" : "Reset microphysics defaults when initializing another case (#1398)\u000a\u000aRestore module and saved-local namelist defaults before reading a new case.\u000aThis prevents omitted settings from inheriting the previous case's values. This isn't an issue for any way that clubb is currently run in the codebase, but would potentially cause an issue for a future use case (this is foreshadowing).\u000a",
          "date" : "2026-10-16 22:50:29 -0500",
          "id" : "d9e8b9588ff7b16679ca79b67fcf5382bcc723c4",
          "msg" : "Reset microphysics defaults when initializing another case (#1398)",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "src/Microphys/microphys_init_cleanup.F90"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            ".agents/skills/clubb-fortran-format/SKILL.md",
            ".agents/skills/clubb-fortran-port/SKILL.md"
          ],
          "commitId" : "3baa924b39a5ad3627f7ba2b6bc34e509fb16773",
          "timestamp" : 1792211462000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/huebler",
            "fullName" : "Gunther Huebler"
          },
          "authorEmail" : "huebler@uwm.edu",
          "comment" : "Document Fortran whitespace conventions\u000a\u000aSeparate control flow and continued statements, and align small groups\u000aof related one-liners. Prefer recently maintained examples and share\u000athe guidance with the porting workflow. Both skills pass validation.\u000a",
          "date" : "2026-10-16 23:31:02 -0500",
          "id" : "3baa924b39a5ad3627f7ba2b6bc34e509fb16773",
          "msg" : "Document Fortran whitespace conventions",
          "paths" : [
            {
              "editType" : "edit",
              "file" : ".agents/skills/clubb-fortran-format/SKILL.md"
            },
            {
              "editType" : "edit",
              "file" : ".agents/skills/clubb-fortran-port/SKILL.md"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "clubb_jax/src/CLUBB_core/sfc_varnce_module.py",
            "clubb_jax/src/CLUBB_core/new_hybrid_pdf_main.py",
            "clubb_jax/src/CLUBB_core/model_flags.py",
            "clubb_jax/src/CLUBB_core/adg1_adg2_3d_luhar_pdf.py",
            "clubb_jax/src/CLUBB_core/parameters_tunable.py",
            "clubb_jax/src/CLUBB_core/precipitation_fraction.py",
            "clubb_jax/src/CLUBB_core/interpolation.py",
            "clubb_jax/src/CLUBB_core/advance_wp2_wp3_module.py",
            "clubb_jax/src/CLUBB_core/setup_clubb_pdf_params.py",
            "clubb_jax/src/CLUBB_core/advance_windm_edsclrm_module.py",
            "clubb_jax/src/CLUBB_core/jax_stats.py",
            "clubb_jax/src/CLUBB_core/file_functions.py",
            "clubb_jax/src/CLUBB_core/advance_clubb_core_module.py",
            "clubb_jax/src/CLUBB_core/grid_class.py",
            "clubb_jax/src/CLUBB_core/advance_xm_wpxp_module.py",
            "clubb_jax/src/CLUBB_core/advance_xp2_xpyp_module.py",
            "clubb_jax/src/CLUBB_core/mono_flux_limiter.py",
            "clubb_jax/src/CLUBB_core/fill_holes.py",
            "clubb_jax/src/CLUBB_core/stats_netcdf.py",
            "clubb_jax/src/CLUBB_core/clip_explicit.py",
            "clubb_jax/src/CLUBB_core/mixing_length.py",
            "clubb_jax/src/CLUBB_core/err_info.py",
            "clubb_jax/pytests/auto_llm_generated_pytests/test_sfc_varnce_diagnostics.py",
            "clubb_jax/src/CLUBB_core/pdf_params.py",
            "clubb_jax/pytests/auto_llm_generated_pytests/test_core_diagnostics.py",
            "clubb_jax/src/CLUBB_core/remapping_module.py",
            "clubb_jax/src/CLUBB_core/sponge_layer_damping.py",
            "clubb_jax/src/CLUBB_core/new_pdf.py",
            "clubb_jax/src/CLUBB_core/matrix_operations.py",
            "clubb_jax/src/CLUBB_core/pdf_closure_module.py",
            "clubb_jax/src/CLUBB_core/pos_definite_module.py",
            "clubb_jax/src/CLUBB_core/matrix_solver_wrapper.py",
            "clubb_jax/src/CLUBB_core/numerical_check.py",
            "clubb_jax/src/CLUBB_core/new_tsdadg_pdf.py",
            "clubb_jax/src/CLUBB_core/corr_varnce_module.py"
          ],
          "commitId" : "c47faf30cea562966e64eedc259a5074c6cf89b1",
          "timestamp" : 1792221315000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/noreply",
            "fullName" : "noreply"
          },
          "authorEmail" : "noreply@github.com",
          "comment" : "Restore missing debug printouts in JAX core (#1390)\u000a\u000a* Restore missing debug printouts in JAX core\u000a\u000aThe port kept many failure checks but omitted their Fortran messages, making\u000afailed columns and solvers difficult to diagnose. Restore runtime messages,\u000acolumn headers and available field dumps with the source debug gates. Record\u000adiagnostics needing unported machinery in the skip report.\u000a\u000aBFB is not established by the available comparisons. All 23 curated CPU\u000aJAX/Fortran cases matched within default tolerances: absolute 1e-7 and\u000apercentage 1e-7%, or 0.001% for the curated Morrison cases. Runs used four\u000acolumns, standard statistics and existing durations/caps. Separately, 24\u000astarting-tree kernel comparisons found exactly equal result/state values.\u000a\u000aThe CPU JAX suite passed 787 tests, including compiled diagnostic checks;\u000athe focused rerun passed 14. Source/diff review and git diff --check passed.\u000a\u000a* Remove diagnostic restoration report\u000a\u000aRemove the standalone report on intentionally skipped diagnostics. Observed\u000aFortran differences remain documented in the affected JAX modules.\u000a\u000aThis removes documentation only, so model/output BFB is not applicable.\u000aDiff review, a tracked-file reference search and git diff --check passed.\u000aRuntime tests were not rerun for this deletion.\u000a\u000a* Identify scalar fields in solver diagnostics\u000a\u000aThe separate scalar solves all printed the same generic field label. Restore\u000athe Fortran names sclrp2, sclrprtp and sclrpthlp so a failure identifies which\u000avariance or covariance solve failed.\u000a\u000aSource comparison confirms the three labels match their Fortran call sites.\u000aPython syntax and whitespace checks passed. Jenkins validation will exercise\u000athe published revision.\u000a",
          "date" : "2026-10-17 02:15:15 -0500",
          "id" : "c47faf30cea562966e64eedc259a5074c6cf89b1",
          "msg" : "Restore missing debug printouts in JAX core (#1390)",
          "paths" : [
            {
              "editType" : "add",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/test_core_diagnostics.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/advance_clubb_core_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/new_hybrid_pdf_main.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/new_pdf.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/mono_flux_limiter.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/matrix_solver_wrapper.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/advance_xm_wpxp_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/fill_holes.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/new_tsdadg_pdf.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/remapping_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/parameters_tunable.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/precipitation_fraction.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/advance_xp2_xpyp_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/err_info.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/interpolation.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/jax_stats.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/matrix_operations.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/pdf_params.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/setup_clubb_pdf_params.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/advance_windm_edsclrm_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/corr_varnce_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/sfc_varnce_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/stats_netcdf.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/grid_class.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/adg1_adg2_3d_luhar_pdf.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/numerical_check.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/model_flags.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/file_functions.py"
            },
            {
              "editType" : "add",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/test_sfc_varnce_diagnostics.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/advance_wp2_wp3_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/clip_explicit.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/mixing_length.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/pdf_closure_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/pos_definite_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/sponge_layer_damping.py"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "clubb_jax/pytests/auto_llm_generated_pytests/test_windm_edsclrm_scalar_indices.py",
            "clubb_jax/pytests/auto_llm_generated_pytests/test_radiation_error_diagnostics.py",
            "clubb_jax/src/CLUBB_core/advance_windm_edsclrm_module.py",
            "clubb_jax/pytests/auto_llm_generated_pytests/test_xp2_error_diagnostics.py",
            "clubb_jax/src/CLUBB_core/err_info.py",
            "clubb_jax/pytests/auto_llm_generated_pytests/test_jit_compile.py",
            "clubb_jax/src/CLUBB_core/__init__.py",
            "clubb_jax/src/advance_clubb_to_end.py",
            "clubb_jax/src/CLUBB_core/numerical_check.py",
            "clubb_jax/src/CLUBB_core/err_info_codes.py",
            "clubb_jax/src/CLUBB_core/advance_xp2_xpyp_module.py",
            "clubb_python_api/JAX_INTEROPERABILITY_PROPOSAL.md",
            "clubb_jax/src/Radiation/radiation_module.py"
          ],
          "commitId" : "aa8c2aa4037dda69d686ca97bcbbe1a8208401fd",
          "timestamp" : 1792259885000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/noreply",
            "fullName" : "noreply"
          },
          "authorEmail" : "noreply@github.com",
          "comment" : "Remove the JAX error-message code registry (#1401)\u000a\u000a* Remove the JAX error-message code registry\u000a\u000aPrint failure details at the runtime checks that detect them. Remove the\u000aextra reason_code field and its setters, decoder, initialization/reset\u000ahandling and exports; retain the normal per-column fatal-error status.\u000aUpdate the scalar-guard assertions and add cached-call diagnostic checks.\u000a\u000aLocal CPU checks passed for the ErrInfo pytree, diagnostic output, driver\u000adebug gates and state reset/batching behavior (65 cases across five modules).\u000a\u000a* Correct the multiple-LHS diagnostic test's wp3 grid\u000a\u000aAllocate synthetic wp3 on thermodynamic levels, as required by\u000acalc_wp3_on_wp2, so the test reaches the multiple-LHS guard during tracing.\u000a\u000aThe 21 selected CPU diagnostic checks pass, covering cached-call output,\u000aper-column fatal status and preservation of fields on the unsupported path.\u000a\u000a* Restore the C2 explanation in the multiple-LHS diagnostic\u000a\u000aName C2rt, C2thl and C2rtthl when their unequal values prevent a single-LHS\u000asolve. Keep the direct runtime print and existing fatal-status handling.\u000a\u000aThe focused CPU cached-call test passes, including the restored explanation,\u000aquiet valid calls and preservation of incoming fields on failure.\u000a\u000a* Revert \"Restore the C2 explanation in the multiple-LHS diagnostic\"\u000a\u000aThis reverts commit 170a13e2bc7af24e92d8d8bc9de9d9db601921ed.\u000a\u000a* List single-LHS requirements in the JAX diagnostic\u000a\u000aPrint the approved static requirements after the unsupported multiple-LHS\u000amessage: explicit turbulent advection or ADG1, plus per-column equivalence\u000aof C2thl and C2rtthl to C2rt within the relative epsilon tolerance.\u000a\u000aThe focused CPU cached-call test passes, checking the listed requirements,\u000aquiet valid calls and preservation of incoming fields and fatal status.\u000a",
          "date" : "2026-10-17 12:58:05 -0500",
          "id" : "aa8c2aa4037dda69d686ca97bcbbe1a8208401fd",
          "msg" : "Remove the JAX error-message code registry (#1401)",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/test_jit_compile.py"
            },
            {
              "editType" : "delete",
              "file" : "clubb_jax/src/CLUBB_core/err_info_codes.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/advance_xp2_xpyp_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_python_api/JAX_INTEROPERABILITY_PROPOSAL.md"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/advance_clubb_to_end.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/test_windm_edsclrm_scalar_indices.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/Radiation/radiation_module.py"
            },
            {
              "editType" : "add",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/test_radiation_error_diagnostics.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/advance_windm_edsclrm_module.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/__init__.py"
            },
            {
              "editType" : "add",
              "file" : "clubb_jax/pytests/auto_llm_generated_pytests/test_xp2_error_diagnostics.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/err_info.py"
            },
            {
              "editType" : "edit",
              "file" : "clubb_jax/src/CLUBB_core/numerical_check.py"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            ".agents/skills/clubb-jax-port/SKILL.md",
            ".agents/skills/clubb-testing-and-reporting/SKILL.md",
            ".agents/skills/clubb-documentation/change-messages/SKILL.md"
          ],
          "commitId" : "6e48f97c2a96bc78fb498c82f1ed0bb690235349",
          "timestamp" : 1792260807000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/noreply",
            "fullName" : "noreply"
          },
          "authorEmail" : "noreply@github.com",
          "comment" : "Restrict BIT_CHANGING guidance to Fortran result changes (#1399)\u000a\u000aKeep JAX numerical acceptance focused on agreement with the corresponding\u000aFortran implementation rather than preserving earlier JAX output. Clarify\u000athe reporting rule and link it from the JAX porting workflow.\u000a\u000aAll 21 skill schemas, 112 local links and 7 heading anchors pass, along with\u000adiff formatting. Only three skill Markdown files change.\u000a",
          "date" : "2026-10-17 13:13:27 -0500",
          "id" : "6e48f97c2a96bc78fb498c82f1ed0bb690235349",
          "msg" : "Restrict BIT_CHANGING guidance to Fortran result changes (#1399)",
          "paths" : [
            {
              "editType" : "edit",
              "file" : ".agents/skills/clubb-testing-and-reporting/SKILL.md"
            },
            {
              "editType" : "edit",
              "file" : ".agents/skills/clubb-jax-port/SKILL.md"
            },
            {
              "editType" : "edit",
              "file" : ".agents/skills/clubb-documentation/change-messages/SKILL.md"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "jenkins_tests/clubb_driver/Jenkinsfile",
            "tests/README.md",
            "utilities/README.md",
            "tests/case_runner_lifecycle_test.py",
            "utilities/tests/run_case_runner_test.py"
          ],
          "commitId" : "167076807d2a8cfe95c58da710eaee8f53994d00",
          "timestamp" : 1792261464000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/huebler",
            "fullName" : "Gunther Huebler"
          },
          "authorEmail" : "huebler@uwm.edu",
          "comment" : "Run case runner lifecycle checks in the driver pipeline\u000a\u000aMove the workflow to tests/case_runner_lifecycle_test.py and run native,\u000aPython and CPU JAX checks before the existing driver comparisons. Keep\u000athe case sequence and exact comparison assertions unchanged.\u000a\u000aNative/Python lifecycle checks and 445 shared checks pass. Jenkins\u000avalidates the pipeline syntax; branch execution follows the push.\u000a",
          "date" : "2026-10-17 13:24:24 -0500",
          "id" : "167076807d2a8cfe95c58da710eaee8f53994d00",
          "msg" : "Run case runner lifecycle checks in the driver pipeline",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "utilities/README.md"
            },
            {
              "editType" : "edit",
              "file" : "tests/README.md"
            },
            {
              "editType" : "delete",
              "file" : "utilities/tests/run_case_runner_test.py"
            },
            {
              "editType" : "edit",
              "file" : "jenkins_tests/clubb_driver/Jenkinsfile"
            },
            {
              "editType" : "add",
              "file" : "tests/case_runner_lifecycle_test.py"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "src/clubb_standalone.F90"
          ],
          "commitId" : "0c985605a47a651c813c6697e3c3c4e32365f9c7",
          "timestamp" : 1792262101000,
          "author" : {
            "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/huebler",
            "fullName" : "Gunther Huebler"
          },
          "authorEmail" : "huebler@uwm.edu",
          "comment" : "Clarify standalone worker flow\u000a",
          "date" : "2026-10-17 13:35:01 -0500",
          "id" : "0c985605a47a651c813c6697e3c3c4e32365f9c7",
          "msg" : "Clarify standalone worker flow",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "src/clubb_standalone.F90"
            }
          ]
        }
      ],
      "kind" : "git"
    }
  ],
  "culprits" : [
    {
      "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/noreply",
      "fullName" : "noreply"
    },
    {
      "absoluteUrl" : "https://carson.math.uwm.edu/jenkins/user/huebler",
      "fullName" : "Gunther Huebler"
    }
  ],
  "inProgress" : False,
  "nextBuild" : None,
  "previousBuild" : {
    "number" : 8,
    "url" : "https://carson.math.uwm.edu/jenkins/view/clubb_branch_tests/job/clubb_branch_dash/8/"
  }
}