apiVersion: jenkins.io/v1 kind: PipelineActivity metadata: annotations: lighthouse.jenkins-x.io/cloneURI: https://github.com/greencapitaltrade/bifrost.git lighthouse.jenkins-x.io/job: release pipeline.jenkins-x.io/traceID: d694ff40edcd2442467ef670ddfea1f4 creationTimestamp: "2026-07-30T05:29:59Z" generation: 8 labels: branch: main build: "164" context: release created-by-lighthouse: "true" event-GUID: a854b646-8bd7-11f1-9b2d-9fa85c9d84b8 lighthouse.jenkins-x.io/baseSHA: af2eba3cc220befa54ac9feeabc5c9fb64560753 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1785389399279" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: apitaltrade-bifrost-main-release-pt74w lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: af2eba3cc220befa54ac9feeabc5c9fb64560753 lighthouse.jenkins-x.io/refs.org: greencapitaltrade lighthouse.jenkins-x.io/refs.repo: bifrost lighthouse.jenkins-x.io/type: postsubmit owner: greencapitaltrade podName: apitaltrade-bifrost-main-release-kfg7c-from-build-pack-pod provider: github repository: bifrost tekton.dev/pipeline: apitaltrade-bifrost-main-release 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.29 operation: Update time: "2026-07-30T05:35:56Z" - 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-07-30T05:38:46Z" name: greencapitaltrade-bifrost-main-164 namespace: jx resourceVersion: "228244361" uid: 370a33ae-16c5-434d-8f7b-689cf2293246 spec: baseSHA: af2eba3cc220befa54ac9feeabc5c9fb64560753 batchPipelineActivity: {} build: "164" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/bifrost/main/164.log completedTimestamp: "2026-07-30T05:38:38Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: bifrost gitUrl: https://github.com/greencapitaltrade/bifrost.git lastCommitMessage: | feat(asset): supersede stale same-category commands on a device A device could accumulate several pending/sent commands at once (the ACK correlation gap tracked in deadpool#177). If engine_cutoff and engine_restore both sit un-acknowledged, whichever the device happens to actuate last wins, and Bifrost can no longer reason about the relay's final position — a safety-relevant ambiguity for an immobiliser. Add `actuation_category` on asset.iot.command (immobiliser, location, config, diagnostic, other) so opposing commands are modeled as sharing a physical actuator rather than hardcoding a cutoff/restore pair. asset.iot.command.log now supersedes older non-terminal (pending, sent, waiting_for_token) logs in the same device + actuation category inline on create, in the same transaction as the new log, and keeps superseded rows for audit. validate_execution rejects a superseded log with idempotency_check='superseded' so Deadpool drops it cleanly. The retry cron already filters on status in ('failed', 'pending'), so it skips 'superseded' without further changes. 'other' is a deliberate no-op category: commands not yet classified must not supersede each other just for sharing the catch-all bucket. Co-Authored-By: Claude Sonnet 5 lastCommitSHA: 3d2e420d78c053a0ade046bd529319919b379ba3 message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/bifrost/main releaseNotesURL: https://github.com/greencapitaltrade/bifrost/releases/tag/v6.85.0 startedTimestamp: "2026-07-30T05:29:59Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-07-30T05:38:38Z" name: from build pack startedTimestamp: "2026-07-30T05:31:57Z" status: Succeeded steps: - completedTimestamp: "2026-07-30T05:32:31Z" name: Git Clone startedTimestamp: "2026-07-30T05:31:57Z" status: Succeeded - completedTimestamp: "2026-07-30T05:32:36Z" name: Next Version startedTimestamp: "2026-07-30T05:32:31Z" status: Succeeded - completedTimestamp: "2026-07-30T05:32:42Z" name: Jx Variables startedTimestamp: "2026-07-30T05:32:37Z" status: Succeeded - completedTimestamp: "2026-07-30T05:32:42Z" name: Setup Npm Nexus startedTimestamp: "2026-07-30T05:32:42Z" status: Succeeded - completedTimestamp: "2026-07-30T05:32:46Z" name: Setup Pip Cache startedTimestamp: "2026-07-30T05:32:43Z" status: Succeeded - completedTimestamp: "2026-07-30T05:32:47Z" name: Process Config Templates startedTimestamp: "2026-07-30T05:32:46Z" status: Succeeded - completedTimestamp: "2026-07-30T05:32:47Z" name: Update Asset Management Version startedTimestamp: "2026-07-30T05:32:47Z" status: Succeeded - completedTimestamp: "2026-07-30T05:32:51Z" name: Check Registry startedTimestamp: "2026-07-30T05:32:48Z" status: Succeeded - completedTimestamp: "2026-07-30T05:35:47Z" name: Build Container Build startedTimestamp: "2026-07-30T05:32:51Z" status: Succeeded - completedTimestamp: "2026-07-30T05:35:56Z" name: Promote Changelog startedTimestamp: "2026-07-30T05:35:47Z" status: Succeeded - completedTimestamp: "2026-07-30T05:35:59Z" name: Promote Helm Release startedTimestamp: "2026-07-30T05:35:56Z" status: Succeeded - completedTimestamp: "2026-07-30T05:37:05Z" name: Promote Jx Promote startedTimestamp: "2026-07-30T05:36:00Z" status: Succeeded - completedTimestamp: "2026-07-30T05:38:38Z" name: Publish Org Kb startedTimestamp: "2026-07-30T05:37:05Z" status: Succeeded - kind: Promote promote: environment: staging pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5010 startedTimestamp: "2026-07-30T05:36:37Z" status: Succeeded startedTimestamp: "2026-07-30T05:36:37Z" status: Succeeded - kind: Promote promote: environment: production pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5011 startedTimestamp: "2026-07-30T05:37:02Z" status: Succeeded startedTimestamp: "2026-07-30T05:37:02Z" status: Succeeded version: 6.85.0 status: {}