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: cf22ff9027daa5ac9aca0f2a8b08d0fc creationTimestamp: "2026-08-06T04:09:52Z" generation: 7 labels: branch: main build: "189" context: release created-by-lighthouse: "true" event-GUID: a8acca8c-914c-11f1-901d-883182a3d273 lighthouse.jenkins-x.io/baseSHA: 70692d6f827c67aa6333c00df642164d209aa6c5 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1785989392414" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: apitaltrade-bifrost-main-release-jvdjx lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: 70692d6f827c67aa6333c00df642164d209aa6c5 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-jxw9x-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-08-06T04:14:40Z" - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:spec: f:completedTimestamp: {} f:status: {} manager: jx-promote-0.6.45 operation: Update time: "2026-08-06T04:16:08Z" - 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:context: {} f:gitBranch: {} f:gitOwner: {} f:gitRepository: {} f:gitUrl: {} f:message: {} f:pipeline: {} f:startedTimestamp: {} f:steps: {} manager: jx-build-controller operation: Update time: "2026-08-06T04:17:09Z" name: greencapitaltrade-bifrost-main-189 namespace: jx resourceVersion: "246563186" uid: c82c54df-a1d2-4cbf-82b9-4b49778363ee spec: baseSHA: 70692d6f827c67aa6333c00df642164d209aa6c5 batchPipelineActivity: {} build: "189" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/bifrost/main/189.log completedTimestamp: "2026-08-06T04:15:36Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: bifrost gitUrl: https://github.com/greencapitaltrade/bifrost.git lastCommitMessage: | feat(asset): run trip/stop detection on an hourly cron detect_trips_batch() has existed since the detector was written but had no caller outside tests: no cron, no ingestion hook. asset.trip and asset.stop were therefore permanently empty in production, which is why the Trips and Stops report tabs show nothing however the gateway and UI behave. This adds the missing caller. Discovery reads report_gps_v filtered on is_valid_gps, so the work list is exactly what detect_trips_batch will consume — selecting on the raw sample row would also surface telemetry-only assets and burn a query per asset to find there is nothing to do. The lookback is 3x the run interval, not equal to it: detect_trips_batch deletes and recreates every trip whose start_time falls in the window before replaying the GPS, so overlapping runs are idempotent, a trip straddling the boundary is re-detected whole rather than split, and a missed run self-heals. Each asset runs inside its own savepoint. Catching the exception alone would not be enough — a DB-level error leaves the cursor aborted and every later asset in the run would fail too. The run is chatter-free. asset.trip inherits mail.thread and tracks start_time/end_time/distance_km/state, so an unguarded hourly cron that re-creates trips inside its lookback would emit mail.message and mail.tracking.value rows on every pass — the same machine-written chatter that filled production RDS via asset.iot.device. Refs: #447 lastCommitSHA: ac23f733f8b8beb06d22660deda765234193ac6b message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/bifrost/main releaseNotesURL: https://github.com/greencapitaltrade/bifrost/releases/tag/v6.90.17 startedTimestamp: "2026-08-06T04:09:52Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-08-06T04:15:36Z" name: Release startedTimestamp: "2026-08-06T04:14:36Z" status: Succeeded - kind: Promote promote: environment: staging pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5195 startedTimestamp: "2026-08-06T04:15:36Z" status: Succeeded startedTimestamp: "2026-08-06T04:15:36Z" status: Succeeded - kind: Stage stage: completedTimestamp: "2026-08-06T04:17:02Z" name: from build pack startedTimestamp: "2026-08-06T04:09:57Z" status: Succeeded steps: - completedTimestamp: "2026-08-06T04:10:18Z" name: Git Clone startedTimestamp: "2026-08-06T04:09:57Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:24Z" name: Next Version startedTimestamp: "2026-08-06T04:10:18Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:28Z" name: Jx Variables startedTimestamp: "2026-08-06T04:10:24Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:32Z" name: Setup Pip Cache startedTimestamp: "2026-08-06T04:10:29Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:33Z" name: Process Config Templates startedTimestamp: "2026-08-06T04:10:33Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:34Z" name: Update Asset Management Version startedTimestamp: "2026-08-06T04:10:34Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:36Z" name: Check Registry startedTimestamp: "2026-08-06T04:10:34Z" status: Succeeded - completedTimestamp: "2026-08-06T04:14:29Z" name: Build Container Build startedTimestamp: "2026-08-06T04:10:37Z" status: Succeeded - completedTimestamp: "2026-08-06T04:14:40Z" name: Promote Changelog startedTimestamp: "2026-08-06T04:14:29Z" status: Succeeded - completedTimestamp: "2026-08-06T04:14:44Z" name: Promote Helm Release startedTimestamp: "2026-08-06T04:14:40Z" status: Succeeded - completedTimestamp: "2026-08-06T04:16:11Z" name: Promote Jx Promote startedTimestamp: "2026-08-06T04:14:45Z" status: Succeeded - completedTimestamp: "2026-08-06T04:17:02Z" name: Publish Org Kb startedTimestamp: "2026-08-06T04:16:11Z" status: Succeeded - kind: Stage stage: completedTimestamp: "2026-08-06T04:17:02Z" name: from build pack startedTimestamp: "2026-08-06T04:09:57Z" status: Succeeded steps: - completedTimestamp: "2026-08-06T04:10:18Z" name: Git Clone startedTimestamp: "2026-08-06T04:09:57Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:24Z" name: Next Version startedTimestamp: "2026-08-06T04:10:18Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:28Z" name: Jx Variables startedTimestamp: "2026-08-06T04:10:24Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:32Z" name: Setup Pip Cache startedTimestamp: "2026-08-06T04:10:29Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:33Z" name: Process Config Templates startedTimestamp: "2026-08-06T04:10:33Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:34Z" name: Update Asset Management Version startedTimestamp: "2026-08-06T04:10:34Z" status: Succeeded - completedTimestamp: "2026-08-06T04:10:36Z" name: Check Registry startedTimestamp: "2026-08-06T04:10:34Z" status: Succeeded - completedTimestamp: "2026-08-06T04:14:29Z" name: Build Container Build startedTimestamp: "2026-08-06T04:10:37Z" status: Succeeded - completedTimestamp: "2026-08-06T04:14:40Z" name: Promote Changelog startedTimestamp: "2026-08-06T04:14:29Z" status: Succeeded - completedTimestamp: "2026-08-06T04:14:44Z" name: Promote Helm Release startedTimestamp: "2026-08-06T04:14:40Z" status: Succeeded - completedTimestamp: "2026-08-06T04:16:11Z" name: Promote Jx Promote startedTimestamp: "2026-08-06T04:14:45Z" status: Succeeded - completedTimestamp: "2026-08-06T04:17:02Z" name: Publish Org Kb startedTimestamp: "2026-08-06T04:16:11Z" status: Succeeded version: 6.90.17 status: {}