{
  "base_commit": "301438680e03ec23f56f43f30b3ecde0f89ee198",
  "git_head": "301438680e03ec23f56f43f30b3ecde0f89ee198",
  "committed_or_pushed": false,
  "checks": {
    "targeted": {
      "counts": {
        "tests": 34,
        "failures": 0,
        "errors": 0,
        "skipped": 0,
        "passed": 34,
        "time_s": 1.39
      },
      "failures": []
    },
    "full_suite": {
      "counts": {
        "tests": 2031,
        "failures": 16,
        "errors": 0,
        "skipped": 132,
        "passed": 1883,
        "time_s": 656.885
      },
      "failures": [
        {
          "node": "python.tests.python.implicit_mpm.test_implicit_mpm_newton_fem_cuda_delassus_cache::test_newton_fem_cuda_delassus_cache_dirty_on_compliance_change",
          "message": "assert True is False\n +  where True = <built-in method newton_fem_cuda_delassus_cache_hit_last_step of pybind11_builtins.pybind11_detail_function_record_v1_system_libstdcpp_gxx_abi_1xxx_use_cxx11_abi_1 object at 0x73dad3479b50>()\n +    where <built-in method newton_fem_cuda_delassus_cache_hit_last_step of pybind11_builtins.pybind11_detail_function_record_v1_system_libstdcpp_gxx_abi_1xxx_use_cxx11_abi_1 object at 0x73dad3479b50> = novaphy.newton_fem_cuda_delassus_cache_hit_last_step"
        },
        {
          "node": "python.tests.python.implicit_mpm.test_implicit_mpm_newton_fem_cuda_device_fe_scatter::test_newton_fem_cuda_frame_sync_defers_d2h_until_end",
          "message": "assert False is True\n +  where False = <built-in method newton_fem_cuda_particles_host_dirty of pybind11_builtins.pybind11_detail_function_record_v1_system_libstdcpp_gxx_abi_1xxx_use_cxx11_abi_1 object at 0x73dad3479b90>()\n +    where <built-in method newton_fem_cuda_particles_host_dirty of pybind11_builtins.pybind11_detail_function_record_v1_system_libstdcpp_gxx_abi_1xxx_use_cxx11_abi_1 object at 0x73dad3479b90> = novaphy.newton_fem_cuda_particles_host_dirty"
        },
        {
          "node": "python.tests.python.implicit_mpm.test_implicit_mpm_newton_fem_cuda_gs_soa_parity::test_newton_fem_cuda_gs_soa_parity_vs_aos",
          "message": "AssertionError: velocity rel max 0.26204344630241394\nassert np.float32(0.26204345) < 0.05"
        },
        {
          "node": "python.tests.python.implicit_mpm.test_implicit_mpm_newton_fem_cuda_gs_soa_parity::test_newton_fem_cuda_gs_soa_device_gs_faster_compute_bound",
          "message": "AssertionError: expected ≥10% device_gs drop (SoA coalesced): aos=5.841 soa=6.595 drop=-0.129 n_active=15984\nassert -0.12909340945326256 >= 0.1"
        },
        {
          "node": "python.tests.python.implicit_mpm.test_implicit_mpm_newton_fem_cuda_profile_breakdown::test_newton_fem_cuda_profile_breakdown_rheology_sums",
          "message": "assert 0.0 > 0.0"
        },
        {
          "node": "python.tests.python.implicit_mpm.test_implicit_mpm_newton_fem_mass_inv_v::test_step5_delassus_flow_magnitude_gates",
          "message": "AssertionError: {'D0_med': 3004.4078915695086, 'frac_above_ys': 0.0, 'inv_m_med': 3.926620213734582e-05, 'n': 435, ...}\nassert 0.0001 <= 3.926620213734582e-05"
        },
        {
          "node": "python.tests.python.implicit_mpm.test_implicit_mpm_newton_fem_volume_blend_yield::test_kinematic_mass_zero_skipped_in_blend",
          "message": "assert 0.25 == 0.0 ± 1.0e-05\n  \n  comparison failed\n  Obtained: 0.25\n  Expected: 0.0 ± 1.0e-05"
        },
        {
          "node": "python.tests.python.implicit_mpm.test_implicit_mpm_node_compact::test_node_compact_cuda_parity_vs_dense_launches",
          "message": "assert 0.00015240436187013984 < 0.0001"
        },
        {
          "node": "python.tests.python.implicit_mpm.test_implicit_mpm_world_int3_sparse::test_world_int3_cpu_cuda_parity_q_qd",
          "message": "RuntimeError: DeviceArray::data(): array is on a non-CPU device; use host_view() or device_ptr() instead."
        },
        {
          "node": "python.tests.python.implicit_mpm.test_implicit_mpm_world_int3_sparse::test_world_int3_pic_cpu_cuda_parity_and_shell",
          "message": "RuntimeError: DeviceArray::data(): array is on a non-CPU device; use host_view() or device_ptr() instead."
        },
        {
          "node": "python.tests.python.implicit_mpm.test_implicit_mpm_world_int3_sparse::test_two_distant_blobs_cuda_a_gate",
          "message": "RuntimeError: DeviceArray::data(): array is on a non-CPU device; use host_view() or device_ptr() instead."
        },
        {
          "node": "python.tests.python.perf.test_o3_gs_persistent::test_gs_persistent_probe_and_parity_vs_default",
          "message": "AssertionError: velocity rel max 0.06979943811893463\nassert np.float32(0.06979944) < 0.05"
        },
        {
          "node": "python.tests.python.perf.test_o3_gs_sparse_launch_quality::test_dense_launch_count_matches_nonempty_colors",
          "message": "assert 0 == 8\n +  where 0 = int(0)"
        },
        {
          "node": "python.tests.python.perf.test_o3_gs_sparse_launch_quality::test_world_int3_pad0_has_empty_colors_zero_launch",
          "message": "assert 0 == 1\n +  where 0 = int(0)"
        },
        {
          "node": "python.tests.python.perf.test_o3_gs_sparse_launch_quality::test_world_int3_pad2_occupancy_and_launch_invariant",
          "message": "assert 0 == 1\n +  where 0 = int(0)"
        },
        {
          "node": "python.tests.python.perf.test_o7_d5_device_coloring::test_device_coloring_on_skips_host_buckets",
          "message": "assert 1.0 == 0.0 ± 1.0e-06\n  \n  comparison failed\n  Obtained: 1.0\n  Expected: 0.0 ± 1.0e-06"
        }
      ]
    },
    "mpm_memcheck": {
      "counts": {
        "tests": 30,
        "failures": 0,
        "errors": 0,
        "skipped": 0,
        "passed": 30,
        "time_s": 61.794
      },
      "failures": []
    },
    "scenes_memcheck": {
      "counts": {
        "tests": 4,
        "failures": 0,
        "errors": 0,
        "skipped": 0,
        "passed": 4,
        "time_s": 26.108
      },
      "failures": []
    }
  },
  "new_failed_nodes_vs_original_full_suite": [],
  "wheel": {
    "wheel_sha256": "ee9ad97781a2177c04e2cbe26ac8606f85bfa2305168e351eb48ee632a267c7a",
    "package_python_files_match": 217
  },
  "source_manifest": {
    "python/tests/python/implicit_mpm/test_implicit_mpm_newton_fem_mass_inv_v.py": "c3b94a54e857f9e565fadd1001116055cd472f96a28908f872fd1bf51b701e20",
    "python/tests/python/perf/test_o3_gs_newton_warp_diff_inventory.py": "61fa3dd2fd4addd7c945e53f98a99fb6109e9ce72ea26308f8a548f9cabd51ca",
    "python/tools/mpm/newton_contract_large_dt_candidate_d_d1_anchor_check.py": "49e3946ea733b7922fdc7c00e769bfb065ba029be96fd13c5b9c844df375ab76",
    "python/tests/test_mpm_reset_state_flags.py": "020cbf3867311b10c1478e602d7019b8f19e00954c49516baefaefcdadb1369f",
    "python/tests/python/implicit_mpm/test_jp_legacy_ratio_contract.py": "3d299268d222df43624a6132a3c9261473af015f8c6043356fad61cccf918ebb",
    "python/bindings/bind_sim.cpp": "111fa46ce4bd215faef8f83282a0ae6a49fe9de0d2a3e387d280fb549c30c2af",
    "python/bindings/bind_mpm.cpp": "e605de567c39235a4c2502b0a12a6674d103d3830e73f0506f07c581dfe04e8b"
  },
  "viewers": [
    {
      "scene": "multi",
      "command": [
        "/mnt/0c18569c-b839-4255-bae0-6f48c9fc835b/yin/tmp/stage_integration_20260907/batch01/publication/four_scene11_pr_20260908/api_source_audit_fix_20260908/venv/bin/python",
        "-I",
        "-B",
        "-m",
        "novaphy.demos.mpm.newton_ref.demo_mpm_multi_material",
        "--m3b-profile",
        "newton-parity",
        "--gs-official-solve-kernel",
        "--newton-fem-cuda-graph",
        "--newton-fem-graph-cond-while",
        "--newton-fem-rheology-contact-granularity",
        "5",
        "--newton-fem-rheology-contact-tol",
        "0",
        "--no-newton-fem-eval-residual-early-stop",
        "--no-gs-device-early-exit",
        "--viewer",
        "viser",
        "--viser-host",
        "127.0.0.1",
        "--viser-port",
        "18840"
      ],
      "http": 200,
      "exit_code": 0,
      "frames": 10,
      "frames_confirmed": true,
      "timed_out": false,
      "elapsed_s": 2.5501803179995477
    },
    {
      "scene": "viscous",
      "command": [
        "/mnt/0c18569c-b839-4255-bae0-6f48c9fc835b/yin/tmp/stage_integration_20260907/batch01/publication/four_scene11_pr_20260908/api_source_audit_fix_20260908/venv/bin/python",
        "-I",
        "-B",
        "-m",
        "novaphy.demos.mpm.newton_ref.demo_mpm_viscous",
        "--cuda",
        "--viscous-profile",
        "newton-parity",
        "--viewer",
        "viser",
        "--viser-host",
        "127.0.0.1",
        "--viser-port",
        "18841"
      ],
      "http": 200,
      "exit_code": 0,
      "frames": 10,
      "frames_confirmed": true,
      "timed_out": false,
      "elapsed_s": 16.4086000719999
    },
    {
      "scene": "snow",
      "command": [
        "/mnt/0c18569c-b839-4255-bae0-6f48c9fc835b/yin/tmp/stage_integration_20260907/batch01/publication/four_scene11_pr_20260908/api_source_audit_fix_20260908/venv/bin/python",
        "-I",
        "-B",
        "-m",
        "novaphy.demos.mpm.newton_ref.demo_mpm_snow_ball",
        "--cuda",
        "--snow-profile",
        "newton-parity",
        "--snow-scene-align",
        "official",
        "--no-snow-project-outside",
        "--show-compression",
        "--viewer",
        "viser",
        "--viser-host",
        "127.0.0.1",
        "--viser-port",
        "18842"
      ],
      "http": 200,
      "exit_code": 0,
      "frames": 10,
      "frames_confirmed": true,
      "timed_out": false,
      "elapsed_s": 14.565598250999756
    },
    {
      "scene": "beam",
      "command": [
        "/mnt/0c18569c-b839-4255-bae0-6f48c9fc835b/yin/tmp/stage_integration_20260907/batch01/publication/four_scene11_pr_20260908/api_source_audit_fix_20260908/venv/bin/python",
        "-I",
        "-B",
        "-m",
        "novaphy.demos.mpm.newton_ref.demo_mpm_beam_twist",
        "--cuda",
        "--beam-profile",
        "newton-parity",
        "--show-stress",
        "--viewer",
        "viser",
        "--viser-host",
        "127.0.0.1",
        "--viser-port",
        "18843"
      ],
      "http": 200,
      "exit_code": 0,
      "frames": 10,
      "frames_confirmed": true,
      "timed_out": false,
      "elapsed_s": 2.6236135580002156
    }
  ],
  "lint": {
    "baseline_findings": 3,
    "current_findings": 2,
    "introduced": []
  },
  "negative_jp_removal_rejected": true,
  "algorithm_sources_unchanged": true,
  "upstream_exact_stateflags_test_unchanged": true,
  "memory_error_summaries": {
    "mpm_memcheck": true,
    "scenes_memcheck": true
  }
}
