<workflowRun _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='org.jenkinsci.plugins.workflow.support.steps.build.BuildUpstreamCause'><shortDescription>Started by upstream project "orin-module-ros2" build number 146</shortDescription><upstreamBuild>146</upstreamBuild><upstreamProject>orin-module-ros2</upstreamProject><upstreamUrl>job/orin-module-ros2/</upstreamUrl></cause></action><action></action><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>msgBranch</name><value>dev_ros2</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>pncBranch</name><value>feat_ros2_platoon</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>hdmapBranch</name><value>no</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>hdmapInterfaceBranch</name><value>ros2</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>notes</name><value>pncreplayer更新</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>info</name><value>orin-module-ros2: #146</value></parameter></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><master _class='hudson.plugins.git.util.Build'><buildNumber>19</buildNumber><marked><SHA1>be37692c70b87cd081ecb3bbecd2a746b2d38daa</SHA1><branch><SHA1>be37692c70b87cd081ecb3bbecd2a746b2d38daa</SHA1><name>master</name></branch></marked><revision><SHA1>be37692c70b87cd081ecb3bbecd2a746b2d38daa</SHA1><branch><SHA1>be37692c70b87cd081ecb3bbecd2a746b2d38daa</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>be37692c70b87cd081ecb3bbecd2a746b2d38daa</SHA1><branch><SHA1>be37692c70b87cd081ecb3bbecd2a746b2d38daa</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>http://159.27.226.4/weilikang/jenkinslib.git</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>19</buildNumber><marked><SHA1>8c5fb82a6e06c0dbb3c432c0d003f6282693fd19</SHA1><branch><SHA1>8c5fb82a6e06c0dbb3c432c0d003f6282693fd19</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>8c5fb82a6e06c0dbb3c432c0d003f6282693fd19</SHA1><branch><SHA1>8c5fb82a6e06c0dbb3c432c0d003f6282693fd19</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>8c5fb82a6e06c0dbb3c432c0d003f6282693fd19</SHA1><branch><SHA1>8c5fb82a6e06c0dbb3c432c0d003f6282693fd19</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>http://159.27.226.4/weilikang/jenkinsfiles.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.view.InterpolatedSecretsAction'></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><origindev_ros2 _class='hudson.plugins.git.util.Build'><buildNumber>19</buildNumber><marked><SHA1>09e25f72706b8350a7a15258d8e2613a6e2d1a2b</SHA1><branch><SHA1>09e25f72706b8350a7a15258d8e2613a6e2d1a2b</SHA1><name>origin/dev_ros2</name></branch></marked><revision><SHA1>09e25f72706b8350a7a15258d8e2613a6e2d1a2b</SHA1><branch><SHA1>09e25f72706b8350a7a15258d8e2613a6e2d1a2b</SHA1><name>origin/dev_ros2</name></branch></revision></origindev_ros2></buildsByBranchName><lastBuiltRevision><SHA1>09e25f72706b8350a7a15258d8e2613a6e2d1a2b</SHA1><branch><SHA1>09e25f72706b8350a7a15258d8e2613a6e2d1a2b</SHA1><name>origin/dev_ros2</name></branch></lastBuiltRevision><remoteUrl>http://159.27.226.4/shared/shared_msgs.git</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originfeat_ros2_platoon _class='hudson.plugins.git.util.Build'><buildNumber>19</buildNumber><marked><SHA1>2df9becc9b2e2577577c55bdc4bc142398a3607c</SHA1><branch><SHA1>2df9becc9b2e2577577c55bdc4bc142398a3607c</SHA1><name>origin/feat_ros2_platoon</name></branch></marked><revision><SHA1>2df9becc9b2e2577577c55bdc4bc142398a3607c</SHA1><branch><SHA1>2df9becc9b2e2577577c55bdc4bc142398a3607c</SHA1><name>origin/feat_ros2_platoon</name></branch></revision></originfeat_ros2_platoon></buildsByBranchName><lastBuiltRevision><SHA1>2df9becc9b2e2577577c55bdc4bc142398a3607c</SHA1><branch><SHA1>2df9becc9b2e2577577c55bdc4bc142398a3607c</SHA1><name>origin/feat_ros2_platoon</name></branch></lastBuiltRevision><remoteUrl>http://159.27.226.4/pnc/pnc.git</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originros2 _class='hudson.plugins.git.util.Build'><buildNumber>19</buildNumber><marked><SHA1>1336438603254bb01a9125eabd6d531597c243cc</SHA1><branch><SHA1>1336438603254bb01a9125eabd6d531597c243cc</SHA1><name>origin/ros2</name></branch></marked><revision><SHA1>1336438603254bb01a9125eabd6d531597c243cc</SHA1><branch><SHA1>1336438603254bb01a9125eabd6d531597c243cc</SHA1><name>origin/ros2</name></branch></revision></originros2></buildsByBranchName><lastBuiltRevision><SHA1>1336438603254bb01a9125eabd6d531597c243cc</SHA1><branch><SHA1>1336438603254bb01a9125eabd6d531597c243cc</SHA1><name>origin/ros2</name></branch></lastBuiltRevision><remoteUrl>http://159.27.226.4/map/hdmap_interface.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><displayName>#19</displayName><duration>950378</duration><estimatedDuration>643751</estimatedDuration><fullDisplayName>module-pnc_replayer-ros2 #19</fullDisplayName><id>19</id><keepLog>false</keepLog><number>19</number><queueId>1371389</queueId><result>SUCCESS</result><timestamp>1793254848207</timestamp><url>http://159.27.114.184:8080/jenkins/job/module-pnc_replayer-ros2/19/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/org/devops/postRetry.groovy</affectedPath><affectedPath>src/org/orin/orinRos2Choice.groovy</affectedPath><commitId>be37692c70b87cd081ecb3bbecd2a746b2d38daa</commitId><timestamp>1793153940000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/zhaojianfeng2</absoluteUrl><fullName>zhaojianfeng2</fullName></author><authorEmail>zhaojianfeng2@senior.auto</authorEmail><comment>Add onlyPost helper and orinRos2Choice onlyPost param

Portal「仅重试 post」传 onlyPost=yes 时跳过编译、复用工作区 zip 重传 OTA。
</comment><date>2026-10-28 10:19:00 +0800</date><id>be37692c70b87cd081ecb3bbecd2a746b2d38daa</id><msg>Add onlyPost helper and orinRos2Choice onlyPost param</msg><path><editType>add</editType><file>src/org/devops/postRetry.groovy</file></path><path><editType>edit</editType><file>src/org/orin/orinRos2Choice.groovy</file></path></item><kind>git</kind></changeSet><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>orin/orin-build-ros2.jenkinsfile</affectedPath><affectedPath>weifang-config-container.jenkinsfile</affectedPath><commitId>f74f07a390fd23edfbc66c75fc9bc28c96e0a733</commitId><timestamp>1793153962000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/zhaojianfeng2</absoluteUrl><fullName>zhaojianfeng2</fullName></author><authorEmail>zhaojianfeng2@senior.auto</authorEmail><comment>Support onlyPost skip-build zip-&gt;post retry for orin-ros2 and weifang-config

Portal「仅重试 post」写入 onlyPost=yes / notes 含仅重试post 时跳过 checkout/build，复用工作区 zip 重传。
</comment><date>2026-10-28 10:19:22 +0800</date><id>f74f07a390fd23edfbc66c75fc9bc28c96e0a733</id><msg>Support onlyPost skip-build zip-&gt;post retry for orin-ros2 and weifang-config</msg><path><editType>edit</editType><file>orin/orin-build-ros2.jenkinsfile</file></path><path><editType>edit</editType><file>weifang-config-container.jenkinsfile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>hardware/polaris.jenkinsfile</affectedPath><commitId>0baa87f715683e77a024c4a95113a8007bd37042</commitId><timestamp>1793167587000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/weilikang</absoluteUrl><fullName>weilikang</fullName></author><authorEmail>weilikang@senior.auto</authorEmail><comment>Update polaris.jenkinsfile
</comment><date>2026-10-28 06:06:27 +0000</date><id>0baa87f715683e77a024c4a95113a8007bd37042</id><msg>Update polaris.jenkinsfile</msg><path><editType>edit</editType><file>hardware/polaris.jenkinsfile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>orin-cleanup.jenkinsfile</affectedPath><commitId>dfb260ae9929137130f9c7a4fcaad2ffda50732e</commitId><timestamp>1793178069000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/weilikang</absoluteUrl><fullName>weilikang</fullName></author><authorEmail>weilikang@senior.auto</authorEmail><comment>Add new file
</comment><date>2026-10-28 09:01:09 +0000</date><id>dfb260ae9929137130f9c7a4fcaad2ffda50732e</id><msg>Add new file</msg><path><editType>add</editType><file>orin-cleanup.jenkinsfile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>orin-cleanup.jenkinsfile</affectedPath><commitId>728295f9021ee87fcc26e506e947c437e21cd4c6</commitId><timestamp>1793180157000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/weilikang</absoluteUrl><fullName>weilikang</fullName></author><authorEmail>weilikang@senior.auto</authorEmail><comment>Update orin-cleanup.jenkinsfile
</comment><date>2026-10-28 09:35:57 +0000</date><id>728295f9021ee87fcc26e506e947c437e21cd4c6</id><msg>Update orin-cleanup.jenkinsfile</msg><path><editType>edit</editType><file>orin-cleanup.jenkinsfile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>orin-cleanup.jenkinsfile</affectedPath><commitId>402aea751818b5fac6587bd01c20b307bcf34a0f</commitId><timestamp>1793180191000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/weilikang</absoluteUrl><fullName>weilikang</fullName></author><authorEmail>weilikang@senior.auto</authorEmail><comment>Update orin-cleanup.jenkinsfile
</comment><date>2026-10-28 09:36:31 +0000</date><id>402aea751818b5fac6587bd01c20b307bcf34a0f</id><msg>Update orin-cleanup.jenkinsfile</msg><path><editType>edit</editType><file>orin-cleanup.jenkinsfile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>orin-cleanup.jenkinsfile</affectedPath><commitId>8c5fb82a6e06c0dbb3c432c0d003f6282693fd19</commitId><timestamp>1793240470000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/weilikang</absoluteUrl><fullName>weilikang</fullName></author><authorEmail>weilikang@senior.auto</authorEmail><comment>Update orin-cleanup.jenkinsfile
</comment><date>2026-10-29 02:21:10 +0000</date><id>8c5fb82a6e06c0dbb3c432c0d003f6282693fd19</id><msg>Update orin-cleanup.jenkinsfile</msg><path><editType>edit</editType><file>orin-cleanup.jenkinsfile</file></path></item><kind>git</kind></changeSet><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>Testing/platoon_safety_test.cpp</affectedPath><affectedPath>algorithm/lattice/lattice.cpp</affectedPath><commitId>3f5233821c86ff38ba071263284c37b2caca4b93</commitId><timestamp>1793090660000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/chenran</absoluteUrl><fullName>chenran</fullName></author><authorEmail>chenran@senior.auto</authorEmail><comment>fix(platoon): remove missing leader ST candidate veto
</comment><date>2026-10-27 16:44:20 +0800</date><id>3f5233821c86ff38ba071263284c37b2caca4b93</id><msg>fix(platoon): remove missing leader ST candidate veto</msg><path><editType>edit</editType><file>Testing/platoon_safety_test.cpp</file></path><path><editType>edit</editType><file>algorithm/lattice/lattice.cpp</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>replayer/scene_data/generated/compact_exact_numeric_visitor.cpp</affectedPath><affectedPath>replayer/scene_data/generated/full_custom_cpp_member_inputs.json</affectedPath><affectedPath>algorithm/platoon/leader_reference.cpp</affectedPath><affectedPath>data/config/cfg_platoon.cpp</affectedPath><affectedPath>algorithm/platoon/leader_reference.hpp</affectedPath><affectedPath>docs/pnc_algorithm_replay/plan_frame_field_contract_notes.md</affectedPath><affectedPath>algorithm/platoon/platoon_leader_predictor.cpp</affectedPath><affectedPath>data/config/cfg_platoon.hpp</affectedPath><affectedPath>replayer/scene_data/generated/plan_frame_encoder.cpp</affectedPath><affectedPath>config/platoon.yaml</affectedPath><affectedPath>algorithm/platoon/mpc/longitudinal_mpc.cpp</affectedPath><affectedPath>Testing/platoon_follow_target_builder_test.cpp</affectedPath><affectedPath>replayer/scene_data/platoon_proto_codec.cpp</affectedPath><affectedPath>algorithm/platoon/mpc/mpc_config.hpp</affectedPath><affectedPath>replayer/scene_data/generated/compact_scene_descriptor.pb</affectedPath><affectedPath>Testing/platoon_safety_test.cpp</affectedPath><affectedPath>Testing/platoon_mpc_core_test.cpp</affectedPath><affectedPath>replayer/scene_data/compact_numeric_policy.yaml</affectedPath><affectedPath>Testing/platoon_failure_case_test.cpp</affectedPath><affectedPath>algorithm/platoon/mpc/failure_case.cpp</affectedPath><affectedPath>replayer/scene_data/compact_numeric_leaf_contract.csv</affectedPath><affectedPath>proto/platoon.proto</affectedPath><affectedPath>algorithm/lattice/platoon_trajectory1d_generator.cpp</affectedPath><affectedPath>replayer/scene_data/generated/scene_replay_api_descriptor.pb</affectedPath><affectedPath>replayer/scene_data/generated/plan_frame_descriptor.pb</affectedPath><commitId>a55a05d33208f38e5fa9831730bb6d46074a205c</commitId><timestamp>1793103859000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/chenran</absoluteUrl><fullName>chenran</fullName></author><authorEmail>chenran@senior.auto</authorEmail><comment>fix(platoon): gate continued leader braking by acceleration threshold
</comment><date>2026-10-27 20:24:19 +0800</date><id>a55a05d33208f38e5fa9831730bb6d46074a205c</id><msg>fix(platoon): gate continued leader braking by acceleration threshold</msg><path><editType>edit</editType><file>config/platoon.yaml</file></path><path><editType>edit</editType><file>data/config/cfg_platoon.hpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/compact_scene_descriptor.pb</file></path><path><editType>edit</editType><file>replayer/scene_data/platoon_proto_codec.cpp</file></path><path><editType>edit</editType><file>Testing/platoon_safety_test.cpp</file></path><path><editType>edit</editType><file>Testing/platoon_failure_case_test.cpp</file></path><path><editType>edit</editType><file>data/config/cfg_platoon.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/plan_frame_encoder.cpp</file></path><path><editType>edit</editType><file>proto/platoon.proto</file></path><path><editType>edit</editType><file>algorithm/platoon/leader_reference.hpp</file></path><path><editType>edit</editType><file>docs/pnc_algorithm_replay/plan_frame_field_contract_notes.md</file></path><path><editType>edit</editType><file>algorithm/platoon/leader_reference.cpp</file></path><path><editType>edit</editType><file>algorithm/platoon/platoon_leader_predictor.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/plan_frame_descriptor.pb</file></path><path><editType>edit</editType><file>Testing/platoon_mpc_core_test.cpp</file></path><path><editType>edit</editType><file>Testing/platoon_follow_target_builder_test.cpp</file></path><path><editType>edit</editType><file>algorithm/platoon/mpc/longitudinal_mpc.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/compact_numeric_leaf_contract.csv</file></path><path><editType>edit</editType><file>algorithm/lattice/platoon_trajectory1d_generator.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/compact_exact_numeric_visitor.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/compact_numeric_policy.yaml</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/scene_replay_api_descriptor.pb</file></path><path><editType>edit</editType><file>algorithm/platoon/mpc/failure_case.cpp</file></path><path><editType>edit</editType><file>algorithm/platoon/mpc/mpc_config.hpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/full_custom_cpp_member_inputs.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>algorithm/lattice/fsm_safety_brake.hpp</affectedPath><affectedPath>data/config/cfg_platoon.cpp</affectedPath><affectedPath>algorithm/platoon/mpc/qp_solver.cpp</affectedPath><affectedPath>algorithm/lattice/brake_trajectory_policy.hpp</affectedPath><affectedPath>algorithm/lattice/longitudinal_curve_validator.hpp</affectedPath><affectedPath>algorithm/lattice/trajectory_combiner.cpp</affectedPath><affectedPath>data/platoon/platoon_info.cpp</affectedPath><affectedPath>Testing/platoon_qp_solver_test.cpp</affectedPath><affectedPath>Testing/jerk_limited_stop_test.cpp</affectedPath><affectedPath>Testing/platoon_follow_target_builder_test.cpp</affectedPath><commitId>4ebcffd93008fe9dd1ff55ec669676178f86d44c</commitId><timestamp>1793152419000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/chenran</absoluteUrl><fullName>chenran</fullName></author><authorEmail>chenran@senior.auto</authorEmail><comment>refactor: simplify lattice and platoon finite checks

Remove redundant internal validation and document brake classification preconditions. Remove explicit finite checks from platoon config loading while retaining range defaults; config values are expected to be finite.

Validate with 97 lattice tests, 24 platoon input/prediction tests, and 9 QP tests. Compile cfg_platoon using the distributed build script.
</comment><date>2026-10-28 09:53:39 +0800</date><id>4ebcffd93008fe9dd1ff55ec669676178f86d44c</id><msg>refactor: simplify lattice and platoon finite checks</msg><path><editType>edit</editType><file>algorithm/lattice/fsm_safety_brake.hpp</file></path><path><editType>edit</editType><file>algorithm/lattice/trajectory_combiner.cpp</file></path><path><editType>edit</editType><file>algorithm/platoon/mpc/qp_solver.cpp</file></path><path><editType>edit</editType><file>Testing/jerk_limited_stop_test.cpp</file></path><path><editType>edit</editType><file>data/platoon/platoon_info.cpp</file></path><path><editType>edit</editType><file>algorithm/lattice/longitudinal_curve_validator.hpp</file></path><path><editType>edit</editType><file>Testing/platoon_follow_target_builder_test.cpp</file></path><path><editType>edit</editType><file>algorithm/lattice/brake_trajectory_policy.hpp</file></path><path><editType>edit</editType><file>data/config/cfg_platoon.cpp</file></path><path><editType>edit</editType><file>Testing/platoon_qp_solver_test.cpp</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>algorithm/wbca/wbca_manager.cpp</affectedPath><affectedPath>algorithm/lattice/collision_checker.cpp</affectedPath><affectedPath>replayer/scene_data/generated/compact_exact_numeric_visitor.cpp</affectedPath><affectedPath>data/boundary/driving_corridor.cpp</affectedPath><affectedPath>data/ssep/ex_lane_change_ec.cpp</affectedPath><affectedPath>data/map/reference/bends_decider/af_bend_helper.cpp</affectedPath><affectedPath>data/ssep/out_yard_junction_ec.cpp</affectedPath><affectedPath>replayer/scene_data/generated/full_custom_cpp_member_inputs.json</affectedPath><affectedPath>data/obstacle/obstacle.hpp</affectedPath><affectedPath>data/ssep/seaside_junction_ec.cpp</affectedPath><affectedPath>tasks/deciders/other_decider/stop_decider.cpp</affectedPath><affectedPath>data/ssep/open_space_ec.cpp</affectedPath><affectedPath>replayer/scene_data/obstacle_proto_codec.cpp</affectedPath><affectedPath>data/map/reference/bends_decider/bend_decider.cpp</affectedPath><affectedPath>replayer/scene_data/generated/container_schema_inputs.json</affectedPath><affectedPath>replayer/scene_data/generated/plan_frame_encoder.cpp</affectedPath><affectedPath>algorithm/decision/semantic_set_transformation_2.cpp</affectedPath><affectedPath>plan/prepare/prepare_platoon.cpp</affectedPath><affectedPath>Testing/platoon_follow_target_builder_test.cpp</affectedPath><affectedPath>data/constrain/block_data.cpp</affectedPath><affectedPath>replayer/scene_data/generated/compact_scene_descriptor.pb</affectedPath><affectedPath>Testing/platoon_safety_test.cpp</affectedPath><affectedPath>data/lattice/prediction_querier.cpp</affectedPath><affectedPath>algorithm/wbca/occupancy_grid_map/data_render.cpp</affectedPath><affectedPath>hmi/draw/draw_perception.cpp</affectedPath><affectedPath>data/ssep/forward_ec.cpp</affectedPath><affectedPath>data/plan/switch_data.cpp</affectedPath><affectedPath>data/ssep/bridge_junction_ec.cpp</affectedPath><affectedPath>data/ssep/normal_junction_ec.cpp</affectedPath><affectedPath>replayer/scene_data/compact_numeric_policy.yaml</affectedPath><affectedPath>tasks/deciders/long_decider/constrain_decider.cpp</affectedPath><affectedPath>algorithm/plan/trajectories_collistion_detection.cpp</affectedPath><affectedPath>tasks/deciders/long_decider/time_path_graph_decider.cpp</affectedPath><affectedPath>data/obstacle/obstacle.cpp</affectedPath><affectedPath>tasks/plan/keb_utils.cpp</affectedPath><affectedPath>data/obstacle/decision/obstacle_decision.cpp</affectedPath><affectedPath>data/boundary/road_boundary.cpp</affectedPath><affectedPath>data/ssep/into_yard_junction_ec.cpp</affectedPath><affectedPath>proto/obstacle.proto</affectedPath><affectedPath>replayer/scene_data/generated/scene_replay_api_descriptor.pb</affectedPath><affectedPath>replayer/scene_data/generated/plan_frame_descriptor.pb</affectedPath><affectedPath>tasks/deciders/other_decider/alarm_decider.cpp</affectedPath><commitId>e44fa9c859ac0c7ca85b7898c063d661eb9fdee5</commitId><timestamp>1793177525000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/chenran</absoluteUrl><fullName>chenran</fullName></author><authorEmail>chenran@senior.auto</authorEmail><comment>feat: suppress matched platoon perception obstacles in planning

Associate perception tractor and trailer obstacles with the valid platoon leader in prepare_platoon. Preserve matched observations for HMI display while excluding them from downstream planning, and persist the association flag in snapshots.

Render the leader with thick dashed outlines and matched perception in magenta. Add matching, collision exclusion, and snapshot round-trip regression tests.
</comment><date>2026-10-28 16:52:05 +0800</date><id>e44fa9c859ac0c7ca85b7898c063d661eb9fdee5</id><msg>feat: suppress matched platoon perception obstacles in planning</msg><path><editType>edit</editType><file>replayer/scene_data/compact_numeric_policy.yaml</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/plan_frame_descriptor.pb</file></path><path><editType>edit</editType><file>data/constrain/block_data.cpp</file></path><path><editType>edit</editType><file>tasks/deciders/other_decider/alarm_decider.cpp</file></path><path><editType>edit</editType><file>algorithm/decision/semantic_set_transformation_2.cpp</file></path><path><editType>edit</editType><file>tasks/deciders/other_decider/stop_decider.cpp</file></path><path><editType>edit</editType><file>tasks/plan/keb_utils.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/container_schema_inputs.json</file></path><path><editType>edit</editType><file>algorithm/plan/trajectories_collistion_detection.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/plan_frame_encoder.cpp</file></path><path><editType>edit</editType><file>data/obstacle/obstacle.hpp</file></path><path><editType>edit</editType><file>hmi/draw/draw_perception.cpp</file></path><path><editType>edit</editType><file>proto/obstacle.proto</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/compact_exact_numeric_visitor.cpp</file></path><path><editType>edit</editType><file>data/boundary/driving_corridor.cpp</file></path><path><editType>edit</editType><file>data/lattice/prediction_querier.cpp</file></path><path><editType>edit</editType><file>data/map/reference/bends_decider/bend_decider.cpp</file></path><path><editType>edit</editType><file>algorithm/lattice/collision_checker.cpp</file></path><path><editType>edit</editType><file>plan/prepare/prepare_platoon.cpp</file></path><path><editType>edit</editType><file>data/boundary/road_boundary.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/scene_replay_api_descriptor.pb</file></path><path><editType>edit</editType><file>data/obstacle/obstacle.cpp</file></path><path><editType>edit</editType><file>data/ssep/ex_lane_change_ec.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/compact_scene_descriptor.pb</file></path><path><editType>edit</editType><file>replayer/scene_data/obstacle_proto_codec.cpp</file></path><path><editType>edit</editType><file>data/plan/switch_data.cpp</file></path><path><editType>edit</editType><file>algorithm/wbca/occupancy_grid_map/data_render.cpp</file></path><path><editType>edit</editType><file>data/ssep/forward_ec.cpp</file></path><path><editType>edit</editType><file>Testing/platoon_follow_target_builder_test.cpp</file></path><path><editType>edit</editType><file>data/ssep/seaside_junction_ec.cpp</file></path><path><editType>edit</editType><file>data/obstacle/decision/obstacle_decision.cpp</file></path><path><editType>edit</editType><file>Testing/platoon_safety_test.cpp</file></path><path><editType>edit</editType><file>data/map/reference/bends_decider/af_bend_helper.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/full_custom_cpp_member_inputs.json</file></path><path><editType>edit</editType><file>data/ssep/into_yard_junction_ec.cpp</file></path><path><editType>edit</editType><file>tasks/deciders/long_decider/constrain_decider.cpp</file></path><path><editType>edit</editType><file>data/ssep/open_space_ec.cpp</file></path><path><editType>edit</editType><file>data/ssep/out_yard_junction_ec.cpp</file></path><path><editType>edit</editType><file>data/ssep/bridge_junction_ec.cpp</file></path><path><editType>edit</editType><file>algorithm/wbca/wbca_manager.cpp</file></path><path><editType>edit</editType><file>data/ssep/normal_junction_ec.cpp</file></path><path><editType>edit</editType><file>tasks/deciders/long_decider/time_path_graph_decider.cpp</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>replayer/scene_data/platoon_proto_codec.cpp</affectedPath><affectedPath>sink/ros_sink_platoon_info.hpp</affectedPath><affectedPath>replayer/scene_data/generated/compact_scene_descriptor.pb</affectedPath><affectedPath>Testing/platoon_safety_test.cpp</affectedPath><affectedPath>Testing/ego_trajectory_encoding_test.cpp</affectedPath><affectedPath>replayer/scene_data/generated/compact_exact_numeric_visitor.cpp</affectedPath><affectedPath>sink/ros_sink_platoon_info.cpp</affectedPath><affectedPath>replayer/scene_data/generated/full_custom_cpp_member_inputs.json</affectedPath><affectedPath>replayer/scene_data/compact_numeric_policy.yaml</affectedPath><affectedPath>CMakeLists.txt</affectedPath><affectedPath>sink/ego_trajectory_encoding.hpp</affectedPath><affectedPath>data/config/cfg_platoon.cpp</affectedPath><affectedPath>algorithm/platoon/platoon_leader_predictor.cpp</affectedPath><affectedPath>data/config/cfg_platoon.hpp</affectedPath><affectedPath>replayer/scene_data/compact_numeric_leaf_contract.csv</affectedPath><affectedPath>proto/platoon.proto</affectedPath><affectedPath>Testing/platoon_lattice_test.cpp</affectedPath><affectedPath>replayer/scene_data/generated/plan_frame_encoder.cpp</affectedPath><affectedPath>config/platoon.yaml</affectedPath><affectedPath>replayer/scene_data/generated/scene_replay_api_descriptor.pb</affectedPath><affectedPath>replayer/scene_data/generated/plan_frame_descriptor.pb</affectedPath><affectedPath>Testing/platoon_follow_target_builder_test.cpp</affectedPath><commitId>2df9becc9b2e2577577c55bdc4bc142398a3607c</commitId><timestamp>1793189280000</timestamp><author><absoluteUrl>http://159.27.114.184:8080/jenkins/user/chenran</absoluteUrl><fullName>chenran</fullName></author><authorEmail>chenran@senior.auto</authorEmail><comment>feat: downsample platoon broadcasts at configurable one-second intervals

Keep trajectory endpoints and motion transitions while reducing transmitted points. Move encoding into RosSinkPlatoonInfo and remove the separate encoder header and sink finite checks.

Persist the sampling interval with a 1.0-second default, exact float encoding and double fallback. Cover configuration, sparse follower trajectories, braking, turns and snapshot round trips.

Validation: rebuilt pnc_node and pnc_replayer in the original build directory using the distributed script; 74 focused tests passed. Existing build-boundary and proto-only CMake checks remain failing.
</comment><date>2026-10-28 20:08:00 +0800</date><id>2df9becc9b2e2577577c55bdc4bc142398a3607c</id><msg>feat: downsample platoon broadcasts at configurable one-second intervals</msg><path><editType>edit</editType><file>sink/ros_sink_platoon_info.cpp</file></path><path><editType>delete</editType><file>sink/ego_trajectory_encoding.hpp</file></path><path><editType>edit</editType><file>sink/ros_sink_platoon_info.hpp</file></path><path><editType>edit</editType><file>algorithm/platoon/platoon_leader_predictor.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/compact_scene_descriptor.pb</file></path><path><editType>edit</editType><file>Testing/ego_trajectory_encoding_test.cpp</file></path><path><editType>edit</editType><file>data/config/cfg_platoon.hpp</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/scene_replay_api_descriptor.pb</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/plan_frame_encoder.cpp</file></path><path><editType>edit</editType><file>Testing/platoon_safety_test.cpp</file></path><path><editType>edit</editType><file>proto/platoon.proto</file></path><path><editType>edit</editType><file>replayer/scene_data/compact_numeric_leaf_contract.csv</file></path><path><editType>edit</editType><file>config/platoon.yaml</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/plan_frame_descriptor.pb</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/compact_exact_numeric_visitor.cpp</file></path><path><editType>edit</editType><file>CMakeLists.txt</file></path><path><editType>edit</editType><file>replayer/scene_data/compact_numeric_policy.yaml</file></path><path><editType>edit</editType><file>replayer/scene_data/generated/full_custom_cpp_member_inputs.json</file></path><path><editType>edit</editType><file>data/config/cfg_platoon.cpp</file></path><path><editType>edit</editType><file>replayer/scene_data/platoon_proto_codec.cpp</file></path><path><editType>edit</editType><file>Testing/platoon_follow_target_builder_test.cpp</file></path><path><editType>edit</editType><file>Testing/platoon_lattice_test.cpp</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>http://159.27.114.184:8080/jenkins/user/weilikang</absoluteUrl><fullName>weilikang</fullName></culprit><culprit><absoluteUrl>http://159.27.114.184:8080/jenkins/user/chenran</absoluteUrl><fullName>chenran</fullName></culprit><culprit><absoluteUrl>http://159.27.114.184:8080/jenkins/user/zhaojianfeng2</absoluteUrl><fullName>zhaojianfeng2</fullName></culprit><previousBuild><number>18</number><url>http://159.27.114.184:8080/jenkins/job/module-pnc_replayer-ros2/18/</url></previousBuild></workflowRun>