apiVersion: jenkins.io/v1 kind: PipelineActivity metadata: annotations: lighthouse.jenkins-x.io/cloneURI: https://github.com/greencapitaltrade/deadpool.git lighthouse.jenkins-x.io/job: release pipeline.jenkins-x.io/traceID: 2aded2014414b22884500a135905052d creationTimestamp: "2026-06-01T15:57:28Z" generation: 8 labels: branch: main build: "45" context: release created-by-lighthouse: "true" event-GUID: 8d8c94e2-5dd2-11f1-98da-290f1d709d64 lighthouse.jenkins-x.io/baseSHA: cad75ee56198f2a603d3e75b0ee3f08e043c5ab1 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1780329448788" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: pitaltrade-deadpool-main-release-5c9sw lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: cad75ee56198f2a603d3e75b0ee3f08e043c5ab1 lighthouse.jenkins-x.io/refs.org: greencapitaltrade lighthouse.jenkins-x.io/refs.repo: deadpool lighthouse.jenkins-x.io/type: postsubmit owner: greencapitaltrade podName: pitaltrade-deadpool-main-release-qc97k-from-build-pack-pod provider: github repository: deadpool tekton.dev/pipeline: pitaltrade-deadpool-main-release-qc97k managedFields: - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: f:branch: {} f:context: {} f:owner: {} f:provider: {} f:repository: {} f:spec: f:lastCommitMessage: {} f:lastCommitSHA: {} f:releaseNotesURL: {} f:version: {} manager: jx-changelog-0.10.18 operation: Update time: "2026-06-01T16:04:25Z" - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:lighthouse.jenkins-x.io/cloneURI: {} f:lighthouse.jenkins-x.io/job: {} f:pipeline.jenkins-x.io/traceID: {} f:labels: .: {} f:build: {} f:created-by-lighthouse: {} f:event-GUID: {} f:lighthouse.jenkins-x.io/baseSHA: {} f:lighthouse.jenkins-x.io/branch: {} f:lighthouse.jenkins-x.io/buildNum: {} f:lighthouse.jenkins-x.io/context: {} f:lighthouse.jenkins-x.io/id: {} f:lighthouse.jenkins-x.io/job: {} f:lighthouse.jenkins-x.io/lastCommitSHA: {} f:lighthouse.jenkins-x.io/refs.org: {} f:lighthouse.jenkins-x.io/refs.repo: {} f:lighthouse.jenkins-x.io/type: {} f:podName: {} f:tekton.dev/pipeline: {} f:spec: .: {} f:baseSHA: {} f:batchPipelineActivity: {} f:build: {} f:buildLogsUrl: {} f:completedTimestamp: {} f:context: {} f:gitBranch: {} f:gitOwner: {} f:gitRepository: {} f:gitUrl: {} f:message: {} f:pipeline: {} f:startedTimestamp: {} f:status: {} f:steps: {} manager: jx-build-controller operation: Update time: "2026-06-01T16:05:30Z" name: greencapitaltrade-deadpool-main-45 namespace: jx resourceVersion: "68993342" uid: cd7cac30-7bff-4edf-99bc-9c359e4674ff spec: baseSHA: cad75ee56198f2a603d3e75b0ee3f08e043c5ab1 batchPipelineActivity: {} build: "45" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/deadpool/main/45.log completedTimestamp: "2026-06-01T16:05:09Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: deadpool gitUrl: https://github.com/greencapitaltrade/deadpool.git lastCommitMessage: | feat(terra v1): BMS group decoder — mirror wasp#27's BMS_SPEC[] Companion to wasp#27 (Phase 5d-b firmware encoder). Adds the server- side parser for the new presence-bit-8 BMS group, so CAN_PASSIVE- emitted BMS bytes actually surface as canonical (field, value) pairs. field_table.rs: - New BMS_FIELDS const — 11 entries mirroring the firmware's BMS_SPEC[] exactly. Field names + widths + delta encodings + offsets must match wasp 1:1 or the wire format silently breaks: pack_voltage_mv 17 bits ZigZagGamma off=0 pack_current_ma 19 bits ZigZagGamma off=200_000 soc_permille 10 bits ZigZagGamma off=0 temp_avg_cdegc 15 bits ZigZagGamma off=4_000 temp_max_cdegc 15 bits ZigZagGamma off=4_000 cell_min_mv 13 bits ZigZagGamma off=0 cell_max_mv 13 bits ZigZagGamma off=0 cycles 16 bits UnsignedGamma off=0 fault_bits 32 bits UnsignedGamma off=0 charge_limit_ma 18 bits ZigZagGamma off=0 discharge_limit_ma 18 bits ZigZagGamma off=0 - GROUPS array extended with `{ id: 8, name: "bms", fields: BMS_FIELDS }`. - group_spec(bit) now returns Some for bit 8; reserved range shifts to 9..15. Comment updated to flag the boundary. parser.rs: - rejects_reserved_presence_bit test updated to use bit 9 (still reserved). The parser's existing iteration `for bit in 0..16u8 { ... match group_spec(bit) { None => ReservedGroupBitSet }}` just works for bit 8 now that the table has it. Test coverage (iot-common: 99 → 102): - bms_group_matches_firmware_spec — locks every BMS field's name, width, encoding, and offset against the firmware-side BMS_SPEC. Catches drift in either direction. - round_trip_bms_full_packet — encode FULL with a mix of values spanning signed/unsigned + offsetted/non-offsetted + 32-bit fault_bits, decode, assert each field's natural value comes back. - round_trip_bms_delta_packet — encode DELTA with mixed signed deltas + zero unsigned deltas, decode, assert each field's delta round-trips. Workspace tests: 102 + 16 + 16 + 7 = 141 green. Together with wasp#27 the data path now lights up end-to-end: chip → mcp_recv → seq_can_passive_route → s_bms_snapshot → terra_v1 packet bit 8 → Deadpool decoder → BMS DecodedGroup ready for canonical-field ingest. Refs: wasp#27, terra v1 §3.2.4 / §17 lastCommitSHA: bcd84a7086be7e7d86f77798eafa2efea2acbe5e message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/deadpool/main releaseNotesURL: https://github.com/greencapitaltrade/deadpool/releases/tag/v0.52.2 startedTimestamp: "2026-06-01T15:57:28Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-06-01T16:05:09Z" name: from build pack startedTimestamp: "2026-06-01T15:57:47Z" status: Succeeded steps: - completedTimestamp: "2026-06-01T15:57:48Z" name: Git Clone startedTimestamp: "2026-06-01T15:57:47Z" status: Succeeded - completedTimestamp: "2026-06-01T15:57:50Z" name: Next Version startedTimestamp: "2026-06-01T15:57:48Z" status: Succeeded - completedTimestamp: "2026-06-01T15:57:53Z" name: Jx Variables startedTimestamp: "2026-06-01T15:57:50Z" status: Succeeded - completedTimestamp: "2026-06-01T16:04:05Z" name: Build Cargo Install startedTimestamp: "2026-06-01T15:58:05Z" status: Succeeded - completedTimestamp: "2026-06-01T16:04:09Z" name: Check Registry startedTimestamp: "2026-06-01T16:04:06Z" status: Succeeded - completedTimestamp: "2026-06-01T16:04:11Z" name: Build Server Image startedTimestamp: "2026-06-01T16:04:10Z" status: Succeeded - completedTimestamp: "2026-06-01T16:04:12Z" name: Build Consumer Image startedTimestamp: "2026-06-01T16:04:11Z" status: Succeeded - completedTimestamp: "2026-06-01T16:04:14Z" name: Build Mqtt Image startedTimestamp: "2026-06-01T16:04:13Z" status: Succeeded - completedTimestamp: "2026-06-01T16:04:26Z" name: Promote Changelog startedTimestamp: "2026-06-01T16:04:15Z" status: Succeeded - completedTimestamp: "2026-06-01T16:04:29Z" name: Promote Helm Release startedTimestamp: "2026-06-01T16:04:26Z" status: Succeeded - completedTimestamp: "2026-06-01T16:05:09Z" name: Promote Jx Promote startedTimestamp: "2026-06-01T16:04:30Z" status: Succeeded - kind: Promote promote: environment: staging pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/4056 startedTimestamp: "2026-06-01T16:04:49Z" status: Succeeded startedTimestamp: "2026-06-01T16:04:49Z" status: Succeeded - kind: Promote promote: environment: production pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/4057 startedTimestamp: "2026-06-01T16:05:06Z" status: Succeeded startedTimestamp: "2026-06-01T16:05:06Z" status: Succeeded version: 0.52.2 status: {}